Reaxxion Devlog #1: Symmetric Isn't Fair
I rebuilt an arcade game from my childhood on a hex board, with mirror-image boards so neither side had an edge. The first player still won more often, and the fix came from a game I've played since I was a teenager.
I spent a lot of my childhood in bowling alleys and pool halls. The adults in my family bowled, played cards, or shot pool, and I lived in the arcade in the back. One of the games I kept coming back to was Ataxx: a board of squares, two colors, and pieces that either copy themselves into the next space or jump two spaces away, flipping every enemy piece they land next to.
I also remember a hex version (called Hexxagon, I think), and I'd swear I played it on an arcade cabinet with some kind of alien theme. I can't find a picture of that cabinet anywhere, so my memory might be doing some creative work there. Either way, the hex board is the one that stuck with me, and it's the one I wanted to build.
So I did.
Reaxxion is a solo 3D take on hex Ataxx that runs in your browser, with computer opponents at five levels of difficulty. It's the game I've had the most fun building, because I get to play it again as an adult and finally understand how it works.
The fairness question
For context, I've played a game called "Go" since my early teens. Go is thousands of years old, and it still took until the twentieth century for players to formally settle what they'd suspected for a long time: whoever moves first has a real advantage. The solution that emerged is called Komi: it's a handful of points given to the second player at the end of the game to even things out.
So I went in knowing that "first move wins more" is a thing that happens, even in a game as ancient and balanced as Go.
There was no moment where Reaxxion felt specifically lopsided. I just know that a good game gives both players an equal shot at winning, and I wanted proof that mine did too.
What I didn't expect was how big the edge would be on my boards.
Every board in Reaxxion is built as a perfect mirror image, so neither side starts with more room, more pieces, or a better position. I had the computer play against itself for a thousand games per board, each from a different random opening, and the first player still won between 52 and 60 percent of the time on almost every board design.
As it turns out, symmetric doesn't automatically mean fair.
A mirror-image board gives both players the same position. It doesn't give them the same tempo, and in a game where every move can flip your opponent's pieces, being a move ahead compounds quickly.
Borrowing from Go
As you might have guessed, the fix came straight out of Go.
To counter the first-mover advantage, Reaxxion does two things:
- The game alternates who moves first, so over a session nobody owns the advantage.
- The second player gets komi: a small bonus added to their count at the end of the game.
Reaxxion's komi is measured per board, because a tight board and an open board don't hand the first player the same edge. Wiping out your opponent still wins outright.
Every arena now sits between 45 and 55 percent for whoever moves first, measured the same way, and the random boards only come from a pool that's been thoroughly measured too. The komi shows up in the game where you can see it, on the score and at the final count, so nobody wonders why the numbers don't match the pieces on the board.
A few boards didn't make it, and cutting them was easy. The only one I'd really played was the default board. The rest were sketches I'd put in to remind myself that I wanted more boards someday, so replacing them cost essentially nothing.
Water on a car window
If you play it, you'll notice the pieces aren't solid tokens. They're blobs of something like ferrofluid, one smooth mass that shifts and merges as it moves. That personality comes from long family road trips when I was a kid, watching raindrops on the car window find each other and swallow each other as we drove. I always thought that was fun to watch.
I wanted the captures to have some character, too. When a piece gets taken, it shouldn't be a pointless animation. The attacker reaches out, and the piece being captured resists, then gives in. It doesn't want this assimilation to happen to it.
Getting that look right has been the hardest part of the whole build, mostly because it has to stay fast on phones. Blobs like these are drawn with a technique called marching cubes, which is expensive. At one point I screwed up and phones started to struggle severely because the renderer was reading the number of vertices in each blob as the number of copies of the blob to draw. Not great.
Every blob was being drawn thousands of times.
Ooops.
Who does what
The game is as much mine as an inspired-by creation can be: the rules, the gameplay design, how the boards and the difficulty work, and the architecture underneath it. The code-writing has been predominantly handled by my AI assistant. I direct it, I review what it builds, and I decide what's right. The fairness work is a good example of what that means in practice: I asked whether the boards were fair, the AI ran the thousand-game measurements, and I chose the solution from my lifelong experience with Go.
What's next
A Daily board is in the works, where everyone gets the same board on the same day. So are achievements. Longer term, I'd like to put Reaxxion on Steam. Releasing something on a major platform feels like a necessary step for me as a game maker. Whether my first release will be Reaxxion or 6DoF Academy remains to be seen.
Reaxxion is certainly the simpler project.