The Tree Invaders GoGodotJam Postmortem


Before I made this game for the GoGodotJam, I have watched the Pre-Jam Livestream Events.

Day 1

On Day 1, when I just found out the jam’s Theme (Growth), I could not make anything since I still needed to find a good idea. Then I had the idea that would become Tree Invaders. But I wanted to use Pixel Art Graphics, and then I didn’t know how to animate the Tree growing before Submission End. Then I wanted to quit.

But then, i finally Did make the base version of the game by switching course and making Vector Graphics in Inkscape instead. The main reason is, that I could actually Make the tree-growing animation much more easily by simply drawing the Sapling and scaling it up programmatically. The player’s laser cannon stayed unchanged since then, also the Tree was already growing, All graphics used the same sprites as in the end, the Score System was already there, and the sound effects were already there. The game only had 1 enemy type (The White, Yellow and Transparent Triangles going straight down), no screen shake, no pause function, and the clouds and the bush in the background details were missing (it was just Sky Blue). But there was already the Game Over logic and the Explosions (which are CPUParticles because the game is meant to be playable in the Web Browser). This doesn’t sound great, but the point is: This is the base version of the game, and it was Already praised as a good game. Without this base version, the Great version that i ended up with before Submissions End, could Not be made.

Day 2

Oh Boy, did development really just Start on day 2!

The game was originally made with only Keyboard Controls, so on day 2, i added Actual Android Support by making the Restart Button an actual On-Screen Button, and adding an on-screen Pause Button that only shows up if the game runs on Android. I also programmed the game to remove the Keyboard Prompts if it runs on Android.

Since this build, I started publishing the Source Code as one of the Download Options. The game wasn’t MIT-licensed just yet, so technically “All rights were reserved to Me”, which was not what I wanted, but at this point I still needed time to think about the right open-source-license for the game.

Days 3 – 5

On day 3, I made the Rest of the enemy types you see in the final game.

On day 4, I added the 2D Light Effects and Day-Night-Cycle inspired by this YouTube tutorial. I also added the Forest and Clouds into the background, with the Clouds already moving.

On day 5, I fully implemented the Settings menu to the Pause Screen. The only thing it did Not do was to save the settings between play sessions.

Day 6

On day 6 (2 days before Submissions End), I searched how to Save Data so that I could save the Highscore and implement the Highscore display, so eventually i found This easy-to-understand guide on saving and loading data in JSON. It was So simple, especially compared to the ConfigFile guides I found before (that i could Not understand), that i decided to use the same method not only for saving the Highscore, but also the Settings I was supposed to save with ConfigFile. I thought “why should i even Try ConfigFile? As far as I am concerned, this much simpler method does Exactly the same thing and is Much easier and cleaner.”

Then I finally came to the conclusion that the license of the source code should be the MIT License. So now you can not only look into the source code for learning purposes, but Also have the freedom to legally modify the game into your own game, just like I wanted. It’s the same license that the Godot Engine Itself also uses for Its source code.

And then, still on day 6, i made the Final update, just because I could and thought it was a good idea. It only translated the text into German (the other language I am fluent in besides English) so it would show up in the German language to players who set their device’s System Language to German. The purpose of this is to learn about the technical side of translating games with CSV Spreadsheets. This way, when, in the future, i actually Need or Want to translate a game into a language i Don’t actually understand very good, I could focus on Actually Translating because I already know how the technical process works.

Conclusion

And this was the Tale of how i made Tree Invaders. I am very pleased because of the things I learned about Game Development, both in Godot and in General. I would’ve Never expected This, my Very first Game Jam Participation, to go This well. Not only could i Actually Finish the game On The First Day, but it only got Much Better from there.

I would very much Thank Everyone who made Video Events Before, During, and After the jam. And everyone who organized the actual Jam part of the GoGodotJam. This was very special, and made me Even More convinced that Godot is the right game engine for me, especially now that I have become Much better in making Godot games.

Now that I’m done, I’m going off to play the other GoGodotJam submissions. Goodbye. 👋

Get Tree Invaders

Leave a comment

Log in with itch.io to leave a comment.