Echo Station: Godot Wild Jam #53


Hello everyone, today I wanted to share with you my experience making a game for the Godot Wild Jam 53. This is a game jam that requires you to make a game using the Godot Game Engine within a time limit of 9 days and to adhere to a random theme that is chosen each jam. This jam takes place once a month, so if anyone here thinks that it sounds fun, I highly recommend you give it a try. I had never made a game in Godot before, so I decided that this would be a fun opportunity to learn how it works and create something small and creative.

The theme for this month's jam was Assembly Required. The theme is part of the judging criteria, so if you want to try for a high ranking in the jam you need to adhere to it, but if you just want to have fun and make some games with people you can choose to ignore it. There were also 3 optional challenges you could try. These were using only 4 colors in your color palette, adding a plot twist in your story, or using temperature as a mechanic. I didn't end up using any of these, but in hindsight I probably could have done the plot twist pretty easily.

Planning

The jam started on a Friday, and I spent all of that day and most of the next day thinking about what game I wanted to make. The theme Assembly Required was quite difficult for me. I kept thinking of automation or physics based games, but since this was my first attempt at Godot I didn't think that would be wise. I started by writing down some ideas in Milanote. I must have been in a space mood because those were the only ideas I could come up with.

I finally chose to go with a metroidvania style platformer about trying to repair an abandoned space station. Later it evolved into collecting security keys instead and basically stopped fitting the theme, so I sneakily changed the story to make the player a robot who needed to "Assemble" himself with his missing parts. Hopefully they bought it.

Learning

Since this was my first time using the Godot engine, I wasn't really sure where to start. Luckily as I was booting up the engine, I found a 2D platformer template I could download. After playing with it a little I realized it had almost all the functionality I needed. After messing around with it for a couple hours, I figured out how a lot of the code worked and managed to repurpose it for my own game. Godot uses GDScript which is very similar to Python which I use professionally, so it was fairly easy for me to pickup how it was working. After reskinning the enemies, the player, and the world tilemap, I had a working game that was very visually similar to my final product! There were a few things I had to look up tutorials for. The node system Godot used originally confused me and I didn't know which nodes were available, I also had some confusion on how to access nodes from other nodes and how to change which scenes were active. Luckily the node structure isn't too different from the GameObject structure that Unity uses, so my experience with Unity helped me pick that up fairly quick. There were a few features that I had to implement myself that weren't included in the demo project. The player needed the ability to drop down through one-way platforms, which I did by disabling the collision with them for 0.1 seconds when the player jumped while crouched. I also had to implement the dialog system for telling the games story. That was a bit tricky given my unfamiliarity with Godot's nodes and UI systems, but I found an excellent tutorial about how to do it. The last feature was something core to the game, the camera functionality. I wanted a metroidvania game where the camera would switch between rooms. I had never made such a system before in any engine, but luckily Godot has a simple flag on camera objects called current which allowed me to switch between them when the player hit each cameras collision box.

Level Design

The main challenge with any metroidvania game is the level design. The goal is to create a map that will restrict the player and guide them through a series of challenges, but also needs to feel open enough that they can experience a sense of exploration. Usually this involves adding obstacles that can only be overcome with upgrades they find later on, such as a rock that requires a bigger gun to break, or a ledge that requires a special movement skill to reach. I didn't want to spend too much time implementing special upgrades, so to keep it simple I stuck with what I already had, jumping and attacking. The first upgrade would be the ability to attack. This would allow me to block off access to certain areas with enemies that the player could return to fight later. The second upgrade was a double jump. This allowed me to dangle platforms just out of reach of the player, so they would feel the design to keep exploring and eventually find the means to reach that platform. The most important part of a metroidvania is to always keep the player aware of what to look forward to and where to go next. If your player ever feels like they don't know where to go next they will get frustrated and quit. Thats why you need to constantly sprinkle in routes that the player can't take yet, that way as they get more upgrades they know they have new places they can go back to and explore.

Story

I great story can really carry a game, especially a single player game. Unfortunately I am not the greatest creative writer and did not have unlimited time, so I drafted a short story about a robot who is trying to fix an abandoned space station that was abandoned by humans. Its not a very emotional or funny story and is mostly just there to guide the player through objectives, but hopefully one day I can come back and improve it.

Boss Fight

In my opinion, no good platformer is complete without some kind of boss fight at the end to wrap things up in a dramatic fashion. I had never created a boss fight sequence for any game before, and I had left it all up to the last day to do, so I was a little worried about it. Fortunately, I think it came out pretty well. I added a robot boss encounter at the end with custom attacks and two different phases that would activate when the boss's health fell to certain levels. Its a little buggy, and the boss can sometimes kill you from the grave (oops), but I think it was a humorous and challenging conclusion to the game.

Polish

Sadly, or probably fortunately otherwise I would have dragged this on forever, I did not have enough time before the deadline to completely polish the game. There are a few bugs that can be annoying, but luckily I'm not aware of any game-breaking ones. There are a lot of sound effects that are missing that I wish I had time to add, especially in the menu screens. I did not have time to add in the options menu, several parts of the map are unfinished with their decorations, and I was really hoping to add in dynamic lighting to enhance the atmosphere of the game a lot. After the jam is over, I think I'll come back and tie a nice ribbon on top of this game. I am quite proud of what I created so far, and I think it deserves a final coat of paint.

Conclusion

Thank you so much to anyone reading this! I absolutely love game development and am glad to be able to share it with other! If you have the chance, I highly encourage everyone to participate in game jams. The limited deadline really pushes you to finish even when your sense of perfectionism wants you to keep delaying forever, and receiving feedback from people playing your game is something that is quite rare for solo game developers and can be quite motivating.

If you want to try my game yourself, its playable on Windows, Linux, or in a browser on my Itch.io page here https://dispixel.itch.io/echo-station.

If you want to see some of the other games I've made you can see them on my Itch.io profile page here https://dispixel.itch.io.

If you'd like to see how my game was made, the source code is publicly available on my GitHub profile https://github.com/Nanoparty/EchoStation.

Again, thanks for reading, and I hope to see you all again later! Bye!

Files

EchoStation_Linux_v1.zip
Jan 22, 2023
EchoStation_Windows_v1.zip 30 MB
Jan 22, 2023
EchoStation_Web_v1.zip 20 MB
Jan 22, 2023

Get Echo Station

Leave a comment

Log in with itch.io to leave a comment.