0

Back

What If You Chose the Next Piece? Designing a Player-versus-Player Tetris

Play it.

The 1v1-T logo: "Challenge a friend, play free", www.1v1-t.com

Introduction

What is the best game in history? For me, the answer comes easily: Tetris. It has no story and almost no graphics. Only a handful of rules and one obnoxious melody. But, like a cellular automata, a complex landscape emerges from that simple setup. Tetris is parsimonious entertainment: the simplest possible answer to what a game can be and, yet, one that has not been exhausted in almost five decades.

I have played Tetris for half of my life. Sometimes, I even play well! But, for the past couple of years, every time I start a match and begin deciding where to put each piece, I have asked myself the same question: what if I could choose which piece comes next?

This new game started as an answer to that question. What if you could choose the next piece your opponent is going to play with? What if you played the role of the computer? A player-versus-player Tetris.

The basic setup

Player A plays good-old Tetris. Their objective is clear: score as many points as possible by clearing lines. In doing so, they make the game last longer, which is the opposite of what Player B wants.

Player B is what, in good-old Tetris, would be the computer. They choose the pieces Player A has to play with. Their objective is to end the game as fast as possible and, in doing so, keep A's score low.

A match has two rounds. After the first round, the players swap roles, so each of them plays as A once and as B once. Your final score is your A-score plus your B-score, and the higher total wins.

That was the initial setup of the project. But a game is only as good as the strategies it leaves open, and this setup left a very bad one open. Every mechanic below is a patch on an exploit. Each one follows the same pattern: B (or A) finds a dominant strategy, the strategy breaks the game, a new mechanic closes it, and a new strategy appears.

Two objectives guided all these decisions:

  • Balance. Neither role should have a strategy that wins by default. The main lever is piece variety: if B can choose freely, with no reason to vary and no way for A to fight back, B's strategy converges to spamming the same piece (probably an S or a Z) until the game ends quickly.

  • Fun. This one is harder, and it's mostly about involvement and agency. B's side is boring if they are not involved (v.g.: if all they do is click pieces), and A's side is frustrating if they have low agency (v.g.: can do nothing to disrupt B's strategy).

A map from the two design goals down to the mechanics. Balance is made of piece variety: B can't grief. Fun is made of involvement, B stays on the board, and agency, A can fight back. Cooldowns, bounty and the random piece serve piece variety; the random piece and line-clear effects serve involvement; line-clear effects serve agency.
Figure 1The two goals, what each is made of, and which mechanic serves which.

Mechanics

Cooldowns (balance)

The pieces are grouped into five families: I, O and T each stand alone, while S/Z and J/L are paired, because each pair is a mirror image of the same shape. Player B can't choose from the same family twice in a row. This is the simplest defense against B's obvious strategy of spamming one piece forever.

Yet, spamming the same two pieces is almost as bad. One fix would be stricter cooldowns (v.g.: B can't choose a family again for two turns). But what makes a game elegant is relying on trade-offs instead of prohibitions. So rather than forbidding more, we made variety pay.

Bounty (balance)

Every time a piece chosen by B is delivered to A, B earns bounty. How much depends on the piece's freshness: how rarely its family has appeared among the last window of pieces A received. A family that hasn't appeared at all pays full value; one that appeared once pays half; twice, a third; and so on (v.g.: the more B repeats a family, the less each repetition pays).

From here emerges an elegant trade-off: B can make A lose quickly by alternating the same two families, but they leave the bounty on the table.

An animated bar chart of what B earns for sending each of the seven pieces, drawn as their shapes. All start at 100%. B sends ten pieces: a straight line, a T and an L, then S and Z shapes alternating with the square. Each piece sent drops into a strip of the last five with what it paid, and the bars for its kind shrink. By the end the S and Z shapes pay 25% and the square 33%, while the pieces B stopped sending are back at 100%.
Figure 2What each piece is worth to B, repriced after every send. A piece pays less the more of its kind sits in the last five.

But, as you may have noticed, the first version of this idea has a hole. B's bounty is a running total, so B is incentivized to keep the game going forever and keep accumulating points. Worse, the length of the game is controlled by A, not B. A weaker Player A died sooner, which handed their B fewer bounty points, and in our simulations the total ended up rewarding the weaker stacker.

The fix was to turn the bounty into a rate: B's round score is the average freshness of the pieces they delivered, multiplied by a speed bonus that grows the faster A tops out. Dragging the game out no longer earns anything; killing A quickly with varied pieces earns the most. Now that is an elegant trade-off.

Random piece (fun and balance)

A always sees the next two pieces coming, and B can have at most one choice waiting behind them. If B hasn't chosen by the time A locks their current piece, a random piece fills the queue instead. A gets a piece free of B's strategy, and B loses the bounty they could have earned, because bounty is only paid when B's piece is delivered.

This pushes A to play fast and keeps B involved: B can't queue up a plan in advance; they have to keep deciding, against the current board, at A's pace.

Line-clear effects (mostly fun)

When A clears lines, B's piece selector is scrambled for a while: 2 seconds for a single, 3.5 for a double, 5 for a triple and 6.5 for a Tetris. Since B is already under pressure to choose before the random piece kicks in, a scramble forces a choice between picking a suboptimal piece and risking not picking at all. This is also what keeps B from "boringly selecting pieces": the scramble and the time pressure mean B has to pay close attention to the board the whole round.

Big clears also reward A directly. A triple drops a single cube into A's queue: a one-cell piece, the most flexible piece in the game. A Tetris goes further: it replaces the upcoming queue with four cubes in a row and throws away B's pending choice without paying for it. So A faces their own trade-off: clear a few lines safely, or build the stack up and risk it for a triple or a Tetris. (This mechanic is thanks to my friend Ale.)

Figure 3A Tetris: four cubes for A, and B's pick confiscated and selector scrambled. Rendered from the game's own engine and queue.

Conclusion

Tetris cannot be improved. That is what I believe. Because Tetris' small set of rules architected a balance of tradeoffs that would not benefit from more complexity. Adding more rules or features can be detrimental. Elegance is few things doing more and doing it better than many things.

1v1-T is not an attempt to improve Tetris, since I do not believe that is possible. It is an experiment to turn Tetris into an adversarial game, while keeping Tetris' most beautiful feature: Parsimony. I explained the game in about 1,000 words and that testifies that this is not a complex system. But, I trust complexity can emerge from it, even if its setting is far from being as elegant as "good-old" Tetris' is.

F.V., 2026