The Hunter and the Hunted

It’s that time of year: Game Maker Toolkit’s 2023 Game Jam, with the annual theme of “Roles Reversed.” I was on vacation during the actual event, but I’m still going to participate. However, instead of doing the jam in 48 hours over 2 days, I’m giving myself 30 stopwatch-enforced hours to make the game and write this blog, but without any consecutive constraints (ideally I’ll be done in less than like…2 weeks).

This is the log of what happens over that time period.

Timer: 1 hour, 48 minutes

I am building a game called the “The Hunter and the Hunted,” and it’s a 1v1 game of tag, where the players flip roles whenever a pickup is eaten (similar to pacman). When a player is tagged, they are sent to the center of the map, and the dots are reset. The game ends when a player is tagged for the third time, but the WINNER is the person with the most points. Players can earn 1 point for every dot they eat when they are the runner, and they can earn 10 points for catching the player. These numbers will definitely need to be balanced, but that’s a problem for later.

Here’s what I have so far. Players 1 and 2 start at the top of the map and race down for the first hunter pickup. Once both players are in their little rooms, I’m imagining a countdown (like a horse race), then doors into the main maze will open and the hunt will begin.

Movement is completed, walls work, dots give points, and there is a concept of “the hunter”. The players cannot interact yet.

Next step: game loop.

Timer: 3 hours, 15 minutes

The game loop is done…kind of. There’s a game start screen, and it leads to a game scene. When one player becomes hunter and touches the other 3 times, the scene switches to the game over scene and displays the name of the most recent winner.


Okay. Day 2. The first thing I want to do is redesign the map. The original one had a linear path that each player would race down to enter the maze, but this was designed to force one of the players to start the game as the hunter. I think I want both players to start powerless, and let them decide when they wan to power up. This will also make the camera work much simpler. Also, I’m going to work on the UI for the game loop information (kill count & points). Let’s do it.

Timer: 4 hours, 45 minutes

I simplified the map and whipped up some score bars. They’re dynamic, so they resize as one player gains ground over the other. I think better visibility into who’s winning will help players strategize.

Next, the power ups need a respawn timer. Collecting them currently destroys them, so the game kinda breaks once they’re all gone.

Timer: 5 hours, 40 minutes

Rechargeable pickups done! I think the actual recharge time will be closer to 15 seconds, so this gif is just for illustrative purposes.

The next step is definitely playtesting. Unfortunately, I don’t have any friends at my immediate disposal, so I’m gunna take a stab at building an AI opponent. Time to relearn A-star pathfinding.

Timer: 7 hours, 20 minutes

Pathfinding done! At this point, I can manually set a target object, and the AI opponent will calculate a path and follow it.

This isn’t enough to start playing though, as the opponent has no idea what to target. Next step will be implementing a basic state machine for offensive and defensive strategy. The simplest version is probably:

Am I the hunter?
Yes: seek the player.
No: seek the closest power up.

Timer: 8 hours

Sweet! Now the game is technically playable:

The first test revealed a few obvious changes that need to be addressed.

Timer: 8 hours, 30 minutes

I playtested today with a real, live human, and confirmed most of my initial problems. Some additional notes were:

Sitting here thinking, I want to make the game themed like jelly bubbles, and the hunter is a flaming ball of tacks.

I’m going to start on the game-loop and game-feel problems, and save the AI tasks for later.

Timer: 10 hours

Just finished these improvements:

  • Players animate back to their spawn point when killed.
  • Dots give a 1 second speed boost of 1.5x speed, and power ups give a 3 second speed boost of 2x speed.
  • To make them more animated, players are now rendered using particle systems and emit smoke as they move.

Timer: 10 hours, 20 minutes

After more playtesting, the points system still seemed too abstract. There were also many moments of puppy guarding, or waiting for one player to get the power up then stealing it from them as soon as they got it.

It seems like there are 3 actions a player can take:

  1. Defend: Avoid the other player without worrying about points
  2. Attack: Mostly ignore points and focus on killing the other player
  3. Expand: Ignore the other player and collect dots

Next, I’m going to focus on encouraging expansion throught implementing

Timer: 11 hours

Random idea: what if switching the win condition is a power up that someone can collect?

Timer: 13 hours

Leave a comment