๐Ÿ <Kingfisher>


๐Ÿ•“ apr โ€“ aug 2024 (~ 5 months)

about

A shelved 2D HUD-based platformer where you control a gecko holding a mouse cursor whoโ€™s capable of interacting with windows. I might revisit the idea in the future but I would have to redo the codebase from scratch at that point.

code

Every window in the game has its own collision settings and can contain different features. For example, the full game screen is actually a window on its own with a functioning collision-enabled tilemap inside. The player can also trigger the dialogue buttons by hitting them with a ground slam.

Some aspects of the game are data-driven, all window data and dialogue are loaded from JSON files, and all settings and preferences are saved between sessions. There is also an in-game console which lets the player change the visual theme.

ui

All UI element graphics are loaded from an atlas of a single CanvasTexture, so I can easily change the visual theme just by loading a different texture into one place in the game.

retrospection

what did i do right?

Looking back, this is where I started using JSONs and deserialising into custom classes / structs, albeit on a very rough level. This is a powerful tool in my arsenal nowadays, and Iโ€™m glad I started learning all the way back here. Same goes for atlas textures. While not much of the project is salvageable at this point, the amount of research I have done for it has set me on the right course for my future game dev journey.

what would i do different?

This one required more planning before coding, in multiple directions. I should have at the very least looked into different ways of implementing the UI elements, more specifically whether Control or Window nodes would be the superior choice. The project also suffered from a lack of direction beyond โ€œjumping through the UI is cool,โ€ so I ended up just lost once I arrived at the โ€œokay, but what now?โ€ stage. I would also handle localisation through native Godot features at this point.