Greetings reader. Welcome to the first post in my devblog. The goal of this blog is to document the journey of making a 2D platforming game, and share all of my struggles and triumphs along the way, though doubling as practice for the College Composition essays doesn’t hurt.
Game development has always been something in which I had a minor interest, but after a few failed attempts, I decided that I did not have the necessary skills for game development. Recently, though, I was informed that I was using the wrong resources, specifically I was using Unreal Engine, which is orientated towards 3D games, to make a 2D platformer. After some research I found a more suitable and completely free engine called the Godot engine, which is available through Steam.
I downloaded Godot, opened up their platformer template, and messed with it for a few minutes. I soon realized that the default controls were too imprecise and floaty for what I wanted to do. I spent some time figuring out what the variables meant, specifically the jump strength and max speeds. After tweaking these values the movement was better, but it still had some atrocious sliding after the user ends their input. After poring through the code, I found that when the player changes the direction they are moving, the character slowly decelerates, and then accelerates in the desired direction. I wanted the game to respond to input quickly and precisely, which was the opposite of how the default controls behaved. To solve this, I made the character skip the deceleration by setting it’s velocity to zero, so that it can start accelerating in the desired direction immediately. This movement system gives the player greater control by allowing them to move and react quickly.
The next thing I wanted to tackle was a staple in platforming games, one-way platforms. These platforms are useful for gating off areas after players finish them to add consequences for choices, allowing vertical movement in tight spaces, or even just adding varied types of platforms and game mechanics. After a little bit of research I found that Godot has one-way functionality built into it’s map editor. I designed some (slightly) holographic looking blocks and tested it out. While a good start, the built in function only allows the player to pass through from one direction in each dimension, so while I can jump through it and land on top, I cannot walk through it from both directions. I will eventually want to build a way to achieve platforms that players can pass through from all directions except one.
(The low-res, placeholder art, excluding the character, is the fault of my lazy art guy. SPOILER ALERT: It’s me.)
My plan is to write one of these “DevBlog” regularly, as long as I have some sort of progress to display. My next post should include progress of a double-jump mechanic and wall-running.