Robot Factory backstory

March 22, 2024 | Work: 2024-04

When my son was very young, we would play board games together. I think we started when he was 2. It was the typical games for kids: Candyland, Snakes & Ladders, etc. We would always have fun playing because I enjoy playign with him, but as a try-hard board-game enthusiast and budding game designer… these games were pretty awful.

For example, in Candyland, movement is performed through drawing a card and moving to the next space with that color. Sometimes there are named-location jumps where you “teleport”, and some of the colors have two colors so you get to move very far. There are also a few “shortcuts” on the board as well. But there’s no player agency.

  1. What is the color on the card? (Identification, Recall)
  2. From where my pawn is right now, where would this color move me to? (Simple addition)

I realized that if you shuffle the deck of cards and each player draws the top card, the game’s outcome is predetermined and the game becomes a process of revealing who won the game when the deck was shuffled.

You could leave all the cards in a facedown pile, strewn about, and then pick your favorite. This at least gives the game a random outcome, but it’s entirely stochastic – there’s still no strategy, nothing to learn. You reach the end and, whether you won or lost, can only accept that luck was on your side, or not.

These aren’t games, they are exercises. Success in this game is really the process of reflecting on “how well did I take turns”, “how well did I accept an outcome that I don’t like”, “how did I handle a victory that was purely by being lucky?” The game is a medium for teaching a child how to behave with civility.

We can do better.

Changing the game

Mark I

We started by doing variant rules. For Candyland, we would do things like changing the card-drawing rule to one where you draw two card, instead of one, and choose the one you like and discard the other. This generally also makes the game go a little faster, but it lets the child make a very simple calculus and make a strategic choice:

  1. What is the color on the card?
  2. From where my pawn is right now, where would this color move me to?
  3. How does this compare to my other choice? (Qualitative comparison)
  4. Which selection do I like better? (Tactical choice)

Even with just this simple change, these are now 2 additional ways that combine the player’s desires with the mechanisms of the game. Most importantly, it empowers the players to have a preference period!

My son enjoyed this. It was neat to see him spend a few seconds considering which would be the better card to choose. I would also ask him, on my turn, which card I should choose.

I think we can take this further.

Mark II

Now, instead of just choosing 1 of two cards and discarding the other one, you draw 2, choose 1 for yoruself and 1 to give to the other player. Then they do the same. This incorporates the same steps from before but now also:

  1. What is the color on the cards?
  2. From where my pawn is right now, where would these color move me to?
  3. How do these choice compare?
  4. Where would the cards move my opponent to? (Simple calculation)
  5. How do those choices compare? (Qualitative comparison)
  6. Which card do I want to choose for myself, given that my opponent would get the other? (Tactical choice)

This becomes a lot more interesting because sometimes the card that might be worse for you might be really good for your opponent!

He enjoyed this variant as well, and seemed to pick up the nuances of considering the choices weren’t made in a vacuum.

Drafting

I had been toying around with ideas to use a draft mechanic called a “Winchester Draft”; I had read about in a Magic: the Gathering article. It might be easier to explain why it interested me by first discussing other draft formats.

Basic Draft

The most basic concept of “drafting”, game agnostic, is that there is a common pool of choices, and each player takes turns choosing from that pool until the pool is exhausted. If you’ve ever heard of “NFL Draft” (where they draft players), then you are already familiar with this concept. One key imbalancing thing about a basic draft is that it greatly benefits players that get to choose first, so there is a distinct first-mover advantage. Larger pools make going first slightly less advantageous but only because it’s more likely to have better choices that everyone can choose from. The more the distribution of value is uneven, the more the first player benefits.

Example: given a pool of these numbers: 10, 8, 5, 5, 3, 3, 3, 2, 2, 1, 1, 0, and an objective to have big numbers, the draft among 4 players would look like:

Round Player Selection
1 A 10
1 B 8
1 C 5
1 D 5
2 A 3
2 B 3
2 C 3
2 D 2
3 A 2
3 B 1
3 C 1
3 D 0

The final values look like:

Player Choices
A 10, 3, 2
B 8, 3, 1
C 5, 3, 1
D 5, 2, 0

Players B and C aren’t too far off in composition, but player A is strictly better than player D.

Snake Draft

The idea of a “snake draft” tries to mitigate that disparity somewhat. Instead of going in a continuous loop, you go around the table once, and then reverse direction.

Round Player Selection
1 A 10
1 B 8
1 C 5
1 D 5
2 D 3
2 C 3
2 B 3
2 A 2
3 A 2
3 B 1
3 C 1
3 D 0

The final values look like:

Player Choices
A 10, 2, 2
B 8, 3, 1
C 5, 3, 1
D 5, 3, 0

Slightly better, but player A still getting to go first was still a distinct advantage.

Magic: the Gathering limited (standard) draft

In a standard Magic: the Gathering draft, each of 4 players is given a pack of 16 cards, they privately choose one, and everyone passes either to the left or to the right. This is repeated until the piles are exhausted and you have, hopefully, your best selection of the 64 possible cards. If you have a good memory, you might be able to guess what strategies the other players are developing, based on what cards are missing, though you won’t know for certain which player is which.

Because each pack has a consistent rarity distribution, and because everyone starts with a fresh pack, the distribution will begin a bit more fairly:

Assuming a table arrangement like this:

A -> B
^    v
D <- C
Round Player Considering Selection
1 A 10, 5, 2 10
1 B 8, 8, 1 8
1 C 10, 4, 3 10
1 D 8, 5, 4 8
2 A 5, 4 5
2 B 5, 2 5
2 C 8, 1 8
2 D 4, 3 4
3 A 4 4
3 B 2 2
3 C 1 1
3 D 3 3

The final values look like:

Player Choices
A 10, 5, 4
B 8, 5, 2
C 10, 8, 1
D 8, 8, 3

Considerably better distribution. It’s not quite Rock/Paper/Scissors level of balance, but each player would likely feel like they would have a fighting chance.

Rochester Draft

There is also a format called a “Rochester draft”. This version involves more strategic thinking. The setup is to take the pack of 16 cards and deal all 16 face up into a common area. Each player takes turns choosing one card, openly. The difference here is that now your choices might be affected by what you know your opponent’s are choosing, and equally as importantly: if you make choice that are obviously leaning toward a particular strategy, your opponents will likely pick up on that.

The example up to now won’t quite illustrate why this is interesting as much, but only because a game where “big is good” is one-dimensional. Let’s instead imagine we’re drafting choices for “Rock” (🪨), “Paper” (📄), “Scissors” (✂️), and the array looks like this: 🪨, 🪨, 🪨, 🪨, 🪨, 📄, 📄, 📄, 📄, ✂️, ✂️, ✂️. In the rules of this game, when you play it you only have the choices you had drafted, but you can secretly choose the order you play them. Being aware of the choices of other players now becomes very important!

The table would then look like this:

🪨 🪨 🪨 🪨 🪨 📄 📄 📄 📄 ✂️ ✂️ ✂️

At each stage in the initial drafting choices, the player needs to consider:

  1. What choice are available to me
  2. What choices have my opponents made
  3. What choices have I already made

And then find their optimum interection of those three.

Round Remaining on Board Player Player Selection
1 🪨 🪨 🪨 🪨 🪨 📄 📄 📄 📄 ✂️ ✂️ ✂️ A ✂️
1 🪨 🪨 🪨 🪨 🪨 📄 📄 📄 📄 ✂️ ✂️ B 📄
1 🪨 🪨 🪨 🪨 🪨 📄 📄 📄 ✂️ ✂️ C 📄
1 🪨 🪨 🪨 🪨 🪨 📄 📄 ✂️ ✂️ D 📄
2 🪨 🪨 🪨 🪨 🪨 📄 ✂️ ✂️ A ✂️
2 🪨 🪨 🪨 🪨 🪨 📄 ✂️ B ✂️
2 🪨 🪨 🪨 🪨 🪨 📄 C 📄
2 🪨 🪨 🪨 🪨 🪨 D 🪨
3 🪨 🪨 🪨 🪨 A 🪨
3 🪨 🪨 🪨 B 🪨
3 🪨 🪨 C 🪨
3 🪨 D 🪨

Final selections:

Player choices available
A ✂️ ✂️ 🪨
B 📄 ✂️ 🪨
C 📄 📄 🪨
D 📄 🪨 🪨

Which player would you want to be, in this case? More importantly, if you were going up against any one of these players, what order would you put your choices? What if you had to pre-determine the order and lock it in before revealing any?

Winchester Draft

Which brings us to the Winchester Draft, there is a (possibly lesser known?) format called “Winchester draft”. Instead of each card being a solitary choice among a pool of choices, you deal to two piles. You incrementally add a card to both piles and then take all the cards in one of the piles. The idea is that a bomb (very good) card will almost always be taken by itself, but if you put enough crappy cards into a pile, that pile starts to look more attractive.

I like this a lot.

Going back to the number array for this one, but randomized this time:

a = [10, 8, 5, 5, 3, 3, 3, 2, 2, 1, 1, 0]
=> [10, 8, 5, 5, 3, 3, 3, 2, 2, 1, 1, 0]
a.shuffle
=> [3, 0, 3, 5, 8, 5, 2, 1, 3, 2, 10, 1]
> final = a + a.shuffle
=> [3, 0, 3, 5, 8, 5, 2, 1, 3, 2, 10, 1, 1, 3, 5, 3, 10, 8, 2, 3, 0, 2, 5, 1]
> final.each_slice(2).collect.to_a
=> [[3, 0], [3, 5], [8, 5], [2, 1], [3, 2], [10, 1], [1, 3], [5, 3], [10, 8], [2, 3], [0, 2], [5, 1]]

So at each step we’re going to deal out two numbers, and the player will make their choice of the best pile available (the new cards that are added are bolded):

Round Player Pile 1 Pile 2 Selection
1 A 3 0 Pile 1: 3
1 B 3 0, 5 Pile 2: 0, 5
1 C 3, 8 5 Pile 1: 3, 8
1 D 2 5, 1 Pile 2: 5, 1
2 A 2, 3 2 Pile 1: 2, 3
2 B 10 2, 1 Pile 1: 10
2 C 1 2, 1, 3 Pile 2: 2, 1, 3
2 D 1, 5 3 Pile 1: 1, 5
3 A 10 3, 8 Pile 1: 10
3 B 2 3, 8, 3 Pile 2: 3,8,3
3 C 2, 0 2 Pile 2: 2
3 D 2, 0, 5 1 Pile 1: 2, 0, 5

Final selections:

Player Pool Best 3 choices
A 3, 2, 3, 10 10, 3, 3
B 0, 5, 10, 3, 8, 3 10, 8, 5
C 3, 8, 2, 1, 3, 2 8, 3, 3
D 5, 1, 1, 5, 0, 5 5, 5, 5

Better than simple draft, certainly. One thing that’s interesting is that the person with the lowest high-card (player D) would still beat players A and C if they compared best of 3.

The Robot Game

We had a thing with robots. Like the “beep-boop-beep-boop” archetypal robot idiom, not specifically the field of robotics. Think 1950s Outer Limits aesthetic. My son’s mom made a vase in her pottery class and I drew some silly line-art robots that she decorated around the rim. She got me some retro-cinematic robot figurines for xmas one year. It was a thing. I am pretty sure she suggested something like “you should make a game with robots.”

The working title of the game was “Robot Factory”.

I don’t have the first edition of the rules handy, unfortunately. It’s either lost in a filing cabinet or lost entirely. But you I do have an early photo from early December 2011:

Gameplay: December 2011

I know I wanted the game to involve tricks that were sets of three. I think in the early edition it allowed for combining them in a mix-and-match, allowing the player to make the best possible combination. It also incorporated some kind of Winchester draft, though I forget how many piles the first iterations used.

The idea of a Winchester draft felt like a closer thematic fit because it suggested this notion of gathering a pile of parts off the ground and taking them to your workbench to tinker with. In the rules text, I described the piles as being the output from conveyor belts that drop parts onto the factory floor. This was thematically reinforced by the “deal a card onto each of three piles”, suggesting an automatic process feeding parts into the playable area.

Early Prototype

A couple weeks after that, I sketched out some prototype in GIMP using the trackpad on my laptop (seriously) and came up with these (among others):

Copper Robot Gold Robot
illustration illutration

And these were then cut up and laid on on cards, and I had them printed through The Game Crafter. I gave the very first deck to my son for xmas that year (2011). He would have been 4 and a half at the time.

Early prototype: December 2011

Fundamental rules

The rules that I zeroed in on worked like this:

There were some additional cards I added (will write about those another time), but that was the core basis of the game. My son, who admittedly is a smart kid, picked it up very quickly. It’s been tested with people of all ages and the rules, although different than conventional card games, are easily explainable in 3-5 minutes.

Player Agency

One of my favorite video game designers is Sid Meier, who designed the original Civilization (and its first sequel, Civilization II), Railroad Tycoon, Pirates!, and many others games. There is a pretty famous quote by him that I’ve always held in high regard:

A game is a series of interesting choices.

This is where Candyland fell short, for me. Adding the ability for a player to choose their card is a choice, but giving the card-not-taken to their opponent makes it interesting.

A simple draft is a choice, but getting to see what your opponents choose makes it interesting.

The Robot game prioritizes player choice, but balances it with some stochastic elements – the player can’t control what cards are dealt, but they can choose which they like. The interactive elements (to be discussed later) allow for interesting choices to be made.

When we get to make choices, as players, it gives us agency to affect (and effect!) the outcomes we experience. We feel more determinism, more engaged with the mechanisms of the game. When we win, we can feel good about our victory because we have some ownership of the path we took to get there. When we lose, we can look back at the choices we made and try to learn from them so that we can do better next time.

Player agency is what separates games from simulations or demonstrations. There is certainly interesting creative space to explore around the idea of “fate” and what we experience from that – but I would argue it’s far more interesting when we get to do things the hand we’re dealt.