November 19, 2021 by Jake
One Game a Month: October
Ever started a game and abandoned it? I have. Many, many times!
It’s the same story every time. I have a “brilliant” idea for a game, with a load of features and unique mechanics. I start the project, and burn out after three weeks when I realise I need about 2 years of devtime and a full-time artist to finish the damn thing.
Overscoping can be painful!
There’s a better way.
Experienced devs say that you need to learn to complete and ship a game. Which sounds pretty reasonable, right? You get better at the things you do. I want to learn how to release completed playable products, so I should start doing that.
I’ve decided to make one game a month for the next 6 months and release them all online. This is a learning exercise, not an attempt to launch an indie studio. The games might be rough, I work full time and I am quite inexperienced, but they will be complete…at least I hope so!
On October the 14th I started making the first game. Here’s how it went.
Deciding what to make
In a launcher game, the player aims a character and charges up some sort of long-jump. The further the character travels, the higher the score. The player then has a chance to purchase some upgrades and make the jump better, and then try again.
Burrito Bison, Learn to Fly and Flight are a few popular examples of this type of game.
I love those games, and have spent way too much time playing all of them!
They’re fun to play, and there’s a very nice sense of progression. The gameplay is also very simple, it’s two core mechanics: launching and upgrading.
Having tried and failed to make more feature rich games in the past, two simple mechanics felt like an appropriate scope for this game.
I brainstormed all of the things I’d love to have in a launcher game, splitting them into “Must haves”, “Should have”, “Could have” and “Won’t have”. Most ideas got lumped into the “Won’t have” category, which I might use if I ever make a sequel. This technique is sometimes called the MoSCoW method, and it helped keep the scope of the game manageable.
In my game, Kai Learns to Fly, you play as a wizard Kai the Cat. Another wizard, King Rex Chinook, has stolen your spell book and you want it back. Unfortunately, the book teaches Rex how to fly. You need to help Kai learn to fly and beat King Rex.
Now, I wanted a cutscene to explain that but had to settle for a pop up in the final game.
Which brings me to the biggest challenge: Artwork.
Art is hard!
I’m a programmer. That’s the majority of my day job, and I’m quite comfortable with coding. Creating character models, a cohesive UI…even picking a nice color palette are well outside my wheelhouse!
It was a struggle to get the models I need for the game, and to give them some very rudamentary animation. A simple cutscene would have eaten up a huge chunk of my time and wasn’t strictly necessary, so it got cut.
I decided to go for a low poly art style and start iterating on character designs. Starting with the main character, Kai:
I am a complete beginner at character design and 3D modelling, so I went for a low poly look.
The first version looked like a racoon! Woops. The second verison was made without looking at a reference image, and is just a bit goofy. I compared it to my cat Gatsby’s face, and realised the nose is upside down and the head is a bit too round for a cat.
After fixing these issues, I settled on a design for Kai.
I wanted Kai to squish enemies as he bounces off of their heads. The more enemies there are, the further Kai bounces.
The enemies were harder to model.
I thought that since Kai is a cat, maybe birds would be a good enemy character. I tried modelling a few different birds, and here’s what I ended up with…
Yeah, pretty shitty!
They looked even worse in-enginge. Worse still, birds have knee joints that go the other way compared to us humans, so getting the walk cycle to look half decent on these goofy models was beyond me!
After a week of toiling away in blender, I decided to scrap the birds and start over using the Kai model as as a base. I ended up with this:
Cats vs Dogs makes sense as an aesthetic, and dogs have kness that bend the right bloody way! It’s still not great, nor is what I pictured when I was designing the game, but modelling had already eaten up way more time than I had wanted.
2 weeks in, I had gotten most of the 3D assets I needed, and worked on the getting the core gameplay loop to feel okay. I ended up with a game looked…well honestly kind of crappy, but passable!
I spent another week adding sound effects, a boss battle and UI for the shop. The shop was a key part of the game, it appears at the end of every run and is meant to be the hook. You keep playing because you want to unlock all the upgrades.
It needed to look good.
After some time in Adobe Illustrator, I ended up with this:
It does look a little bit like programmer art…In fairness, that’s what it is. But, it’s as good as I can manage and spending any longer on it wasn’t really possible with the time constraint.
Oh no! The game isn’t fun!
I was happy with how it was going, and getting curious about whether anyone would want to play this thing.
So, I put the game onto my phone, and demoed it to some friends. Embarassingly, it required so little player interaction my screen turned off halfway through my demo!
That’s when I realised it wasn’t fun to play.
That boss fight I mentioned earlier had taken up a lot of time! King Rex appears for 10 seconds at the end of a run. He has a big magical shield that rotates around him. You need to tap or click the shield to destroy it. If you don’t do enough damage in time Kai slams into the shield and gets squished. The squish effect was quite satisfying to add into the game, and suprisingly easy!
However, a new player needs to work through the entire upgrade tree before they progress far enough to trigger the battle.
I had put the most engaging part of the game at the very end, and neglected the rest.
That’s bad design!
I only had a week left to sort this out, and there were dozen bugs that needed cleaning up too.
My solution was to add a new type of enemy that you need to tap on. These were King Rex’s magical attacks, sent to slow you down. I took the head off Rex’s model, applied a semi-transparent material and spawned them randomly as the player progresses through the level. They make a sastifying glass-smashing noise when you tap them, and a tooltip tells you to do just that when you first encounter them.
It’s not a perfect answer, but it definitely made the game play more engaging.
With only a few days left, I reworked the background scenery and removed as many bugs as I could. Here’s what the tapable magical dog heads look like:
Then I ran out of time.
Wrapping it up
On the 14th of Novmeber, after a month of development I stopped working on the game. I exported it to WebGL and Android for the last time, cracked open a beer to celebrate and patted myself on the back.
Mid sip of my victory beer, I remembered part of this challenge is actually releasing what I’ve made into the wild….Oh no! That means asking people to play what I’ve made in all its janky glory.
I submitted it to the Google Play Store and put it on this site.
Give it a go if you’re interested! Let me know in the comments or on twitter how you got on, I’d love to know.
I am happy to finally complete a game. I’ve learnt so much. Character design, modelling and animation are difficult, but they’re also really fun. The one month deadline forced me to priotise my time, and work on every aspect of the game. Rather than getting analysis paralysis, or spending weeks tweaking some code, I worked on what needed doing and then shipped a product.
Incidently, I’ve also found some great places to get free sound effects and music. If you’re curious checkout my post on that here.
Until next time,