*May 28, 2024 Edit Update: I just noticed that this letter title’s number was incorrect and I have just fixed it. The title originally read “Letter #40: What I Learned After Making a Game” and has been fixed to “Letter #41: What I Learned After Making a Game.” Thank you!
Hi there! I suppose this is essentially my first devlog (development log), meaning my first write-up of what I did/made/learned after finally finishing a game and submitting it for a game jam.
Let’s back up for some context: I know I’ve mentioned on here that my husband Anthony and I tried to start making games last year in this post.
Every time previously that we tried to make a game, life kept throwing curve balls (somebody getting sick, us not having enough free time during the jam period, etc.) or us realizing that the game concept was going to be too big for us to complete during the period.
Up until this past week, every time we had tried to start working on a game, I basically got through making some art (always hand drawn with ink in Krita) and Anthony got through reading a lot of documentation on how to do the programming for games in game engines like Godot, Gamemaker, etc. The closest to actually making a game we had gotten was me making some hand drawn sprites and him putting them in an engine to have the player sprite fire at some enemies for a game we had wanted to make, but we ran out of time in that other game jam so we didn’t even get to make an entire screen that functioned the way we wanted.
My point being, we had never gotten a full level or screen of anything made in any game engine and we were sick and tired of that being the case. We wanted to make and finish a game. Period.
So when we started on the Game Idea Jam 2024 last Sunday at 6 PM, we were really trying to buckle down and just get there. To finally get something done and submitted to prove to ourselves that we could actually make it happen.
It had been months since Anthony had so much as looked at a game engine, so he had to chose which one he was going to stick with and figure out how to do physics and vector math in his chosen one (Godot).
I had never made art assets for a game in pixel art. I had started drawing some pixel art in the last few months, making a few animation GIFs (animations are surprisingly quick to make in Aseprite!) and some tiny emote-style images just to see if I could make, and enjoy making, pixel art. But this game jam was the first time I started making pixel art for a game.
*Also, the only time we had to work on this game was after work each day, so that was an additional challenge (and I’m sure a very, very common thing for a lot of people working on making games as not their full-time job). We were putting in about four to five+ hours each night after work on this game this past week, so we were super pleased with what we accomplished in that short amount of time!
Days 1-2 (Sunday, May 5- Monday, May 6):
Anthony went through a bunch of documentation to learn how/what to do with all the programming in Godot while I drew out our pixel art assets (each sprite for our astronaut, asteroid, black hole, crystal gem, play/main menu/quit buttons). After I sent those over to him so he could start testing those sprites out for the physics of the game, I made our stars background so he could add that in so a screen would actually look more fleshed out with a background and sprites. Whoo, progress!
Day 3 (Tuesday, May 7):
By the end of day 3, Anthony had pieced together the background sprites and menu buttons into two basic levels and a menu screen.
We also played around with making a main theme (song) for the game. I found a good synthesizer on Soundtrap that fit the space ambiance I was going for, but I couldn’t come up with a set of notes that I liked, so Anthony played around and came up with some nice chords on the Launchpad. Once I had a better feel for how I wanted the sound to be based on those chords, I added some other notes in various other synths, some background ambient sounds that sounded vaguely space-y, and then added my favorite (and weirdest) part of the song: Morse Code!
At the time I was working on the song, the game idea was essentially “collecting stuff in space,” but we didn’t have a title. (I thought of the title on day 4 or 5 when I happened to mention to Anthony that I thought it was interesting that the astronaut both cannot really aim and that he can float aimlessly in space if you let him.)
Space often makes me think of trying to communicate across long distances, so I thought the beeps and boops of Morse Code could be a really interesting touch to the song if I could figure out playing the dots and dashes in song form. So I looked up the Morse Code alphabet, wrote out how I would turn the phrase “collecting in space” into Morse Code, chose two notes that sounded good in another synth track, and started playing.
Reader, I am not very good at playing encoded messages via a Launchpad.
Because Morse Code is entirely comprised of dots and dashes, timing is very key here. I learned that apparently if you play a note too fast, it will sound too close to the previous note, so if the previous note was a “dash” and the next note is also a “dash” but you don’t provide enough space in between them, it might sound like you’re playing the wrong “letter.”
For example, if you’re trying to play the word “B - E - E - F,” it would be read/typed/played as “B” (- . . .), “E” (.), “E” (.), “F” (. . - .). If you play “E” and “E” too fast/close to one another, you would get “. .” which translates to “I” instead of “E,” “E.” This then gives yourself an incorrect translation of “B - I - E - F” or “B - E - I - F” instead of “B - E - E - F” if you were actually trying to translate the Morse Code out of the song if you happened to notice that it was in code… which, like, I’m not sure why you would notice and do that if you’re not me, because that was a conscious musical choice I was making, but it’s possible that someone might notice.
To avoid this kind of incorrect translation mentioned above, I replayed and rerecorded me playing my chosen phrase on the Launchpad an absurd amount of times until I got all the notes correctly spaced enough to tell the difference between them. What’s super neat in a DAW (digital audio workstation, basically just a program on the computer where you can play, record, produce, and mix music) is that you can see the notes you’ve played. This is incredibly helpful when playing notes as Morse Code dots and dashes because you can literally see if the dots and dashes are in the correct spots! I can’t tell you how excited I was to get that to work!
Then I just played around with some other instruments/synths instead to get the sound to match with the rest of the song better, added one other ambient noise track, adjusted the placement of some sections, and finished the song up by the end of day 3. Anthony had suggested we have a main theme that was about 30 seconds long that we could loop for the game, but what we came up ended up clocking in at about 1:30 that we could then loop as necessary. It’s not a super long song by any means, but I’m still really pleased with it being our first actually completed track we’ve ever made together!
Day 4 (Wednesday, May 8):
I worked on making some basic menu buttons, text boxes (that Anthony could then break up into 9 parts and resize/splice back together to have custom sized boxes for any text we wanted in Godot), and a custom font (essentially just drawing out a stylized alphabet, numbers, and symbols).
I have always loved drawing out random fonts, so this was super fun to design a space-looking font specifically for this game! The only slightly annoying part is that I had to make every letter and the space in between each letter exactly the same number of pixels. So because I drew my first letter at 7 pixels wide by 11 pixels tall, all of the other letters I drew afterwards also had to be exactly 7 x 11 pixels. Thankfully Anthony had the idea that we could just type everything in Caps lock in the game text boxes, so I only had to draw a capital letter once for each letter instead of a capital and lowercase version of every letter.
Once he had the custom font, he broke up each letter of the image with the purpose of converting normal text typed into text boxes in Godot into the custom font. I then sketched out some basic level designs for the first 3-5 levels and called it quits for the night.
Day 5 (Thursday, May 9):
Arguably our most productive day (because we had a pretty complete demo by the end of the day) and one of the longest days we spent on the game. Day 5 is when we really sat down and worked on designing and piecing together 10 basic levels to get a basically finished demo of our game. Anthony made the first three levels based on my initial sketches then asked if I wanted to try moving sprites around in Godot to make a level or two. But because I had so much fun dragging the art assets into place in the game engine and seeing if my level designs worked, I ended up designing all the rest of our levels and playing all of them until I could beat them!
(Apparently I am a pretty mean level designer with how hard I initially made some levels! There had to be a fair bit of tweaking the placement of asteroids and black holes to get the angles to be manageable and playable, so while this was really fun, it took a while.) By the end of day 5, we basically had a finished game that we were really happy with and honestly could have just submitted at that point. We were so stoked!
But we still had day 6 left.
**The game jam ran past Friday (from 6 PM Sunday to 6 PM Saturday), but I had to work Saturday and the game submission period would have ended by the time I would have been able to work on the game at all before the end of the jam, so we knew we had to finish and submit by Friday before I got up for work the next morning.
Day 6 (Friday, May 10):
We did all of our finishing touches and any polishing we could on Friday. We play tested all of our levels again ourselves (unfortunately we didn’t get a chance to ask anyone to play test the game) and tweaked several levels. We polished up the main menu and level select screens. Anthony learned how to implement, and then implemented, a pause function, pause screen, and restart button in Godot!
I wanted to add the astronaut to the main menu screen and we thought it would be cute to have the astronaut bounce around the screen like the DVD logo used to on TV screens in the 2000s-2010s, so Anthony figured out how to make that work. (We literally cheered when it worked out and I’m still really pleased when I watch the astronaut bounce back and forth behind the main menu buttons on the starting screen.) Anthony added the finished theme song to the game file and I made our Itch.io page for the game. I checked and re-checked our Itch.io page to make sure it made sense. And then we were done, or done enough for now.
We posted the game on its own Itch.io page and submitted it to the game jam around midnight (Friday night into early Saturday). And then we got to celebrate that we had finally gotten our first something fully playable together!
Here it is, if you’re curious to see what we made!
Our little game, Aimless, is a small, pixel art physics-based puzzle game built in six days during the Game Idea Jam 2024, the goal of which was to make a game based off of a prompt from a random game idea generator.
Closing Thoughts:
Overall, this was so exciting for us because we finally accomplished something we’ve wanted to for months now. We actually made a game.
And in doing so, we learned:
How to make levels, resizable buttons, custom fonts, pause functions, restart functions, and how vector math and physics works in Godot
How to convert Morse Code into a playable part of a track in Soundtrap
How to make pixel art assets and a custom font in Aseprite
How to make an Itch.io page for a game and submit a game to a game jam on Itch.io
How we can prioritize “this has to get done for the game to function” over “this would be cool in the game” (really aside from the DVD-like astronaut bounce)
That we can actually make a game in a week!
Now, after getting some feedback in the comments section of our game, we’ve learned that when we revisit the game, we’ll want to consider:
Making sure we clearly show/state what the controls for the game are (left click to click on menu/quit/continue buttons, spacebar to fire, and R to restart a level), potentially in a tutorial page or screen (not just in the description of the game like as we did this time)
Editing the default filtering in our game if using low-res pixel art (to create art that looks crisper and more polished)
Potentially changing up the art/color palette to feel more cohesive
If you play the game and have any thoughts, please feel free to give us any feedback on what you think could be better! We’ve already gotten some comments about making sure players know what the controls are and I’d ideally like to update the art a bit (likely changing the asteroids and crystal gem a little and adding some alternate obstacles like satellites, space debris, etc.), but please let us know if you see anything else or find any weird bugs/issues.
Thank you for reading! As always, thank you for stopping by and for sticking around even with my lack of posting, especially when I’ve struggled to feel like I have something to say for months!
Have a day as lovely as you are!
-Olivia :)
Quote of the Week:
“The one thing you have that nobody else has is you. Your voice, your mind, your story, your vision. So write and draw and build and play and dance and live as only you can.”
-Neil Gaiman, Make Good Art: Inspiration for Creative People
Works Cited (MLA 9th Ed.)
Gaiman, Neil. “A Quote from Make Good Art.” Goodreads, Goodreads, www.goodreads.com/quotes/1290627-the-one-thing-you-have-that-nobody-else-has-is. Accessed 15 May 2024.
Congratulations! The game is super cute! It’s awesome that you made it together. :-)