As I said in my last post, I spent this past week in a game jam. I was a little worried since it’s been years since my last, but this one was a huge success! Now, I present:
As I mentioned last time, the theme for this jam was “Earthquake”. I thought it’d be neat to make a game about a city sinking into the earth, and one guy jumping between various falling objects to escape. I didn’t wind up with exactly that, but I got pretty close!
Here’s a link where you can play it, then read on below for a little post-mortem:
What Went Right?
From here on out, I’m going to assume you’ve seen or played the game. This might still be interesting if you haven’t, but I’m not sure if it’ll be easy to follow either.
The Grappling Hook
So! How did we get from jumping off of garbage to a grappling hook? It was sort of a two-step process, one born entirely out of my laziness. I realized early on that standing on and jumping off of falling/pinning physics objects was going to be a Bad Idea, so I thought I could maybe snap the player to them and just click to jump to the next automatically.
It’s around this point that I decided to add a grappling hook, because I needed an excuse to make the player jump in straight lines from object to object. To test the idea out, I set up the hook to just launch the player towards the trash and… actually it was very fun as-is! In the end, I decided to keep the mechanic at that stage because it felt faster and more fluid than what I had originally planned.
One huge benefit for the production process was how early I finished the basic mechanincs. The grappling hook was working on day 1, and pretty much all the other core mechanics were working on day 2. This gave me 5 entire days to test, tweak, polish, and make content (more trash and civilians mainly). I think this is a big part of why the game is so fun and polished-feeling now!
One other thing that I feel like noting here: I think one of the best features of the game is not super-visible, but pretty much everything speeds up a little when it bounces off a wall. Balancing that boost to not feel excessive or break the physics was tough, but I think it genuinely does a lot for the game feel and keeping most objects from clumping up on the sides. The same is true of the dash, by the way–later in the game, a bank shot can take you very far!
What Went Wrong?
Of course, the process wasn’t all rosy. Some things went wrong:
One of my goals during the jam was to keep a consistent work-life balance and get plenty of sleep. At my age pulling all-nighters doesn’t sound as attractive as it did back in college, and I’ve realized that a healthy body is needed to really get good work in. However, despite my best efforts I had some really bad sleep deprivation for much of this jam. It wasn’t for lack of effort either–my mattress pad had worn out, and without a replacement I had a ton of back pain while sleeping on my old mattress. In the end, I was very unproductive during the back half of the jam due to my physical state. In lighter news, my replacement pad has arrived and will be on the bed within the next day or two… this is a lesson for the future, but it won’t be an ongoing problem.
One consistent piece of feedback that’s been reported since the end of the jam is thesound effects being too noisy or frequent. If I had to guess, they’re probably referring to the noise objects make when they hit each other… interestingly, I actually put in a bunch of safeguards to reduce those sounds (objects can’t make a bump noise from the same object twice in a row, plus a cooldown). Clearly, it wasn’t enough though. It’s something I added because it seemed weird to have those collisions make no sound at all, but due to the spawner’s tendency to stick objects together it seems to often be an annoyance. I think if I were to do this over, I’d change the spawning to reduce the amount of clumping. This is probably the “real” fix here, though it wouldn’t be perfect either.
There’s also a game-breaking physics bug hidden around here somewhere. I had the physics engine break on me a couple times during development, and one of the players so far has reported it as well. Sadly, I didn’t have the time or a consistent repro to work out where it comes from :/
Still, only one really notable bug in a physics-driven game like this seems like a good number. I’m not too bothered.
- love.js! Having web support will come in handy for future projects, even if it can be a little annoying to test and debug.
- There is no greater joy on earth than making funny animal noises into a microphone
- It can take time to wrap up all of the screenshots, game page theming, title/icon assets, etc for release. Reserving a day for this is very useful for making a polished presentation.
- No, I still can’t compose music. But thankfully, there are plenty of sexy action chiptunes to be found if you look!
- When designing environment and character assets, keeping skintones in mind would be useful. Figuring out how to have any black characters in this game was tough due to the color palette and background, and keeping that in mind would’ve saved me a couple headaches later in the process.
- Having an infinite “content dump” task–in this case, making it easy to add more civilian & trash sprites–is useful for continuing to improve the game even when you’re bored of more important dev tasks.