Devlog - February 12th 2023
The struggle with Unity's serialization system
This week’s focus was on getting the multi project setup progressed as much as possible.
I started the week by adding a few more core systems to the main project such as the save/load system and code obfuscation. The save system had some areas I needed to touch to make work properly which I was able to fix fairly quickly. I also just published the Steam progress report for January which I wrote earlier in the week before starting the setup of the projects for the various features in the game. Quickly after setting up the weather asset and trying to inject it at runtime via the mod system I realized that something isn’t working as expected. After lots of debugging and testing I found out that for some reason Unity’s serialization is lacking when it comes to deserializing data from ScriptableObjects when using code that wasn’t there at the time the game was built. After even more time I found out that there must be some kind of internal process during the building process of the game (the process that creates all the game files for the application) that relies on code being available during that time. This meant that code that isn’t available during that process (pretty much any code by modders) will be limited dramatically to a point that the modding system would suffer immensely. I struggled with this problem for several days, talked to friends, asked for help in the forums and even used ChatGPT to suggest options on how to address this. After testing out a ton of various approaches I was pretty much out of ideas. I kept trying to get it to work using my own serialization system which I wrote back when I was creating the framework for my modular spawning system. I can’t really explain why it eventually worked because I could have sworn to have tested the approach that ultimately worked before, but I was so happy that it did that I didn’t really care. All that matters now is that it does work now using my own serialization system. This means a little bit of extra work for each system I want to have in its own project but it should be minimal enough for it to be worth it. I’m relieved to be able to tell you that the modding system should not be limited in any way by this. Without this fix the modding capabilities would have been incredibly limited because ScriptableObjects are an essential part of most systems you build in Unity. While I have spend the majority of the week dealing with this issue and therefore can’t present any other progress I am very happy with how this week ended. I was preparing to cut down on the modding system when I ran out of ideas and I’m incredibly happy that I ultimately don’t have to (hopefully).
Notable tasks this week:
- Published Steam progress report for January
- Setup more essential systems in core project
- Setup various projects to game systems such as the weather and time of day systems
- Struggled with Unity’s serialization limitations endangering the capabilities of the modding system but ultimately prevailed by using my own serialization system
Wishlist on Steam
Join the Discord
That’s all I got this week. I hope you are all doing well.
Stay safe out there and I’ll see you next week.
Get Ozone Wipeout
Ozone Wipeout
Procedural open world, post apocalyptic, zombie survival game
Status | In development |
Author | OzoneWipeout |
Genre | Survival |
Tags | 3D, First-Person, Moddable, Open World, Photorealistic, Post-apocalyptic, Procedural Generation, Singleplayer, Zombies |
Languages | German, English |
Accessibility | Configurable controls |
More posts
- Devlog - June 26th 2023Jun 26, 2023
- Devlog - June 19th 2023Jun 19, 2023
- Devlog - June 12th 2023Jun 12, 2023
- Devlog - June 5th 2023Jun 05, 2023
- Devlog - May 29th 2023May 29, 2023
- Devlog - May 22nd 2023May 22, 2023
- Devlog - May 15th 2023May 15, 2023
- Devlog - May 7th 2023May 07, 2023
- Devlog - May 1st 2023May 01, 2023
- Devlog - April 23rd 2023Apr 23, 2023
Leave a comment
Log in with itch.io to leave a comment.