Taflarium

Devlog

Development updates

Short updates on what we built, what we shelved and what we dropped.

Diodos Ghost is a tower defence where you move the path

A cyberpunk city grid, the ghost of the engineer who built it, and a first playtest that sent us back for three new tools.

Our next game is a tower defence for Android, and it breaks the genre's usual rule: the path is not fixed. The board is a grid of circuit tiles, and the enemy takes the shortest connected route to the core. Turn a tile and the route changes.

The catch is that power runs along the same lines. A turret only fires while its socket connects back to the core, so the turn that makes the enemy walk further can also leave one of your own turrets dark.

The story sits behind that. A city merged its power and data into one self-routing grid called Diodos, and its architect, Wren, died at the switch-on. Her mind stayed in the current. The company that owns the grid wants her deleted. You are the operator she recruits, and each district you hold gives her back a piece of the night it happened.

We built the grey box first: shapes only, one district, one turret and one enemy. Before anyone played it we measured it. A scripted player who never turns a circuit tile loses the first district, and one who does holds it without a scratch.

Then the first playtest found sockets that could not be reached. A search of every socket confirmed two were cut off for good on our test grid, and others took most of the battery to reach. Turns now go either way, a tile can be reshaped, and a cheap relay carries power to a socket the grid cannot.

It is an early prototype, with placeholder shapes and no testers yet. There is more on the new Diodos Ghost page.

In the prototype

  • Turning and sliding tiles, with the new route shown first
  • Power, capacity and the battery
  • The pulse turret and the drone
  • Reshaping tiles and the relay
  • Wren's lesson and her lines

Coming later

  • Three more turrets and four more enemies
  • Eight districts and Wren's memories
  • Final art and music

Ruled out

  • Walling the enemy in: no turn, theirs or yours, may leave them without a route to the core
  • Sliding the core's own row or column

Dohyō has had five updates in closed testing, and testers asked for four of them

A Close button, finger scrolling, a readable Wildwood, visible spent pieces and a new Music screen.

Dohyō has been in closed testing on Google Play since early September. It has gone from 1.0.1 to 1.0.6 since then, and most of the changes came straight from testers' reports.

1.0.2 added a Close button to the battle result, which used to sit over the board and hide a piece's stats. 1.0.3 fixed scrolling by finger: lists only scrolled with a mouse wheel, so the custom roster offered a choice of two pieces. The worst case was the language picker, the first screen a new player sees.

1.0.4 made the Wildwood board readable. Its two ring colours were almost identical, so the whole board looked like one dark shape. 1.0.5 made spent pieces visible again, fixed placed pieces being drawn back in your hand, and stopped the Yokozuna, the strongest opponent, rushing the centre on round one. That fix took three attempts.

1.0.6 replaced a twelve-row Music screen with four controls: seven styles, one mood, how much repeats, and a three-word soundtrack code you can share. The styles run from Rock and Jazz to a Tsugaru-jamisen played on a shamisen.

One tester idea was dropped. A pass rule for a side that is a piece down works, but the tactic it was meant to stop turned out to lose games anyway: it cut the win rate against our reference player from 77.4% to 64.6%. What had actually been winning those games was starting four against three, and the Yokozuna fix removed that.

We now want to know which music style suits the game, and whether the Wildwood is right. The questions are on the testers page.

In the build

  • Close button, and an opponent that waits for it
  • Finger scrolling on five screens
  • A brighter Wildwood board
  • Visible spent pieces
  • The Music screen

Coming later

  • A strike preview, showing the numbers before you commit
  • A text size setting, if testers ask for it

Ruled out

  • A pass rule for the side a piece down

Isle is our first 2D game, and it is still an experiment

A stranded crew, a holed ship and traders at the jetty, in an early prototype with three of our board games inside it.

Everything we have shown so far has been a board, card or dice game. Isle, a working title, is different: a top-down pixel-art game where you live on an island, gather what it gives you and trade with the ships that call.

The story is deliberately low-stakes. The Kittiwake struck a reef and lies holed in the shallows. Nobody was lost, and the first ship to call offers everyone passage home. You turn it down, because the crew would rather mend her.

A day lasts 24 real minutes. You pick fruit to sell to passing ships, and gather stone, driftwood and fronds to build a well, a fire pit and a cold store, which raises what you can carry from 45 items to 135. A net in the shallows fishes while you sleep. Five ships work the island run on a fixed schedule, so you can learn when they will come.

Three of the crew are ashore with you, and each teaches you one of our games: Maud plays Nine Men's Morris, Jessa the Royal Game of Ur and Orrin Hnefatafl. Their rules engines are ported whole from those games. The first chapter adds a missing bosun, a fallen palm blocking the far shore, and a 482-coin bill for mending the ship's launch.

It is an early prototype. The art is placeholder from asset packs we bought, the name may change, and it is not ready for testers yet. There is more on the new Isle page.

In the prototype

  • The island, with day, night and sleep
  • Gathering, trading and the basket
  • The well, fire pit and cold store
  • Net and rod fishing
  • Three crewmates and their board games
  • Chapter one

Coming later

  • Seasons
  • Tents the crew pitch themselves
  • Villagers with needs
  • A settled name and final art

Ruled out

  • Path-finding for the crew: they follow your trail instead, so they cannot get stuck on a palm
  • A second engine and parity harness, which suit a board game and not this

Mancala is our fourth Ancestral Relic, and it brings three games in one

Kalah, Oware and Congkak are switchable rulesets in one tested engine, and a sow now lands one seed at a time.

Mancala joins Hnefatafl, the Royal Game of Ur and Cribbage. It is one of the oldest families of board games still played, and one of the easiest to pick up: lift the seeds out of one of your houses, drop them round the board one per pit, and see where the last one lands.

It includes three traditional games as presets. Kalah is the default: the modern classic, and William Julius Champion's game, credited in Settings. Oware runs Abapa tournament law. Congkak plays on seven houses and relays onward through every occupied pit it lands in. Two engines agree across 250 seeded games and 15,861 plies, all three rulesets included.

One measurement surprised us. Under random play, Congkak's opener wins 60.3% of games. Under strong play that inverts: the opener wins 30.7%. The reply to a long relay turns out to be worth more than the relay. The game alternates who starts each match, which is the fix this family has always used.

Seeds used to jump straight to wherever they ended up. Now a sow plays out one seed at a time, bowl to bowl, with each count going up as a seed lands, and a harvest moves to the store together.

The tutorial was rebuilt after its first version dropped players straight into a game. It now starts from an empty board (your houses, their houses, the stores), then the sow, then a worked capture. Fifteen short steps, one idea each.

In the build

  • Kalah, Oware and Congkak, all tested
  • The seed-by-seed sow
  • Four measured opponents
  • The rebuilt tutorial
  • Twelve languages

Coming later

  • Playtesting on real phones
  • The Android release build

Ruled out

  • Bao la Kiswahili, documented but not shipped: it needs a four-row board and a two-phase engine of its own, and we only ship rules we have tested
  • Kalah's "empty capture" variant, noted by the same source, and it makes the opening sharper than it should be

Cribbage is our third Ancestral Relic, with a lit board and an automatic count

Six-card cribbage to 121 is playable on the desk: a 3D table, a pack and a pegging board of our own design, four measured opponents and a tutorial that was rewritten after its first player got lost.

Cribbage joins Hnefatafl and the Royal Game of Ur: the 1630s card game most people learn in a pub. Keep four, throw two to the crib, lay cards on a count to 31, then count your hand with the starter.

The rules are standard six-card two-player cribbage, with a quick game to 61. Two engines agree across 250 seeded games and 42,838 plies, shuffle and cut included. The show scorer was run over all 12,994,800 hand-and-starter combinations and matches the published table exactly: four twenty-nines, no nineteens.

Four opponents, the Apprentice to the Sharp, all choose their throw by the exact expected value of the four they keep. Random play turned out to be a poor yardstick here (even the Apprentice beats it 94% of the time), so the ladder is spread against our reference player instead: 10%, 22%, 50%, 55%.

The table was redone this week: a black board with the sixty-hole track lit in blue, faceted metal pegs, black-faced cards with crystal suits, all on forged carbon. Cards deal, draw and throw as objects, and a drag turns the table.

The first tutorial was confusing, and the first player said so. It now teaches the scoring on the dealt hand before asking you to keep anything, explains every throw and play, and pauses after each count at the show with the cards still on the table. Thirty-one steps, one real hand.

And one small fix: the score line used to read "Red 12 · Blue 14", which means nothing if you don't know which peg is yours. It now says "You", in your peg's colour.

In the build

  • Standard and quick rulesets, tested
  • The 3D table, board and pack
  • Four measured opponents
  • The rewritten tutorial
  • Twelve languages

Coming later

  • Playtesting on real phones
  • Muggins, five-card and three-hand variants
  • The Android release build

Ruled out

  • A brushed-titanium table, too light against the silver cards
  • Muggins in the base game: the count is automatic, so there is nothing to miss

Ur gets house rules: a nought thrown again, a throw for every capture

We measured ninety-six ways to play the Royal Game of Ur and picked our own. The Finkel reconstruction stays in as an option.

This morning's post said Ur played by the British Museum reconstruction. By this evening it doesn't, by default. Here's why.

Nobody knows the original rules, so every modern version is somebody's reconstruction: Irving Finkel's for the British Museum, James Masters' crossing-road game, RoyalUr.net's Blitz. We decided a Taflarium game should have its own rules, chosen by measurement and credited where they borrow. None of those people has endorsed our game.

So we ran the harness over every combination we could think of: rosettes safe or not, extra throw or not, what a nought does, three lots or four, five counters or seven. Two thousand strong-versus-strong games each. The surprise was that first-mover advantage barely moved (every variant sat within noise of 50%), so it was not the thing to design around.

What the rules do move is the dead turn. Under Finkel's rules one turn in twelve does nothing: a nought, or a throw with nowhere to go. On a phone, that is the dullest part of the game. Two changes fix most of it. A nought is thrown again, once. And driving an enemy counter out earns another throw, an idea from Blitz, which rewards fighting over the shared road and gave the biggest gap between strong and weak play of any version we measured. Games run a tenth shorter; dead turns drop to one in forty.

The Finkel rules are one switch away in Settings, exactly as published, and the tutorial now teaches the nought and the capture throw. Two engines agree across 63,536 plies under all four rule sets, and the ladder was re-measured.

In the build

  • House rules as the default
  • Finkel rules as a setting
  • Two new tutorial lessons

Coming later

  • Masters' crossing road, once verified
  • Playtesting under both rule sets

Ruled out

  • Three lots, less luck, but a fifth longer
  • Nought counts as four, skews the throw
  • Unsafe rosettes, no extra throw

The Royal Game of Ur is our second Ancestral Relic, and there is a playable build

The 4,500-year-old race game, built on the British Museum's reconstructed rules, with a tested engine and four measured opponents.

Hnefatafl has company. The Royal Game of Ur (seven counters a side, twenty squares, four lots to throw) is the next game in the Ancestral Relics series, and there is a playable build. Its page is up.

The rules follow the British Museum's reconstruction, the nearest thing the game has to a rulebook. Where it leaves a choice open we made one and measured it: 400 games per rule set gave a 52.0% first-mover edge under strong play, a median of 252 actions a game, and about 6.5 captures in each.

The engine was built the way we build all of them. Two implementations, the reference and the one that ships, agreed across 250 seeded games and 65,518 plies, throws included, because the dice are drawn inside the engine. The four-rung opponent ladder is ranked by playing it: the weakest wins 46.7% against random play, the strongest 96.7%, and 45.8% against our reference player.

Also in: a five-counter short game, a solved-seed tutorial, twelve languages, and the same turn-it-in-your-hand board as Hnefatafl.

Parked: the modern tournament route, where the two roads cross the board in different directions. The preset slot exists, but the path has not been checked square by square against a source we trust, and we would rather leave it out than ship it wrong.

Dropped: a roll-off for who goes first, because the harness measures that edge directly and a screen adds nothing. Also stacking, backward moves and the tablet's gambling stakes, all historical, none of them mobile game mechanics, and the last one a store-rating hazard.

In the build

  • Finkel rules and the five-counter short game
  • Parity across 65,518 plies
  • Four-rung ladder, tutorial, twelve languages

Coming later

  • The tournament route, once verified
  • Playtesting, then the release build

Ruled out

  • A roll-off for first move
  • Stacking and backward moves
  • Gambling stakes

Want to test our games before release? There's a list for that now

A volunteer testers list is live. One email joins it, one email leaves it, and we keep your address and nothing else.

Hnefatafl is in playtesting and Dohyō is next. Until today the way to volunteer was to email us and hope we kept track. Now there is a proper list.

Head to the new Testers page and press one button. Your mail app opens a message to the list's join address; send it, confirm the reply, and you are in. When a build is ready we write to the list with what it is, how to install it and what to look for. Leaving works the same way: one button, one email, done.

We built this to be as small as we could make it. The list runs on Google Groups, which handles the confirmations, so nobody can sign you up or remove you by typing your address on our site. We store your email and nothing else: no name, no preferences, no tracking. The privacy details are on the page and in the policy.

Two ideas got dropped on the way. The first was a form on the site that told you "added" or "removed" as you submitted it. Doing that means running our own list, and it means anyone could remove anyone else. Google's confirmation email does the job better. The second was asking which games you want to test. We decided not to hold that. When a game reaches testing it goes to the whole list, and you pick per game whether you want in.

If you have already emailed us to volunteer, thank you. Please join the list too, so nothing gets lost.

Live now

  • Testers page with join and leave buttons
  • Google Groups confirmation on both
  • Privacy policy updated

Coming later

  • Per-game test calls to the list
  • A way to send feedback that is not just email

Ruled out

  • An on-site form with added/removed status
  • Storing which games you want to test

Meet Bloom, the engine that composes our music while you play

Every Taflarium game will use one music engine, a rebuilt 2006 research project that composes each soundtrack as you play, with no looping tracks.

Bloom is our own music engine, and it has been running under everything we've announced so far. Dohyō's soundtrack is Bloom's work. Hnefatafl's will be. So will everything after that.

Most game music is a recording that repeats, a track a few minutes long with a join you learn to hear. Bloom doesn't play recordings. It composes the music while you play, and it keeps composing for as long as you keep playing. Nothing loops.

It's also the oldest thing in the studio. Bloom began in 2006 as a Masters research project asking whether software could compose music worth listening to. The degree ended, the code went on a shelf, and there it stayed for twenty years. This year we took it down, kept the ideas that had aged well, rebuilt it for our games and gave it a new name.

In Dohyō, it covers a lot of ground. Each of the eight opponents has a score of its own, and each of the four worlds plays under its own instruments: swap themes mid-session and the music changes with them. Menus stay calm, and a versus match builds.

We're keeping the details of how it works to ourselves, because it is part of what makes our games sound like ours. What you can hear for yourself: none of our games' music is a recording, and none of it loops.

In the build

  • Dohyō's music: eight opponents, four worlds, no loops
  • Music that reacts as a match tightens
  • One engine, built to drop into every game we make

Coming later

  • Hnefatafl's score, in a colder style than Dohyō's
  • New instruments as new worlds arrive

Ruled out

  • Looped background tracks
  • Publishing how Bloom works

Our next game is Hnefatafl, the Viking game of siege and escape

It opens our Ancestral Relics series, with rules tested across 250 matches and four opponents of measured strength.

Dohyō is getting company. Our second game is Hnefatafl, the Viking game of siege and escape, and it's the first in a series we're calling Ancestral Relics.

The two sides are deliberately unequal. Twelve defenders and their king start in the centre of an 11×11 board, with twenty-four raiders around the edges. Everything moves like a chess rook. The king is trying to reach a corner, and the raiders are trying to wall him in. You capture by sandwiching a piece between two of yours.

It is built the same way as Dohyō. The rules run on two engines checked against each other move by move: 250 matches and 68,011 moves so far, zero disagreements. Four opponents, each with measured strength: the gentlest loses in about 18 moves, and the strongest has never yet let our benchmark king out. There's a tutorial, twelve languages, and a board of carved pieces you can turn with a drag to see the siege from either side.

Every game is built with versus play in mind. At release that means a friend on the same device, or the AI. Online matchmaking is a lot of work, so we will build it if players ask for it.

In the build

  • Rules tested across 250 matches and 68,011 moves
  • Four opponents, every one measured
  • A tutorial and twelve languages
  • A board you can turn with a drag

Coming later

  • The Android release build
  • Online matchmaking, if players ask for it

Ruled out

  • Shipping matchmaking half-done

One game, four worlds: how Dohyō's themes work

Swap the sumo ring for a brass orrery or a wood full of animals. The rules stay the same and the game looks completely different.

Dohyō ships with four themes, and switching between them changes the board, the pieces, their names and the on-screen text. The rules underneath stay exactly the same, so your tactics carry over.

Pieces have no names in the code. Each one is three numbers: how far it moves, how well it defends, and how hard it hits. Everything you can actually see lives in a separate theme file.

That is why there are four themes. Adding a new world means writing a data file, so we can keep making them after launch.

Two tools keep the split clean. A validator checks each theme covers all six pieces and that you can still tell them apart by shape alone at thumbnail size. The other looks for text that has ended up in the code instead of the theme, and it found 63 the first time we ran it.

The four at launch: Dohyō (clay, straw bales and the offerings buried at the centre), Classic Orrery (beasts of light on brass, named after real stars), The Drawn Sky (constellations that breathe) and The Wildwood (Oak and Holly, still arguing). All four are playable now, in 12 languages.

In the build

  • Four complete themes, switchable mid-session
  • 12 languages
  • Automatic checks that stop a broken theme shipping

Coming later

  • New themes released after launch as separate downloads
  • Mixing a board from one theme with pieces from another

Ruled out

  • Themes that change the rules. They'd stop being one game
  • Any piece having a fixed name in the engine

Dohyō runs on two engines, and they've agreed 31,324 times

One version plays thousands of matches for testing. The other runs on your phone. Keeping them identical took some work.

We wrote Dohyō's rules twice. One version has no graphics at all and can play 4,000 matches while the kettle boils, which is what all the balance testing runs on. The other is the one you'll actually hold.

Two copies of the same rules usually cause bugs. They drift apart, nobody notices, and the game that ships isn't the game that got tested.

So we made them play identical matches. Both start from the same seed, both use the same dice roller, and both write down every move. Run a batch through each, compare the logs, and any difference turns up as an exact move number instead of a vague feeling that something's off.

Where that stands today: 250 matches, 31,324 moves, zero disagreements.

We broke it on purpose too, just to check the alarm works. Changing a single value in the phone version made the tests flag the exact move where things went wrong.

The test rig doesn't retire at launch either. Change a piece's stats, re-run 4,000 matches, get an answer in seconds. That's how we caught the Warden being underpowered and fixed it before anyone had to feel it.

In the build

  • Both engines verified against each other, move by move
  • 250 matches and 31,324 moves with no divergence
  • Balance testing that still works after launch

Coming later

  • The check running automatically on every code change
  • Extending it to cover advanced draft mode

Ruled out

  • Cutting down to a single engine
  • Shipping on a test suite we've never watched fail

We built a fancy AI for Dohyō, then threw it away

Monte Carlo tree search lost 94-6 to something we knocked together as a sanity check.

We wanted an opponent that plays like someone who knows the game. The usual choice was Monte Carlo tree search, the technique behind a lot of serious board game AI, so we spent a weekend building one.

Then we tested it against the simplest thing we could think of: an AI that looks at the board as it is, scores every legal move, and takes the best one. No planning ahead at all.

The simple one won 94-6.

There are two reasons. Dohyō gives you 40 to 60 legal moves at any moment, so looking ahead gets expensive fast on a phone. More importantly, playing a match out at random to see how it ends tells you very little here, because most of what matters is immediate: who's exposed, who's holding the middle, whether a shove opens something up. Random play throws all of that away on the first move.

So the simple one shipped. It uses a fraction of the battery and beats random play 159-1.

The eight difficulty levels are that same AI with different priorities, and we measured every one: they range from a 7.3% win rate against our benchmark up to 54%. The hardest setting is difficult to beat.

Dohyō was in development for Android when this was written. It is now in closed testing.

In the build

  • Eight difficulty levels, each one measured
  • Beats random play 159-1
  • Light enough not to eat your battery

Coming later

  • Opponents with personalities, from reckless to defensive
  • An opening book so early turns vary

Ruled out

  • Monte Carlo tree search, which lost 94-6
  • Neural networks, the wrong tool for a board this size