Hi, this blog post is part of the submission to the Learn You a Game Jam hosted by CaptainCoder for the first (and hopefully not for the last [wink-wink]) time (source code, assets and Obsidian notes are available, you can download them here). In case you didn't know it - 2 main concepts behind the jam are learning and pixel art. No matter what games you're making it's highly encouraged to try something new and use pixel art. Development team consists of me and 2 cats :)
Long before the jam started I've done some basic planning that doesn't take longer than 10 minutes and can help you drastically. 3 main things to think about:
At first glance there is nothing fancy here, day was spent on: Setting up a project file structure, creating an empty Godot project, configuring OBS, installing DavinciResolve, configuring an empty Obsidian vault that I've been using to organize some of the notes during the project (+ I'm using it right now to write this blog post). Later I've discovered that this step was really important because I've stumbled upon weird issues that could have cost me an entire day. For example, OBS wasn't splitting audio into 2 different tracks and Godot was crashing OBS sometimes. That doesn't sound like a big deal for a 10 days jam, but if time constraint was smaller (let's say 2-3 days) I would have been screwed.
Learned lessons/Summary:
Learned tech:
Mostly I'm gona ignore the timeline and focus more on the most interesting moments and things I've learned. Without further addo...
I'm a Godot dev and not a 2D artist, so that's why I was always 100% dependent on free assets I was able to find online. During the jam I've decided to learn pixel art and make sure that more than 50% of the artwork in the final game is made by me (spoiler: I did it!). For example, this is how I was improving game's tileset during the jam:
--> --> -->
It was really fun to learn pixel art basics and have control over visual for your game (the only downside is that I've spent less time implementing and debugging async level switcher than drawing this damn tileset) . There were many useful resources I've found, here some of them:
However even after learning more about colors, lospec.com was really helpful (even if you know how the colors work you still need to pick them). I've used this color pallete for a player and this pallete as a starting point for a drawing a tileset.
When I was drawing a round terminal icon tutorial by Brandon James Greer really helped me out by explaining how to draw curved lines (+ I've never heard about pixel-perfect feature in Aseprite, which is great)
Glow and lighting effects are really awesome, but performance of WorldEnvironment node in Godot 4.0.x isn't. Luckily it turns out that you can achieve good visuals using "fake lighting". You basically just overlay textures on top of game and done! It looks awesome with pixel graphics to me, so I think I'll use this effect in my next games as well. Good starting point here and more detailed series here. If you want even better results, you can try a little bit more complex technique by perfoon (I haven't used it in the final game, but added a link in case someone interested)
It's good that now I'm familiar with pixel art basics, but there are "tricks" that can be used no matter your skill level. For example, when I need a procedural effect, animation or a crazy particles simulation I usually use SpriteMancer. For an artist this is a great tool to their collection, for a programmer - easy way to use existing artwork more efficiently.
I didn't learn a lot of new game design techniques (other than level design) because I've already knew how to make a great platformer experience thanks to Celeste, GMTK Platformer Toolkit (+ videos on the GMTK YouTube channel) and some other tutorials out there. Here's the list of main techniques and a brief explanation:
Just play the game and you'll see what I mean.
From the tech side - I've never implemented a voice lines system with subtitles (that turned out to be easy). From the recording side - English is not my main language, so I was really nervous <-- It was really hard to deal with the feeling: "God damn it. This audio clip sounds so bad. Maybe I should try a text to speech..." However the jam is designed to try new things + I was curious to see other people reactions, so I've manage to overcome myself (it was an interesting experience).
Surprisngly instead of searching for everything online I've implemented a lot of sound effects myself using Bfxr, Audacity and a little bit of me suffering (R.I.P. Chair and me laying on the floor just to reccord the intro cutscene).
I've joined 3 jams before and every time I particapate in a new one there is something new to learn.
Who would have thought (it took me 3 jams to finally realise that...maybe I'm just stupid...). As soon as the theme is announced physical whiteboard (if any) and online platforms for brainstorming (I've decided to try this one) are your best friends:
Besides exercises and staying hydrated keep track of your working hours. Initially I have been working on game non-stop for 6 days, but later it hit me and I've lost an entire day just because of that. Luckily I was able to finish the project using new plan and as much will and motivation as I could. Much smarter thing to do is avoid situations like this in the fiirst place (hopefully lesson learned). Also thanks to the Discord community!!
Don't make huge plans and be ready to adjust your existing once. EVERYTHING can go wrong. Some issues are more likely than the others, but idea stays the same - be ready that in the worst moment possible anything can go wrong. Don't panic! Instead, stay focused and determined (try to come up with a new plan and maybe talk with you team members <-- if any)
A lot of people deserve to be credited, but I'll try my best at not getting carried away too much:
Many thanks to all of those who make free assets. Here are the assets I've used for the game:
You can follow me on itch and subscribe to my YouTube channel (I'll post some good stuff here soon)
Did you like this post? Tell us
Leave a comment
Log in with your itch.io account to leave a comment.