How do I design a game from scratch?

Start with the core loop.
Published July 17th, 2020
Jason Tu

After you've made your first Pong / Breakout / Snake clone, what do you make next?

You see these incredibly intricate games on the PICO-8 BBS:

awesome PICO-8 carts

And wonder, "How do I get there? How do I understand complex game design ideas like the pros do?"

"How do I break down my awesome game idea into concrete tasks, so that I can actually make it?"

Once you've gotten a grasp on coding basics, complement your budding development skills with design skills.

Master the concept of the core loop to take your game dev to the next level.

Eager to learn more? Let's apply the core loop concept to a sports game.

1. Identify the core loop

Take a look at Pico Tennis, by Paranoid Cactus:

Pico Tennis

It's a PICO-8 implementation of tennis, and it's really good!

You can play it on mobile through the BBS. I'll give you a few minutes to check it out:

Play Pico Tennis here

Back? Great! Back to core loops.

Maybe it's obvious, but you might have noticed a looping structure to your interactions with the game:

pico tennis loop

The player serves. Then,

The opponent returns. The player returns.

The opponent returns. The player returns.

Ad infinitum. Until either the player or opponent breaks the loop, because they failed to return the ball.

Tennis folks call this a rally, but for us, this repeating structure is the game's core loop. It's exactly what we were looking for.

A core loop is the game's essential activity. Every sport has one, and every game has one:

  • Baseball: a pitcher pitches a ball; a batter hits the ball, or misses.
  • Football: a quarterback receives the ball, and makes a play.

Games have larger loops of course! In baseball, runners run to bases around a diamond. There are innings. There are game series.

But we seek the smallest, tightest loop of the game. Such that if you take this loop away, the game won't work.

Can you find a game that doesn't have a core loop? Heck, one can argue that visual novels – which are heavily story-based – have a core loop of dialogue navigation.

What about a game about boxing? The core loop could look like:

  1. A boxer throws a punch.
  2. An opponent evades or blocks the punch, or throws a punch back.

From that core idea, we can scope our project.

2. Define project milestones

When game developers say to build on a strong core, they refer to core loops.

Wanna know why?

Once you've identified your game's core loop, the path forward is clear:

  1. 🧭 The Goal. Do you want to tell a story? Express a feeling? Fulfill a game jam prompt? Make a game for a certain demographic?
  2. 🍏 The Core Loop. What's the essential activity that defines your game?
  3. 👩 The First Playable. Get stuff moving on screen ASAP. Code up your core loop so that your mom can play it.
  4. 🥞 The Horizontal Slice. Full gameplay. All game mechanics finalized, including progression and leveling mechanics.
  5. 🍰 The Vertical Slice. Full user experience with all game states. Includes menus, and win-lose conditions.
  6. 💅 Polish. Juice up your feedback. Add more content.
  7. 🎂 The Full Cake. The final game.

Oh, and if you're using PICO-8, you might need to optimize tokens in between steps. 😛

These milestones will guide us through the rest of the tutorial series, so keep it in mind!

3. Design your game loop's length

I think a good game is one where the total player time far exceeds the development time.

Why? Because players can replay your game over and over if it's genuinely fun. On the other hand, you only had to make the game once.

You get a lot more bang for your buck.

Part of that comes from the length of the higher-level game loop.

If you recall Pico Tennis, the essential activity is hitting the ball back and forth. But the higher-level game loop is the rally.

And in Pico Tennis, a rally lasts maybe a minute. This is important!

If you're designing for busy people who play games in pockets of time, maybe you want minute-long game loops. So players can play several rounds within the span of a coffee break.

(An interesting take: Jan Willem Nijman's Minit has game length in its name. Its game loop lasts exactly 60 seconds.)

Core loops: a game dev's metaphor for life

"Man, that's deep. Can I get some dog treats now?"

– Paraphrasing my dog, as she stares intently into my soul.

Once you understand the idea of a core loop, you start to see them everywhere.

Take the game of life.

Not Conway's Game of Life! But actual day-to-day life.

The core loop of life is a day. And within those iterations lies a life story.

(From now on, maybe you'll think twice before creating a recurring event in Google Calendar.)

That's what we're aiming for. With a game's core loop, we tell a story.

What story do you want to tell?


🏃‍♀️ Exercise

Try it!

Head over to the PICO-8 BBS. (The link below opens a new tab, which you can play on mobile.)

Open PICO-8 BBS in new tab

Choose a PICO-8 cart that you like, and give it a play.

What's that PICO-8 cart's core loop? In the comments below, feel free to tell me the game you played, and what you think of the game's core loop.

Did you like this post?

Become a better game developer, and sign up to receive an email newsletter when a new post is published: