Friday, September 29, 2023

September Update

August and September have been really excellent months for progress on my conversion from Godot 3 to Godot 4.  The tilemap conversion work is pretty much done.  The flora engine work is almost done.  I started writing the C# version of the inventory engine and that is almost done.  I also started bringing over some of the user interface.  There has just been a lot of progress all-around.

I have been quite surprised at how many hits I have been getting on this blog lately.  I don't know if it has anything to do with the UNITY fiasco or not, but it is encouraging to see thousands of hits per month now.  The YouTube channel subscriptions are up as well, although not from me giving attention to it.  I have been meaning to get another video posted to share my tilemap implementation, but I selfishly opted for more coding over more videos of coding.  The end of the year is typically when I have more time to devote to my hobbies (like this game) and I expect to be able to provide some informative videos on my channel very soon.  If you are one of the many who have asked me for videos, thank you for your patience.

In this post I want to mention a few things about Godot 4 and the tilemap terrain features.  For one, the terrain is too slow for my purposes.  The bottleneck seems to be the tilemap.set_cells_terrain_connect method, which paints the atlas sprites onto the tilemap using the auto-tiling terrain masks.  That method is brutally slow, while the Godot 3 counterpart tilemap.update_bitmask_region method is amazingly fast.  I eventually wrote my own bitmask solution for auto-tiling.  I will cover that in a future video.  I read recently that tilemaps have been given some optimization attention in the upcoming 4.2 update.  We shall see if the performance at least matches Godot 3.  I can tell you honestly that Godot 3 outshines Godot 4 in the area of terrain bitmasking by leaps and bounds.

Another issue I have discovered with Godot 4 has to do with the fact that physics interpolation has not been implemented yet.  What that means for me is that I have to endure the constant, nagging studder in my tilemap implementation until the feature makes it into Godot 4. That is frustrating.

There are also some heavy discussions happening regarding C# and Godot 4 as of this writing.  Some major changes are in the works, and while I welcome them, it makes moving to Godot 4 that much more challenging.  On a positive note, the C# code runs much faster than the GDScript.  

 

Until next time...