Gourds Up is the first game that I released on Steam. It is a twin stick action roguelike, with small platformer elements.
The game is a side scroller style roguelike which tasks the player from defeating rooms filled with enemies in order to progress to the end of the runs. With my steam description reading: "Gourds up is a 2D shooter, with many roguelike-y elements. You will progress through runs by choosing the next rooms, through the form of cards, that you will fight in, allowing for more strategy during the run. Get random weapons and upgrades, and just don't die! "
My Role
This project was made solely by me, and I handled game design, programming, art, organization and sound effects. The only outsourced part of the project was the music.
Tools Used:
Godot Game Engine, Aseprite, GitHub Desktop,Pixel Composer, Trello
Some Interesting Mechanics!
A lot of the shaders and effects in my game use a mixture of shaders using the screen UV coordinates and scrolling UV coordinates. I used this a lot to mimic what I see as a semi comic book style.
Later on in development, I wanted multiple characters and it was actually easier than you would expect. Each character was it's own scene extending from the first character's scene with some different changes to the stats and sprites. I then added these characters to the player spawner and that was it. It's a very simple mechanic but it added a lot.
Deeper Breakdown of One Mechanic
Later on in the game's development, I decided the game needed something even more unique, and I landed on combining stats of weapons. However, in the games big update I wanted something even more unique, and for that, I landed on having the ammo of the clip have individual bullets which can relate to the effects of other weapons when combined into it.
The main way I did this was to have the weapon resources contain both an array and a dictionary. The array would get another resource added to them, and then the dictionary would get given the index of the bullet and the index of the array so that when a bullet is being shot, it could compare the bullet index to the dictionary and get the modifier resource.
The resource that these modifiers stem from can take the statistic of the weapon and then changes them for that specific shot.
Reflections After Release
Overall I am really happy with this project, the visual effects and quick movement make it really fun to play, even after actively thinking about this project for over a year. There are visual effects on almost all actions which make is satisfying to do. And I am still impressed with the more technically complex mechanics that I programmed into the game, including the ones just above). This project also helped me get used to long projects and the organisional issues that comes with them, being fixed by using Trello. This is the best project I have released to this date.
However, as this was my first big project that was released on Steam, there are many things that I would do differently. Mainly how I made and organised each of the rooms. Each room was it's own scene (which in Godot means that they are basically in their own file), and then the entire scene was switched to the room when changing to it. This worked fine, however, it meant that any data that was needed to be passed between the 2 scenes was passed through a global node. I also removed the character between scene transitions, which with the knowledge I have now, I would not do.