Posted September 07, 2025 by Krel113
#2D #Godot4 #Godot #Topino #game #godot #godot4 #indie #indiegame #platformer 2d #platformer
Hi everyone!
It has been a year since GMTK 2024. I have started other projects and failed to finish them. Either it became too complex, or I realized I didn't have enough time to get the required skills to create something worthy (like music, animation, or graphics), or I just ran out of inspiration.
BUT my dream is still there, and despite all those years and t all those fails, I still want to create a game, a full one.
So I decided to take back Topino since it is a simple game with simple features, a simple goal, and, moreover, I find it funny.
The first things I wanted to improve in the demo for GMTK 2024 were the structure of the project, the quality of code, and the responsiveness of the inputs.
I - CODE
I don't know for you, but on my side, coding a game in 48h has never left code maintainable and scalable.
So, I decided to start over and adopt a feature-centric project structure, to keep things tightly bound all together, and also to use a bit of Data-Oriented Programming to eliminate inheritance. Inheritance caused the death of many of my projects once they reached a certain level of complexity, so let's see if I made the right choice this time.
I - Inputs
The demo lacked responsiveness when Topino was jumping. From time to time, the little mouse didn't jump when the space bar was pressed, which was quite annoying, especially in a platformer.
To solve those issues, a jump buffer and a coyote time are necessary.
- the jump buffer keeps in memory that the player ordered to jump while the character is in the air, for a few frames.
- the coyote time allows the character to jump for a few frames after leaving a platform.
Indeed, our eyes don't see properly what happens on the screen. Either we think the character is grounded, but it is still a few pixels above, or the character is still on the platform, but actually a few pixels away, in the void.
After creating those scripts and adding them to the player controller, jumping became smooth.
So I added these scripts to the player controller, and jumping became smoother.
See you soon for another devlog.