Hello, its me, Jimmy! I forgot to get Felipes section before he went to bed, and it took me the entire #$@& day to make a script for mass-exporting flag SVGs to PNG which left me no time to finish the two other features I wanted to talk about in this blog post. Well be back with a full-sized post next Wednesday, but today we have just the one lil section on Flag improvements. Hope you enjoy!
Flag Fun - Jimmy
This week I polished up Flags and gave them a use beyond decoration: they can now be used as teleport waypoints!
I was quite surprised by the journey that Flag development took me on. Flags touch on many different areas of the codebase: this includes various UI stuff, component resizing, component initialization (for the random flags on placement), player teleportation, the ExtraData system (described here, used for storing the order of Flags in the teleport list), the code for indexing and searching for items in a menu, and more. When I visited each of these areas, I stopped to make enhancements and fixes and clean up the code.
In particular, Flags forced me to have a really close look at the way Logic World loads textures from disk into GPU. Now that there are hundreds of flag textures, I can't get away with the original shoddy code; it's just too slow. So this week I spent a lot of time learning about textures, and at the end of it all I've improved texture RAM usage by about 70%, texture VRAM usage by about 90%, and the time to load textures by about 50%. I think I can get the texture load time down another 75% or so by storing the textures in .dds format, which minimizes the work the GPU has to do when converting the data into a format it can use.
I expected Flags to be a quick side-thing, but they ended up being one of my main projects this week. And I'm glad they did -- as a result, the entire codebase is more robust and solid.
Bugs Fixed This Week
- Fixed the back side of Flags rendering without lighting
- Fixed OrganizedList search results not updating when an item was added/deleted/edited
- Fixed custom search tags not working due to outdated localization keys
- Fixed NullReferenceException and glitchy behavior when trying to resize after reloading a save
- Fixed timing issues with setting player rotation during teleport
We'll keep releasing these weekly updates right up until the game comes out. To make sure you don't miss them, you can sign up for our newsletter or join the official Discord, and of course you can wishlist and follow the game right here on Steam.
More Logic World Wednesdays