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

Leave a comment

Log in with itch.io to leave a comment.