Gravitableau Post Mortem


Wow, this game turned out so much better than I initially thought it would when I was going in. I joined the Paint Jam because I wanted to learn how the Godot Engine works, and I can happily say that goal has been accomplished. I'll talk more about in a moment, but now having both tried Unity and Godot for making small game jam games, I am much more on the side of Godot and I'll be using it for a while.

Rankings

I didn't even realize there would be rankings on the jam until after it was over, so I am super excited to have done so well. Out of 92 entries, Gravitableau got SIXTH PLACE overall, and there were some really awesome games in this jam. In Art and Sound, Gravitableau got 16th place in each, which I am very happy with as well. Aside from the colored rectangles of the levels, the art consists of the little artist guy and the star, neither of which I'd imagine seeing in a museum soon.

Gravitableau got #5 in the Fun category, and #3 in the Mechanics category, and this has blown me away. I'm super happy that my game was regarded so highly in the mechanical department and that you guys found it enjoyable to play.

Also, just something super cool to mention, I got a comment on my game during the voting that someone had put the game into their Top 5 itch.io Games of the Day video on YouTube, you can check it out here: https://www.youtube.com/watch?v=bAY-LkV-9yQ. Thank you Bandsmen Games!

The Schedule

I've participated in around 5 game jams at this point, successfully completing a game for 4 of them. In my opinion, this jam went very well, and I think the final product reflects that.

On coming up with the idea, the idea about a platformer where each color of the box you're in changes the color of the gravity was actually just the first thing I could think of. At the start, I wasn't sure if I'd be able to make all of the features to a quality I'd be happy with in time, but I decided to go for it.

On the first day, I wanted to get the main mechanics working, meaning my goal was a 2D platformer controller with gravity that I could put in any direction, as well as collision and the graphics for the levels. I literally drew a 64x64 pixel stick figure with a white background and used that image for my player for most of the development cycle. I was able to get all of this working by Friday night, including a feature that's in the game but never needed - walljumping. I added walljumping to make the game feel more fluid to control, but it was never used because it made levels too hard to design - something I will talk about when I get to the level design.

Speaking of the levels, Day 2 was about creating the levels. Each level consists of a collection of rectangles, each with a colored background, a spawn location for the player and a spawn location for the end star. When designing the levels, I took the chance for a change in scenery and went to sit in another room in my house to draw up the level designs on paper. In order to make the transition from level concept to fully implemented stage quicker and easier, I wrote a python script that would take a small .png file as input and then, based on the color of the pixels, generate a text file with each line containing the data for the location and color for each rectangle needed to build the level. I later went in and added two extra lines for the player and end point spawn locations. This meant that all I needed to do was sit down and grind out the transition for each level into a .png file in Paint, which would give me the corresponding text data file once run through my script. These files are in the project folder and are read whenever a level is loaded to dynamically create the stage at runtime. My hacky solution for ending the game was to load the win screen when the next file couldn't be found, so it loads level8.txt, then level9.txt, but fails to find the nonexistent level10.txt and goes:  "well, guess you win!"

Day 3 was for polish, polish, polish! I did away with the temporary programmer art I had been working with and made a character design based on the first Google image result when I searched for "french artist cartoon". I tried something I'd never done before when animating, which was to create each limb as a separate object and animate those rather than just drawing each frame individually, which definitely went faster. For sounds effects, I ran around my house finding different objects I could shake next to my microphone for sounds. Music was just grabbed from opengameart.org, as I am not musically gifted.

What Could Have Been Better

Looking back on the game, I think the biggest problem it has are levels, both from time I spent with them to the levels themselves. While the script I wrote did save me time in the end, I did spend a lot of time working out bugs in that script just to get it to work and generate level files in this roundabout way - time I could have spent on the game. I've done some research since the jam ended, and learned about Godot "tool scripts", which are essentially scripts that let you run them in the editor window. Something like this would have let me create the levels in Godot without the need for an external program, while still having the visual feedback I needed when putting them together.

There's also just not very many levels. The game has 9 levels in total, and I feel like it only starts to get interesting right at the very end, but by that point it's already over. Most of the levels are spent just teaching the player the mechanics. Another 4-5 levels with the same difficulty as the last level would have made the game much more enjoyable, in my opinion. I did have some difficulty coming up with interesting ideas for levels designs, so it might not have been possible under the 48 hour timeframe, but it's worth saying.

I've also gotten a lot of feedback on the controls, which I definitely agree with. When making the game, I wanted the controls to be relative to the player character rather than the camera to add a little extra difficulty. However, actually playing the game, this serves no purpose as the puzzle will be completed either way, only now you just need to fiddle with the controls for longer until you find the right button. It interrupts the flow of the player's brain when solving the puzzles by putting a quick "wait, how do I move that way again" in between the moment of realization where they figure out the solution and the moment of success when the solve the puzzle. Doing it again, I'd make the controls relative to the camera.

Finally, it's not related directly to the game, but the weekend of the jam I had a pretty messed up sleep schedule. I was waking up late and going to bed late. Regardless of if you're doing a game jam, having a crappy sleep schedule like that isn't healthy or fun, and if I had a normal sleep schedule, I might have even had more time to work on the game, possibly adding those new levels.

Final Words

I'm really happy with this game. It came out well, I had a great time making it, and I learned a new game engine that I really enjoyed working with. Thank you everyone for reading and for playing my game!

- Johnny

Files

index.zip Play in browser
Apr 18, 2020

Leave a comment

Log in with itch.io to leave a comment.