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.
- The hunter and the hunted need different speeds. I might make a more complicated stamina system in the future, but for now I think I’ll make the hunter 1.5x faster.
- Dots/points feel like an afterthought, even though they’re the most important part of the game. Some ideas:
- Dots should reappear after they are collected, similar to power ups.
- Dots can only be captured if you aren’t the hunter.
- Something needs to happen after a player is captured to prevent them from being tagged multiple times in succession. Some ideas:
- The hunter power is removed from the hunter.
- The hunted player is teleported to a respawn point.
- The hunter player is reset to his initial position.
- The AI freezes if he isn’t the hunter, but no power-ups are collectable.
- The AI needs to recalculate it’s route less frequently…I gotta fix some frame stuttering.
Timer: 8 hours, 30 minutes
I playtested today with a real, live human, and confirmed most of my initial problems. Some additional notes were:
- Speed differences aren’t that important because humans are worse at moving than AI.
- Dots should give speed boosts when collected.
- The defeated player should lose some points that only they can recollect if he revisits his body (dark-souls-style).
- The moment of death should be more clear and exciting.
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:
- Defend: Avoid the other player without worrying about points
- Attack: Mostly ignore points and focus on killing the other player
- Expand: Ignore the other player and collect dots
Next, I’m going to focus on encouraging expansion throught implementing
- Respawning dots
- A game loop where the goal is to be the first to reach a number of points.
- Removing points when a player is killed
- Granting points when a player gets a kill
- Adding juice to point collection (maybe a bunch of +1s, etc.)
Timer: 11 hours
Random idea: what if switching the win condition is a power up that someone can collect?
Timer: 13 hours
