How to make a Save & Load System in Unity | 2022

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ค. 2024
  • In this video, I show how to make a Save and Load system in Unity that will work for any type of game. We'll save the data to a file in both a JSON format as well as an encrypted format which we'll be able to toggle between in the Unity inspector.
    IMPORTANT: For WebGL games, because WebGL can't save directly to a file system, a different method of storage than we use in the video needs to be implemented. See the pinned comment for more info on this.
    IMPORTANT: Some have mentioned having trouble with Unity versions prior to 2020. I'm not sure on the details, but if you're having issues with the serialization parts of this tutorial, upgrading your Unity version (to 2020 or higher) is something worth trying!
    Thank you for watching and I hope the video was helpful! 🙂
    ► FAQ:
    I have some of the more frequently asked questions and important information regarding this tutorial in the Pinned Comment; however, more up to date/detailed FAQ's can be found on my Discord server.
    ► SAVE & LOAD SYSTEM TUTORIAL PLAYLIST
    The full Save & Load System tutorial playlist that this video is part of can be found here.
    • How to make a Save & L...
    ► TIMESTAMPS
    0:00 Intro
    0:35 Save & Load System Design
    3:25 Creating initial Game Data
    4:26 Stubbing out the Core of the System
    6:11 When to Save and Load
    6:47 Passing Data to other Scripts
    10:14 Reading and Writing to a File
    16:10 Adding more Data to be Saved
    17:15 Saving Collectables in a Dictionary
    20:16 Serializing a Dictionary to JSON
    23:00 Encrypting the Data
    26:11 Outro
    ► RESOURCES
    Application.PersistentDataPath documentation
    docs.unity3d.com/ScriptRefere...
    ISerializationCallbackReceiver documentation
    docs.unity3d.com/ScriptRefere...
    NewtonSoft JSON.NET for Unity - which can be used as an alternative to the method shown in this tutorial for serializing more complex data types to JSON. It can be installed through the package manager.
    docs.unity3d.com/Packages/com...
    ► GITHUB PROJECT
    The '1-starting-point' branch is the starting point of the project for this tutorial and the '2-save-load-implemented' branch is the end result.
    github.com/shapedbyrainstudio...
    ► MUSIC
    The backing music is custom made by @themaykit.
    / themaykit
    ► DISCORD
    Come ask questions, suggest a video topic, or just hang out!
    📱Discord ➔ / discord
    ► THE PATH OF REN
    Wishlist 'The Path of Ren' on Steam!
    🎮 Steam (The Path of Ren) ➔ store.steampowered.com/app/16...
    ► SOCIAL MEDIA LINKS
    Follow my current project!
    🐦 Twitter ➔ / trevermock
    📷 Instagram ➔ / trevermock
    🕑 TikTok ➔ / shapedbyrainstudios
    🌐 Website ➔ shapedbyrainstudios.com/
    ► SUPPORT
    Any support is much appreciated! I may receive a commission on any assets purchased using the below Unity Asset Store link.
    🛍️ Unity Asset Store Affiliate Link ➔ assetstore.unity.com/?aid=110...
    ☕ Buy me a coffee! (Ko-fi) ➔ ko-fi.com/shapedbyrainstudios
    #gamedev #unity2d #unity
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 578

  • @ShapedByRainStudios
    @ShapedByRainStudios  2 ปีที่แล้ว +68

    Thanks for watching! 🙂See below for some important info regarding this tutorial. ⬇
    ==1. WebGL games will not work right out of the box with this tutorial==
    In a WebGL game, you don't have direct access to the computers file system and therefore won't be able to save like we do in this tutorial.
    To properly handle data for a WebGL game using this system, you'll need to write a 'WebGL Data Handler' to save your data to a WebGL compatible data storage instead of a file system. This is essentially the 'Cloud Data Handler' I briefly refer to in this video when talking about how the system will work.
    Unfortunately, I'm not knowledgeable enough on WebGL myself to be able to recommend an alternate way of storage; however, most cloud-based storage systems should work.
    ==2. Does this work on Android?==
    The short answer is - yes with some considerations. I haven't tried this on Android myself; however, I have heard of several others that have gotten it working.
    In certain mobile versions, OnApplicationQuit() is not guaranteed to be called in the Unity lifecycle. Therefore, you may want to additionally save the game in OnApplicationPause().
    Below are a couple of threads that dig into this issue in a bit more detail.
    Stack Overflow - stackoverflow.com/questions/64140744/unity-onapplicationquit-doesnt-work-on-android-all-the-time
    Unity Forum - answers.unity.com/questions/824790/help-with-onapplicationquit-android.html
    In addition to the above, there have been claims that Application.persistentDataPath is a bit finicky on Android. Details on this are a bit long to list here; however, there is a great FAQ post on my Discord server with information regarding this issue and some solutions for it.
    ==3. Ref Keyword is not needed-==
    As some have pointed out in the comments, you do *_NOT_* need to use the *_ref_* keyword (7:22 in the video) at all. By default in C#, non-primitive types are automatically passed by reference and for what we're doing the _ref_ keyword is not needed. It can actually make the GameData object a bit more vulnerable than we need it to be and I would recommend removing the _ref_ keyword.
    This was a misunderstanding I had about how C# passes by reference. My apologies to anyone this inconveniences or confuses. Thank you to those who pointed this out!
    I also address this in a bug fixes video which can be found here - th-cam.com/video/yTWPcimAdvY/w-d-xo.html (see the "Removing the 'ref' keyword" timestamp)
    ==4. Other FAQ regarding this tutorial==
    I have other FAQ's regarding this video and the entire Save & Load System series on my Discord that can be found here. ➔ 📱discord.gg/99gcnaHFf9

    • @fuzikun_
      @fuzikun_ 2 ปีที่แล้ว

      Sir it doenst work in 3d

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      @@fuzikun_ Hey there! It should work fine for 3D. I believe others have implemented this into their 3D games successfully. Each project is going to have it's own quirks though. I'm happy to help as I can, but you'll need to provide me with details for what's not working.
      I also encourage you to double check your code against the Github project that can be found here, as it's easy to make mistakes when following along to a video - github.com/trevermock/save-load-system/tree/2-save-load-implemented

    • @BrianLindahl
      @BrianLindahl 2 ปีที่แล้ว

      Your the best Trevor! Thanks for the feedback and further direction. I will check out the suggested materials as well as check out that discord channel. Best wishes!

    • @TinyGamesStudio
      @TinyGamesStudio ปีที่แล้ว +1

      Does this method work on android build?

    • @bluejay7071
      @bluejay7071 ปีที่แล้ว

      I'm not sure if you'll see this, but do you have a better example of calling a new game? I tried doing it in the same way that your video shows but I loads the game with the data values that it left off with

  • @Vexurayr
    @Vexurayr ปีที่แล้ว +148

    Do you understand how great this tutorial is? I'm going to college for game development and this video was leagues above the "teaching" some of my professors manage. Clear voice, understandable naming convention, comments...
    Now that deserves a like and sub. 👍

    • @ShapedByRainStudios
      @ShapedByRainStudios  ปีที่แล้ว +5

      Thank you so much for the kind words! 🙂 That means a lot and I'm really glad you found the video helpful!

    • @juanferrer5924
      @juanferrer5924 10 หลายเดือนก่อน +6

      I don't disagree but what i think every student should know is that you're not really going to college to learn in most degree fields, the degree is what's important. It basically proves that you had the consistency and discipline to graduate from a four year school, which a surprising amount of people can't do. It also, or should at least, as mine did, helps to put together a structured portfolio and get connections throughout the industry through fellow students and teachers alike. I'm saying this because I know a lot of people who didn't make any connections or really bother in college, just doing the minimum with the concept that they'd learn more from youtube than class. Those people ended up with bad websites and poorly structured portfolios, and little to no people willing to act as references or connection for them. I was rejected for a studio job but then a previous professor was able to find an "in" for me at that studio (many studios require a ridiculous amount of experience for an entry level position so often connections are your best shot to start with) and got me the job because i'd impressed him with my work and earned a high opinion from him. Sorry if I'm out of line, just that I've seen way too many people fall into the "college doesn't matter, I can learn from youtube" trap

    • @Vexurayr
      @Vexurayr 10 หลายเดือนก่อน

      @@juanferrer5924 I get it, and in all fairness, some of my professors were absolutely remarkable. And while I could've learned most of the same crap on TH-cam, I would have never developed any connections. Your timing is eerie, too. I graduated recently and the job openings just aren't there for rookies. Now I'm applying to work as an Amazon delivery driver. I'm hoping in the future I can turn my business, Next Patch Studios LLC, into that first stepping stone for people like me just leaving college.

    • @joshfatal
      @joshfatal 6 หลายเดือนก่อน +1

      @@juanferrer5924 Juan's commentary is pretty spot-on and sums up what a scam college is (or at least feels like to those of us who don't succeed at it.) You're paying exorbitant amounts of money for a piece of paper, and along the way you have to endure the often-mediocre teachings of college professors who themselves didn't have what it takes for that field. Employers see your degree and that tells them you have the discipline to endure four years of gosh-damned nonsense. It also shows them that you're probably in a lot of debt and desperate for any rate of pay to start paying your loans off, and that gives them more leverage in negotiating a salary. Having a polished portfolio is where it's at, or at least, that's what I'm hoping.

    • @squarerootof2
      @squarerootof2 4 หลายเดือนก่อน +1

      @@joshfatal Lol, good summary! That goes for all fields.

  • @rofkec
    @rofkec หลายเดือนก่อน +5

    My man just showed how coding can be beautiful like an art form! I'm a junior solo dev learning Unity + C# and I was just blown away by how well-explained and clear everything was, even though there's so much to unpack here! THANKS

    • @ShapedByRainStudios
      @ShapedByRainStudios  27 วันที่ผ่านมา

      Thanks so much for the kind words! I'm really glad to hear the tutorial helped!

  • @clavesi
    @clavesi 2 ปีที่แล้ว +118

    this man single handedly makes some of the best tutorials out there

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +3

      Thanks for the kind words! I'm glad you think so! 😁

    • @BasVossen
      @BasVossen ปีที่แล้ว +2

      best I've seen so far.

    • @FurbyOfDeth
      @FurbyOfDeth ปีที่แล้ว

      ​@TreverMock been a full year and still nobody has topped this! Trust ne i just watched like 4 of them and this was by far the best

  • @timtablet6998
    @timtablet6998 ปีที่แล้ว +1

    Absolutely loved this tutorial. The interface setup just feels like the right way to do saving in unity. Love it.

  • @rollogamerz635
    @rollogamerz635 2 ปีที่แล้ว +7

    Honestly once explained it's fairly intuitive. Thank you for breaking it down so nicely for us newbies! Can't wait to play with the full version

  • @cryptorcd9352
    @cryptorcd9352 ปีที่แล้ว +3

    Holy! This is the best save tutorial I seen! Good job man, can't wait to watch rest of your videos and learn from them!

  • @abdou2247
    @abdou2247 ปีที่แล้ว +6

    This by far one of the best Unity tutorials i’ve ever seen! The step by step, detailed explanation is very well done and clear! Subscripting right now!

  • @Wobaz
    @Wobaz 11 หลายเดือนก่อน +1

    One of the best tutorial i've seen! I knew nothing about dictionary and JSON before that and was able to understand and make it work! Great work!

  • @jameslavery2958
    @jameslavery2958 ปีที่แล้ว +1

    Loved the content presentation here. Really excellent work. Thanks for supporting the community.

  • @sunubabu7813
    @sunubabu7813 2 ปีที่แล้ว +5

    Seems really simple and straight forward. Will be using this in my next game

  • @Luluskuy
    @Luluskuy ปีที่แล้ว +1

    thanks for making this video! I already watch a bunch of video about save and load system in TH-cam, and by far it is the clearest tutorial out there!

  • @hiepuc6315
    @hiepuc6315 ปีที่แล้ว

    Thank you for your tutorial video, this is the video I have been searching for a long time, both detailed and comprehensive with easy-to-understand instructions. I hope that you will create more tutorial videos in the future. Sincerely, thank you.

  • @MadaronoSensi
    @MadaronoSensi ปีที่แล้ว +1

    This was the one to actually help and teach everything better than the others.
    this Tutorial was the best so far on saving on json than the others in how this was so simple but yet so understandable and it just makes everything easier.
    thank you brother❤
    love from Egypt❤

  • @AskAgainLater
    @AskAgainLater ปีที่แล้ว +1

    Thank you for making such a detailed video, really enjoyed the Design segment, just a well made video overall.

  • @hotdogitsfriday
    @hotdogitsfriday 2 ปีที่แล้ว +2

    Thank you very much for this tutorial. It helped me understand serialization and the JSON format.

  • @_stephenhubbard
    @_stephenhubbard ปีที่แล้ว +5

    Such a clean and well-made tutorial. Props!

  • @ahmedakashphotography9161
    @ahmedakashphotography9161 ปีที่แล้ว

    firstly I would like to wish you well and to say a huge thank you for uploading these videos as they have been an invaluable resource to

  • @Hairclone
    @Hairclone 5 หลายเดือนก่อน +1

    Hands down one of the best tutorials I've ever watched!

  • @janikcodes
    @janikcodes ปีที่แล้ว +7

    Incredible video. Using interfaces like this is definitely a good and scaleable way.
    Also really cool thing with the GUID I didn't know. So far I've build my own custom GUID generator but this is much more useful.
    Also THANK YOU for not using BinaryFormatter, every old tutorial about a save & load feature uses is, even new tutorials so very good that you show a different approach on encryption.

  • @nijatshukurov9022
    @nijatshukurov9022 ปีที่แล้ว +1

    I was searching for proper design for game data saving. This is the best.

  • @markjeromedelacruz114
    @markjeromedelacruz114 ปีที่แล้ว

    Thanks for your easy to follow explanations, one step at a ti. It makes learning less overwhelming!

  • @Robbi263
    @Robbi263 2 ปีที่แล้ว +13

    I think this is the best tutorial I've ever seen on TH-cam on any subject. I was absolutely hyped away when I watched it because I couldn't stop being blown away by how cleverly everything is explained and how it all fits together so beautifully. I learned so much about C# and Unity from this one video. Very well done and thank you so much!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +4

      Thank you so much for the kind words - this made my day! 🙂 I'm really glad you found the tutorial helpful!

  • @mv5220
    @mv5220 ปีที่แล้ว +1

    Insane well structured Tutorial. Love the Format of this Video!

  • @mdabuhassan230
    @mdabuhassan230 ปีที่แล้ว

    You've actually got so quality stuff on your channel. Keep that up man!

  • @dong8912
    @dong8912 11 หลายเดือนก่อน

    Nice and thorough tutorial. One thing I did differently was to use a scriptable object to store my persistent data rather than using a singleton. Still works!

  • @NathanFrank-zz8fr
    @NathanFrank-zz8fr ปีที่แล้ว +1

    Awesome tutorial! Keep up the great work, very easy to follow along and implement in my own project, I hope you get more subscribers!

  • @gideonsmith2957
    @gideonsmith2957 9 หลายเดือนก่อน +4

    Straight up best tutorials out there imo. The way you structure the intro with showing uml snip relations is really great.

    • @ShapedByRainStudios
      @ShapedByRainStudios  9 หลายเดือนก่อน +1

      Thank you so much for the kind words! I'm really glad to hear you like that format! 🙂

  • @sirhotbay4708
    @sirhotbay4708 ปีที่แล้ว +1

    You are the best Trever! I do appreciate all your videos and specially your kind help on your discord channel for my specific coding issues. I must say that many youtube instructors are hiding some tricky points on the tutorials. what I love on your tutorials YOU ARE HONOST! keep it man. Thank you.

    • @ShapedByRainStudios
      @ShapedByRainStudios  ปีที่แล้ว

      Right on! Thank you so much for the kind words - that means a lot! 🙂

  • @MattMarkYT
    @MattMarkYT 6 หลายเดือนก่อน +1

    It's my first time creating a game. It took me some time to get it since I wanted to save and load in a few different scenes but I finally got it working!!!!!!!! Thank you!!!!

  • @EverythingWright
    @EverythingWright 2 ปีที่แล้ว +36

    So far in my game development journey, save systems I have almost given up on since all tutorials I go through to learn it end up in errors everywhere or the save system being unreliable in the long run. This tutorial as been THE FIRST to land me in a position to not only save efficiently, but securely as well. Thank you for helping me implement a solid system for my game.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      Right on! Thank you so much for the kind words and I'm really glad to hear the tutorial helped! 🙂

  • @girigiri-oy3lx
    @girigiri-oy3lx 2 ปีที่แล้ว +1

    man I missed this kind of tutorials lol. Great work here, thanks!!!

  • @ABnormalZUCHINI
    @ABnormalZUCHINI 2 ปีที่แล้ว +2

    Your channel is super underrated. SO happy to have stumbled across it. I hope you continue to grow!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thank you so much! 🙂I really appreciate the kind words and I'm glad you found this helpful!

  • @Dexi
    @Dexi 2 ปีที่แล้ว +5

    This is by far the best video I have seen for unity save & loads. Not just by content, but by the way you deliver it.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thanks so much! That means a lot and I'm really glad to hear that! 🙂

  • @nonoun9619
    @nonoun9619 ปีที่แล้ว +1

    Im only half way through but boy have i learnt alot from this video. You are an amazing teacher, thank you so much!!

  • @qwaukstak9725
    @qwaukstak9725 2 ปีที่แล้ว +2

    This was a truly amazing tutorial. I couldn't get the dictionaries to work correctly for object activation though. So instead, I found I was able to use a list to achieve this the same way where instead of a GUID code I could use id as an index for the list.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      Thank you for the kind words - I'm glad you found the tutorial helpful! 🙂

  • @danixadem
    @danixadem 2 ปีที่แล้ว +3

    That's a tutorial very well put together. Looking forward for more like this one mate.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thanks so much! I'm really glad you thought so! 🙂

  • @maDU59_
    @maDU59_ 16 วันที่ผ่านมา +1

    That is an AWESOME tutorial! (and the best part is that the codes actually works!) Thanks a lot!

  • @jazmeister
    @jazmeister ปีที่แล้ว +1

    best tutorial i've seen so far on this topic! thank you so much

  • @xxhungover
    @xxhungover 4 หลายเดือนก่อน +2

    I hold my breath until this tutorial ends. This tutorial is simply breathtaking. Thank you.

  • @__--_--_-----
    @__--_--_----- ปีที่แล้ว +1

    Amazing, efficient, modular. Great work, leaving a comment for the algorithm.

  • @goldbarth
    @goldbarth ปีที่แล้ว +1

    As written in the comments before, this system is more reliable and versatile than what you can find out there (and in the university i´m going).
    This is Awesome. Thank you so much💪✌

  • @aritra8421
    @aritra8421 ปีที่แล้ว

    Great video and really helpful! I couldn't get a grasp on how the setuper works but it's all clear now.

  • @The_Crucifix
    @The_Crucifix 11 หลายเดือนก่อน +1

    Thank you so much for the video! I got it working and it's perfect for my metroidvania.

  • @raphaellaboure1797
    @raphaellaboure1797 7 หลายเดือนก่อน +1

    Very good and clear tutorial on the topic with cool follow-up (about android and stuff), thanks a lot :)

  • @joaomaria_santos
    @joaomaria_santos 11 หลายเดือนก่อน +1

    Perfect tutorial! Best solution I could find and very well presented

  • @matthewm2139
    @matthewm2139 2 ปีที่แล้ว +1

    Got this working perfectly in my game in less than an hour. Gracias.

  • @c___urchinYT
    @c___urchinYT ปีที่แล้ว +1

    This tutorial is absolutely amazing. Genuinely perfect dude

  • @itsmidge
    @itsmidge ปีที่แล้ว +1

    Super useful, exactly what I was looking for. Thank you!

  • @jhebsmanawatao5782
    @jhebsmanawatao5782 2 ปีที่แล้ว +1

    Exactly what I needed and was looking for! Thanks!!

  • @x8c8rdev
    @x8c8rdev 2 ปีที่แล้ว +3

    Thank you, this is very useful, I hope to use it in my project. Keep making more great videos!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      I'm really glad to hear and thank you so much for the kind words! 🙂

  • @sicer9165
    @sicer9165 ปีที่แล้ว +6

    I like the way you organized the video contents! Your Unity tutorials are my favorites so far. Can't wait to see more videos! 😍

  • @SebastianGraves
    @SebastianGraves 2 ปีที่แล้ว +4

    Bro, thank you very much for that little show case on saving Dictionaries to Json. Bless you!

  • @levelheaded447
    @levelheaded447 4 หลายเดือนก่อน +1

    This is a really great and helpful resource. Thanks so much!

  • @NadirGh
    @NadirGh 2 ปีที่แล้ว +2

    Awesome to find rising new diligent creators!
    Keep it up good sir.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thank you so much for the kind words! That means a lot and I'll do my best! 🙂

  • @Shahmuradov
    @Shahmuradov 2 ปีที่แล้ว +4

    So underrated channel! Keep up the good work and thanks for the tutorials!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      Thanks so much for the kind words! It's much appreciated and I'm glad you've found the tutorials helpful! 🙂

  • @doriantermini
    @doriantermini หลายเดือนก่อน +2

    Fantastic tutorial. Just before this, I had no idea how to even start with saving and loading. Now I feel as though I have unlimited power.

  • @simarte616
    @simarte616 ปีที่แล้ว +1

    OMG!! That is the best tutorial on youtube thanks you so much for this video I hope you will continue making video.

  • @Gilletart
    @Gilletart 8 หลายเดือนก่อน +7

    I followed this tutorial religiously for 3 days trying to get this to work without changing any part of my game. I've only been coding for about a month but after my 50th re-watch i made it through!!! For such a complex system, you really do break it down and make it easy to follow. THANK YOU

    • @ShapedByRainStudios
      @ShapedByRainStudios  8 หลายเดือนก่อน +3

      Awesome job! A system like this is really tough to implement into a specific game, even with a tutorial. Props to you for making it through and thank you so much for the kind words! 🙂

  • @Yuhara_rev
    @Yuhara_rev 2 ปีที่แล้ว +1

    Holy crap this is such a fantastic tutorial. A lot of tutorials on this topic don't talk about how to save multiple objects' state (I needed to save door states in my game), and while I kind of figured out to use unique id for each object, I didn't know there is a way to generate them automatically. You also covered how to make dictionary serializable and talked about the BinaryFormatter issue.
    One thing I changed on my code is I have a script to check all saveable objects with id just to make sure they're all unique. The guid generation system looks like it's bound to human error when duplicating the objects.
    Other than that, great video! It's very helpful. Thank you so much for making it.

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      Thank you so much for the kind words - that all means a lot and I'm really glad you found those sections helpful! 🙂 Your script to check all saveable objects for uniqueness sounds like a great addition as well!

  • @youtuberaven1830
    @youtuberaven1830 ปีที่แล้ว

    Wow at last a soft tutorial I can follow! you sir are a genius

  • @moonzhild
    @moonzhild ปีที่แล้ว +1

    this is the best one i've seen, thanks for this man!

  • @ksalarang
    @ksalarang ปีที่แล้ว +1

    This is the right way to do tutorials. Well done

  • @D-zg9py
    @D-zg9py 7 หลายเดือนก่อน +1

    your tutorial is perfect, thank you so much! Subscribed!

  • @pokebytes
    @pokebytes 2 ปีที่แล้ว +2

    I rarely comment but man this is exactly what i needed and now I don't have to figure it out from the scratch. Thanks!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      You're welcome! I'm really glad you found it to be helpful! 🙂

  • @Fokaz_
    @Fokaz_ 4 หลายเดือนก่อน

    Thank you for this! Really clean architecture and code, very good tutorial overlal

  • @slayerds5300
    @slayerds5300 ปีที่แล้ว

    This is the best tutorial for sure. I'll go build some levels for the casual game

  • @ToyCartoonStoryforKids
    @ToyCartoonStoryforKids ปีที่แล้ว +1

    Thank you so much for all these tutorials bro. So much valuable knowledge

  • @AndrewGiacomoPinnical
    @AndrewGiacomoPinnical ปีที่แล้ว +1

    This was so so useful! Thank you so much for making it!

  • @adhdcory
    @adhdcory ปีที่แล้ว +15

    For future reference, there is a type I found that works exactly like a Dictionary, and it is called SerializedDictionary. You can save this through JSONUtility the same way you would imagine for a regular dictionary.
    Dictionary RegularDictionary = new();
    is the same as
    SerializedDictionary NotRegularDictionary = new();

  • @B4NTO
    @B4NTO 3 หลายเดือนก่อน

    Really cool and useful tutorial. Not sure how useful this setup would be for a more advanced game where a lot of the things is highly dynamic. A game im working on im currently implementing some save systems but there are so many things that can change like trees being chopped down, rocks mined, crops planted, trees planted etc. I love how your system is setup here so gonna research it further someday soon

  • @manuel7522
    @manuel7522 2 ปีที่แล้ว +1

    These tutorials are the best I've found, thank you!!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว +1

      I'm really glad to hear and thank you so much for the kind words! 🙂

  • @arrieboy22
    @arrieboy22 2 ปีที่แล้ว +1

    I LOVED this video. It help me so much with the game I'm currently working on. Thank you so much!!!

  • @danio583
    @danio583 ปีที่แล้ว +2

    thanks you bro. you helped me so mush, your tuto are really great and easy to understand for a french like me😅

  • @oscarlopezfabregas3602
    @oscarlopezfabregas3602 2 ปีที่แล้ว +1

    Hi Trevor! Congratulations! One of the best tutorials I ever seen. Will definately join the discord to share work with you. Liked all your videos and subscribed. Again, great work.
    Best,
    Oscar

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thanks so much for the kind words - that all means a lot and I'm really glad you found the series to be helpful! 🙂

  • @ivankorchmit6893
    @ivankorchmit6893 10 หลายเดือนก่อน

    For serializing dictionaries, I would use the serialized struct for key/value pairs which is better approach at all aspects. Great video, by the way!

  • @theanonimo26able
    @theanonimo26able 2 ปีที่แล้ว +1

    Great tutorial! thanks god I actually was able to implement it on my project.

  • @SSibi
    @SSibi ปีที่แล้ว

    My man's dedication is over the top!

  • @diegogb1999
    @diegogb1999 2 หลายเดือนก่อน

    How are the methods from the interface getting called so they work? Because you dont write them anywhere you just make them and u dont put them on the update function or something like that

  • @sirgwindortvinuel
    @sirgwindortvinuel 2 ปีที่แล้ว +1

    FINALLY I FOUND IT! i found a tutorial that is good and does not use the Binary format Thanks so much man. Keep it up!

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 ปีที่แล้ว

      Thanks for the kind words! Really glad you found the video to be useful! 🙂

  • @boliviaplay7838
    @boliviaplay7838 ปีที่แล้ว

    I can't believe literally no one is talking about how satisfying Nice tutorials voice softs.

  • @user-tn8qp7ys5m
    @user-tn8qp7ys5m 2 ปีที่แล้ว

    Bro, you're a great teacher and explainer! Thank you for tNice tutorials tutorial!

  • @DonDisainer
    @DonDisainer ปีที่แล้ว +1

    what a beautiful tutorial! thank you very much :D

  • @SaikyoEdits_
    @SaikyoEdits_ ปีที่แล้ว +2

    Give this man an award for this tutorial

  • @geethanjalir8294
    @geethanjalir8294 ปีที่แล้ว

    That was so helpful! I just started using soft and was so overwheld!

  • @AlbertoBerito
    @AlbertoBerito ปีที่แล้ว +1

    I LOVED THE TUTORIAL, THANK YOU VERY MUCH ❤❤❤

  • @marisardo
    @marisardo ปีที่แล้ว +1

    Awesome tutorial!!! Just subscribed myself in the channel!

  • @mitchellmacpherson4052
    @mitchellmacpherson4052 ปีที่แล้ว +2

    Dude, honestly you're my hero right now!!!!! Thank you!!!!!!!!

  • @tyshade2496
    @tyshade2496 ปีที่แล้ว +1

    Excellent and very helpful tutorial. You type really fast :)

  • @efinas2620
    @efinas2620 2 หลายเดือนก่อน +1

    Super thanks for this amazing tutorial! 🌟 Your clear and detailed explanation helped me successfully implement a saving system in my project. 🚀 I was stuck on this for a while, but your video made everything so much easier to understand. Keep up the great work!💪

    • @ShapedByRainStudios
      @ShapedByRainStudios  2 หลายเดือนก่อน

      Thank you so much for the kind words! I'm really glad to hear the tutorial helped! :)

  • @sultanrahil3380
    @sultanrahil3380 7 หลายเดือนก่อน +2

    Amazing video. Good job!!!

  • @BSXPanther
    @BSXPanther 2 ปีที่แล้ว +2

    Thank you very much, your tutorial was immensely helpful to me.

  • @robertsmusic9026
    @robertsmusic9026 ปีที่แล้ว

    was very understandable for . You were so detailed and it made all these new tNice tutorialngs way less intimidating

  • @TheSxW
    @TheSxW ปีที่แล้ว

    Thanks for the video it allowed me to clear my mind and create a script the way i wanted it to :) your explanations are top notch you additionally should check the best / performant way to code to add to it even more. Anyway Great video really liked watching it :)

  • @user-sh3uq1ct8t
    @user-sh3uq1ct8t ปีที่แล้ว

    Ah, for a JS->C# switcher it's just amazing. Can easily work with node js server now, thanks.
    So glad I don't have to write it by my own.

  • @Somewhere_sometime_somehow
    @Somewhere_sometime_somehow 2 ปีที่แล้ว +3

    Awesome Trever! You really did it!

  • @BenBonk
    @BenBonk ปีที่แล้ว +1

    Holy cow Trever, you're a life saver. Thanks so much for the tutorial. Also your voice is so nice to listen to 😅

    • @ShapedByRainStudios
      @ShapedByRainStudios  ปีที่แล้ว

      Haha thank you so much for the kind words! 🙂 Really glad you found the tutorial helpful!

    • @Kiosk_134
      @Kiosk_134 ปีที่แล้ว

      omg benbonk on a trever mock tutorial

  • @thendar823
    @thendar823 ปีที่แล้ว +1

    Awesome stuff, thank you very much!

  • @martindrozdik7763
    @martindrozdik7763 ปีที่แล้ว +1

    Finally a well designed system. Thanks!

  • @facelessanon
    @facelessanon 2 หลายเดือนก่อน +2

    This is my favorite method to store data now. Brackeys' tutorial was decent, but too basic and uses BinaryFormatter. This one not only explains things well that even an intermediate coder can understand, but the interface-saving method is just 999 IQ. 600th comment btw