Saturday, July 1, 2023

Godot 4 Upgrade and Migration from GDScript to C# Continued

The upgrade from Godot 3.5.2 to Godot 4.0.3 continues into July.  Nothing much to mention, although I did learn that Godot signals cannot pass C# objects as parameters.  Since I am replacing all my GDScripts with C# files, I needed to fall back to using C# Events and Handlers when the need to pass List<T> and C# Dictionary data was desired.  Another change I am making involves discarding Godot resource files.  While they are convenient for storing static data, I find them a bit cumbersome if the data structure is the least bit complex.  Crafting recipes readily comes to mind as an example.  If the resource defines Dictionaries and Arrays, the .tres files can be really frustrating to manage especially when I need to add or remove some piece of dictionary or array data.  In Godot 3.5.2, I sometimes have to re-enter dictionary data just to add a new record.  Therefore, part of this migration of scenes, scripts, and resources includes moving away from resource and tres files towards using json files to store game data.  They are much easier to work with, produce smaller files, and they can be managed using proven 3rd party libraries like Newtonsoft's Json library.  There is still so much to do and I will plug along until I get it done.  I can't wait to see the fruit of all this labor.

Until next time...