Learning Godot in 30 Days (gone wrong)

I technically made a game!

But why

As I’ve said before, I have always wanted to make games but I never had the patience to learn how to by myself. Now that the semester is over and this website is (mostly) done, I have the perfect opportunity to sit down and do this.

To fast-track this and make interesting content, I’m challenging myself to learn a game engine, specifically Godot, and make a decent game with it in a month. I don’t normally give myself deadlines like this, but that’s the reason I’m still learning this stuff at the age of 21 :P

My background so far

To give you some context around my current skills, here are the games I’ve made in the past.

Well… the presentable ones.

Super Pong

This was a group assignment for uni. It’s a remake of pong (based off this tutorial) where you can move the paddle in any direction. I didn’t write much code for this; my job was to make the art assets for it (the main menu is horrid), the particle effects, and the promotional poster. Most of the programming was done by my two other group members.

(itch.io link)

Keep Away!

This was also an assignment, but a solo one. It’s a short platformer where you have to run away from a ghost that you can slow down by looking at it. It was also based off a tutorial. I wrote some code (mostly in blueprints), added some features like the ghost, music, and fall faster action, and redesigned the level. I’m sort of proud of this one, but I know I could’ve done better if I was more familiar with the engine and C++ programming.

(itch.io link)

StealthCraft

Not really a game, but I’m including it for old times’ sake. It was a minigame realm (server) for Minecraft Bedrock. It had a long history, opening in 2019 and closing in late 2023. A lot of people worked on it, including myself. I made a lot of things for that community and I learnt a lot of my content creation skills while being there to make better things.

We shut it down because we got too ambitious and didn’t have the motivation to finish things when Minecraft Bedrock was such a shoddy platform for developers to work on. I do intend to write about StealthCraft and its’ realm more in a future post.

Doing tutorials

On December 15th, I started using Godot by following their official documentation which has a quick start guide and two simple tutorials in it.

The introduction and step-by-step sections introduced me to some key concepts in Godot and showed me around the engine’s editor (I found the option to change the theme to green by myself >:D).

A GIF of the end result of a tutorial from the Godot documentation, where a placeholder image can be moved around with the arrow keys

It had some hands-on sections, but I didn’t yet fully understand everything they talked about. That was fine though, the real tutorials were just ahead.

The 2D one

The 2D tutorial was for a simple bullet-hell game where you dodge enemies and survive for as long as possible.

I finished the tutorial pretty easily. I don’t have much to say about it, other than it was pretty simple. Later, I’d like to learn more about how the sprite animations work because I feel like I’ll be using those often.

A GIF of the end result of the 2D game tutorial from the Godot documentation, where a player character has to avoid touching enemies

Then the 3D one

The 3D tutorial was for a similar bullet hell game, but in 3D and with a jump mechanic.

I finished this tutorial too. I had a bit of trouble with the player’s animation near the end, I just couldn’t make the keyframes look as smooth as in the tutorial. Other than that, it went great. Working in 3D wasn’t all that different to 2D, but I have a feeling 3D development would be harder with bigger games so I’ll stick to making 2D ones after this.

A GIF of the end result of the 3D game tutorial from the Godot documentation, where a player character has to avoid touching enemies and can jump on them

After finishing all the official tutorials, I had all of five days left to make my own game. That’s right. Because I started this project in the middle of December, I spent a lot of time with my family and procrastinated away the little morsels of time I had left.

Making my own game

With only five days to work with, I figured I should make a platformer as my first game. It’s the typical beginner thing to do.

On day 1, I made a new project and tried to make a character and platforms by smacking nodes together. I figured out what nodes to use from the 2D tutorial I finished earlier and some other tutorial online. I gave the player and platforms placeholder textures, then gave the player movement logic by just giving it the default character script template Godot provides.

A GIF of a green player character jumping around on platforms with placeholder textures

On day 2, I learnt how to use make and use a tilemap from the Godot documentation and replaced the platforms with proper terrain.

A GIF of a tilemap being laid out in the Godot editor

Day 3, I added an angry enemy that walks left and right, bouncing off walls. I made this by copying the player script, removing the input logic, and figuring out how to make the enemy flip it’s rotation when it collides with something. It also bounces off the player because I didn’t get around to making game over logic.

A GIF of a green player character running and jumping around an enemy NPC

I skipped day 4 because I was busy that day.

And on day 5, I let the player bounce on top of the enemies and added a finish flag. Going to the finish flag takes away your controls, puts up a victory screen, and makes the player do small jumps forever. The game technically has an ending now.

And that’s the whole game.

Not too proud of it, but it was fun and satisfying to make a game by myself even if the end result is… that.

It’s obvious what went wrong, I botched several weeks of my time and still only spent a couple hours a day on making the game after that. It was also my first time making content in years, so I was doing all this while recording it and writing a video script and this blog post. I’ll have to learn to doom-scroll less and better manage those different tasks.

Downloads

You can download Windows and Linux builds of this game from here. It should work for everyone because it works on my machine ;)

Thanks so much for reading this! In my next post, I will be improving this skeleton of a game and trying to finish it.