https://hemlockpt.itch.io/perfect-movement-template
It’s been longer than I would’ve liked since my last post–between getting a part time job, a few friends visiting this weekend and going to visit some friends last weekend, I haven’t had as much time to work on these projects.
With that said, I am totally happy about this project! If Excelsior is my creative showcase, being a fun game with a creative premise and good looking art, this is my technical showcase. I imported 3 assets, being the three placeholder sounds I used, and nothing else. There’s no art, no music, no goal or level design, just a square with a triangle hat moving around a screen. All my code is reasonably clean & concise, I separated all my files & drew up my psuedocode beforehand on paper, and I used a state machine which is honestly totally unnecessary for now but will make expansion upon the system super intuitive.

My goal for this project was to make an incredibly solid skeleton for a 2D platformer that will give me a head start next time I want to make one. This means it has to be extensible and flexible for whatever kind of platformer I want to build on top of it, and I wanted it to be readable, bug free, and efficient code, so I am not dealing with these issues down the line for future projects.
I also wanted to include every little tiny detail I know about that makes 2D platformers feel better. I had a huge list of tiny, QOL features that I wanted included. I skipped nothing, no matter how seemingly small. The jump buffer works for any jump height. I have edge detection & forgiveness on every relevant corner of the character. All of the ground and wall hitboxes line up perfectly with each other and the stage. I wrote gizmo functions for all detection, movement, and any other confusing functions I could think of.

This was the first project I found GitHub Copilot REALLY useful for. There was some best practice and nomenclature stuff that I just let Copilot decide for me, because it does write very consistent code if nothing else, and so I think my naming conventions and organization are more standardized and readable than ever.
If I had to teach a semester long college course on anything right now, it would be Brandon Sanderson’s cosmere. But after that, it would be on Phineas & Ferb’s cultural impact. But close behind that, it would be building a 2D platformer with clean & expressive movement! Between Excelsior, a project with a large scope, tons of different interacting mechanics and moving parts, and this, which is refined to a higher standard of quality than anything I’ve ever made before, I feel that I know the genre inside & out.
With that said, it is time to branch out! My next project I am not setting a deadline on, because I will be working and applying for jobs at a more regular pace at the same time, and I will have a lot to learn for it. With that said, I am going to create an interactive museum with all my game ideas as the art installations, hopefully with GenAI models controlling the NPCs dialogue in each room.
I will post more often during the development of this next project, because I will be learning more new techniques, rather than refining & practicing things I am already familiar with. Be back soon.
Graham.
In case you missed it above, here is the link to the game.
Leave a comment