Posted April 06, 2025 by IglooSquid
Version 0.5.0 is complete – since the previous bigger update, I've added a new, less rudimentary prototype level with some basic environment props, added a second enemy unit to verify individual enemy object logic working correctly, implemented Exit Zone logic to check if the objective item is in the player's inventory, smoothed out and refined camera controls, player pawn animation, lighting systems and performance, implemented togglable debug colors and interactable object highlighting, and most recently a SceneInitializer system to handle setting up the scene during runtime. After that I was all set up to add a second player pawn into the scene. It took some work to get the game to recognize the active spawn and differentiate that from just any pawn at all, and also to get move orders to register correctly with the active pawn.
The big troubleshooting project, however, was the inventory system – the way I had set up picking up and storing items confused the scripting, and I had problems both with updating the inventory display in real time and displaying it correctly, and also the objective check in the Exit Zone determining whether or not the objective had in fact been completed. While that logic seemed to work as intended before, this change in scene wiring exposed a bug that was undetectable before due to a false positive: the Exit Zone defaults to "just reach the exit" if no objective item has been defined, but when picking up the objective item, it gets destroyed and the Exit Zone logic no longer finds an objective item, so it falls back on the default condition, meaning that it was never actually checking for the item correctly. Now, with a second pawn that has its own inventory, that issue came to light, and I was able to track down the cause and fix it by storing the reference to the correct item at scene start, so it's no longer dependent on persistently finding that item in the scene.
The game is starting to feel a lot more dynamic now, and with the condition check in place and working as intended, it's already possible to develop some basic non-linear levels.
Next steps in my roadmap: