5 Lessons Learned Making an Imperfect Game in 24 Hours


Hi.

I’m Calin.

Last weekend, my friend Chad and I participated in the TOJam 2021: Feels Like a Rerun. In less than 24 hours, we made our first game ever, Emotional Eating! It's a quirky 2.5-D puzzle game about finding comfort in food.

The concept for this year's jam was "Once More. With Feeling."

And, baby, we were feeling it!

We had a blast, learned a butt-load, and decided to share our lessons with future game jammers.

Without further ado, here are 5 lessons we learned making a game in 24 hours.

Choose a concept quickly

In a game jam, time is your most valuable (and limited) resource. You need to use it wisely.

We allocated one hour to come up with a game concept and we stuck to the timeline.

We started by jotting down random ideas on a whiteboard. Some of the ideas were too big. Others felt too small — even with limited time. And, others were just... awful.

We needed a simple and compelling idea related to the theme... hmmmm.

If you live in Canada, as we do, you have probably done your fair share of emotional eating during the Coronavirus. Skip the Dishes, anyone?

What if we created a puzzle game about a zombie that needs to emotionally eat to stay alive? That could work, right?

In 38 minutes, we had our initial concept. 

We would program a character, create a grid, and arrange collectibles.

With the seed of an idea, we launched into development. For the next six hours, we mapped out the game's design, UI, mechanics, and assets.

Here’s the initial concept.

Had we spent the entire evening noodling on our concept, we wouldn’t have progressed our project (or completed it!).

That leads me to the second thing we learned: it's much easier to build a game quickly when you use assets.

Use Assets to Save Time

In a game jam, 24 hours will zoom by at warp speed. Save time and make your game more engaging by using prebuilt assets.

Emotional Eating is built on Unity. Before the jam, we researched free (or almost free) assets we could use to speed up production.

Here are a few that made the shortlist.

Low Poly Animated Animal

Stylized Low Poly Squirrel

POLYGON Starter Pack - Low Poly 3D Art by Synty

Robotic Arm

Zombie | LOWPOLY CHARACTER

Ultimately, we decided on the emotional eating concept featuring the zombie pictured above.

We selected this character asset because:

  1. It looks cool!
  2. It has rigged animations.
  3. It has individual body parts (more on this later)

We also used assets for the food and streetlights.

FROOD - Free food and drinks pack

Street Lamps

That’s how we created our game. It was a combination of free or low-cost assets mashed together to create a dynamic world that feels unique.

Without prebuilt assets it would have been impossible, given the timeline and our collective skillset, to complete the game as quickly as we did.

My sincere thanks go out to the asset creators! You rock!

Now, let’s talk about something you will learn the hard way during a game jam.

You need to kill your darlings and focus on an MVG (Minimum Viable Game)

Both Chad and I work in tech. Chad is a programmer, I’m a designer/marketer.

In the tech industry, an MVP (Minimum Viable Product) is an established concept for the development of software. It is the process of developing a version of a program with just enough features to be usable by early users.

We applied the MVP philosophy for building our game.

The game’s functionality was organized into three categories. 

  • Must have (functional game loop)
    • A contained grid-based environment for the character.
    • A character who can move on the grid.
    • Collectibles for increasing the character’s health.
    • A health bar for monitoring the character’s health.
    • A win/lose function
    • A level reload function
    • A start menu/win screen
    • One playable level
  • Should have (game feel)
    • Designed/textured environment
    • +5 collectibles
    • +5 playable level
    • Background music
    • Win/Lose sound effect
    • Collectible sound effect
    • Collectibles UI
  • Nice to have (polish)
    • Post-processing
    • Level load fade
    • Lighting and volumetric fog
    • Win animation particles/shaders
    • Advanced zombie death animations
    • Audio singleton
    • Additional blockers/interactables
    • Directional menu system to clarify controls

The game needed to be playable. Full stop. And, we cut a lot of functionality from the "nice to have" category to meet the deadline.

Ultimately, we could have removed post-processing, the level load fade, street lights, etc., and still output a playable game. And, very few people would have noticed.

The hot tip is to focus on making your game playable. Spend the bulk of your time making a full game loop. If you have extra time (which you won’t) turn your attention to polish.

Seeming small bugs will eat up your time.

Bugs. Bugs. Everywhere I look, I see bugs.

You are going to run into bugs. Soul-crushing, mind-melting bugs.

It’s natural and happens to the best of us.

We focused on our game loop, nailed down the core functionality, and we were still pressed for time to resolve bugs.

For example, if you die in our game, you’ll note that either the “No” or “Yes” sound effects no longer play at the end of a scene. That’s not supposed to happen.

And, for the life of us, we couldn’t figure out why.

Short on time, and out of ideas, we settled on the solution of removing the sound effect entirely when a null reference is thrown. If we had a week to rebuild the game logic, we could resolve the issue. But, that’s not a reality in a game jam.

Long story short, you will encounter bugs. But, it’s better to publish an imperfect game than no game at all.

Expect issues when publishing (especially WebGL)

We took a risk in publishing our game as a WebGL. Nothing ventured, nothing gained.

It may sound silly, but I wanted my parents to play it and there is no shot in sh*t that they would be able to download, unpackage, and install our game. My dad once wrote me an email with the entire message in the subject line. 

It had to be playable in a browser. It had to be WebGL.

The problem, of course, is that WebGL is a fickle mistress. Like a praying mantis that devious its mate, it threatened to derail our entire project right as we crossed the finish line.

Exporting the game resulted in some serious weirdness. For starters, the game’s icon became blurry/pixelated. Check it out.

It took me two hours of Googling to solve the problem.

Next, we discovered that the volumetric lighting plugin, Aura 2, used to illuminate our scene and give it a next-level creepy vibe… ya, it doesn’t work for WebGL.

An hour later I had rebuilt the scene’s lighting, as best I could, and we were back in business.

My suggestion for newby game-jammers? Don’t wait until the last minute to publish and test your project. If you do, you will be sure to encounter errors, and not have the time or inclination to fix them.

What’s next?

Game development has been a life-changing experience for me. This may sound like hyperbole. It’s not. I really love it.

I hope these tips will help you to build your first game. Because, even with bugs, glitches, and non-stop issues, making a game is an incredibly rewarding experience.

See you at the next game jam!

Calin

P.S. 

If you read this far, cool, you’re my kind of people. And, my kind of people enjoy playing my kind of games.

Check out Emotional Eating on itch today. Stay in touch by signing up for our newsletter.

Leave a comment

Log in with itch.io to leave a comment.