Data Persistence - Save & load your game state while avoiding common mistakes #shorts




Published: 10 Jul 2022

Learn how to save and load data in Unity - avoiding common mistakes and dangerous serialization techniques many other tutorials will tell you to use!


In this video we'll look at using text-based serialization using JSON and optionally encrypt that data. I also discuss some of the pros/cons for using text-based serialization, and what you should use instead if you really want to/need to use a binary serialization technique.


Common suggestions that you should absolutely not use to persist game state data are:

1. Player Prefs - these are not designed for storing game state. Only...Player Preferences such as graphic & audio settings.

2. BinaryFormatter - this class is dangerous and insecure. Use of this class can allow an attacker to take over the system. https://docs.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-security-guide


As always, all code from this video is available on GitHub: https://github.com/llamacademy/persistent-data/


📚 Resources 📚

⚫ JSON.Net: https://www.newtonsoft.com/json

⚫ Encrypt/Decrypt Data with AES: https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.aes?view=net-6.0

⚫ Binary Formatter Security: https://docs.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-security-guide

⚫ Unity JSON.Net Package: https://docs.unity3d.com/Packages/com.unity.nuget.newtonsoft-json@3.0/manual/index.html

⚫ Protobuf (BinaryFormatter alternative): https://github.com/protocolbuffers/protobuf

⚫ Protobuf C# Docs: https://developers.google.com/protocol-buffers/docs/csharptutorial


📱 Let's stay connected

YouTube: https://youtube.com/c/LlamAcademy

Patreon: https://www.patreon.com/llamacademy

Facebook: https://facebook.com/LlamAcademyOfficial

Twitter: https://twitter.com/TheLlamAcademy

TikTok: https://tiktok.com/@LlamAcademy

Instagram: https://instagram.com/LlamAcademy


----


Believe in LlamAcademy's mission and have received value from the videos? Consider becoming a Patreon supporter: https://www.patreon.com/llamacademy


----

Most tutorials come from knowledge gained making https://survival.llama.software Llama Survival - a top-down zombie survival shooter for Android and iOS.

I also have some Unity Assets (affiliate link): https://assetstore.unity.com/publishers/22409?_aid=1101l9QvC


Connect on Social Media

Some links may be affiliate links, which at no additional cost to you, gives LlamAcademy a small portion of the purchase.