Hnefatafl

The Viking board game of a king breaking for safety and a ring of attackers closing in.

Hnefatafl was played across the Norse world for centuries before chess arrived. Every piece moves like a rook and is taken by being caught between two enemies. The attackers must capture the king, and the king must reach safety. Play a housecarl, or open a table for a friend and play by turns, by Copenhagen rules on the big board or as Tablut, the older game Linnaeus wrote down in 1732.

{#if game.options?.length}
{#each game.options as o (o.key)} {@const chosen = o.choices.find((c) => c.value === options[o.key])}
{#if chosen?.note}

{chosen.note}

{/if}
{/each}
{/if}
or join one

With a code you can take a seat if one is free, or watch from the Peanut Gallery.

or bring a seat from another device
{#if error}

{error}

{/if}
{#if seats.length}
your games
{#each seats as held (held.roomId)}
{held.roomId} {status(held)}{#if unread(held) > 0} · {unread(held)} new {unread(held) === 1 ? 'line' : 'lines'} of talk{/if} {#if forgetting === held.roomId} This browser may be all that holds your seat. {:else} {/if}
{/each} {#if reports.length}
your reports to the keeper
{#each reports as r (r.id)} {@const last = r.thread[r.thread.length - 1]}
{r.roomId}

“{r.happened}”{#if r.image} (with a picture){/if}

{#each r.thread as line, j (j)} {#if line.from === 'player'}

you: {line.text}

{:else}

{line.status} {line.text}

{/if} {/each} {#if !last}

the keeper is studying the moment

{:else if last.from === 'player'}

your word is with the keeper

{/if} {#if r.thread.some((l) => l.from === 'desk')}
{ e.preventDefault(); void answer(r); }}>
{/if}
{/each} {#if answerError}

{answerError}

{/if} {/if}
{/if} {#snippet aboutGame()}

Hnefatafl is the tafl game of the Vikings, carried by them from Scandinavia to Britain, Ireland, Iceland and beyond, and played until chess arrived in the eleventh and twelfth centuries. No rules from that age survive. The game was reconstructed in modern times from a Sámi cousin, Tablut, whose rules the botanist Carl Linnaeus jotted down on his journey through Lapland in 1732.

This table plays Copenhagen, the modern tournament ruleset, on the eleven-by-eleven board, and Tablut on the nine-by-nine one, with the older board showing its age. The rules it follows are on the rules page. The game is in the public domain, and the board and pieces here were drawn for this site.

It is free and keeps no accounts. A game between people lives on a small server as an append-only ledger of moves, so it can be replayed from its first move.

{/snippet} {#snippet aboutTally()} {#if told} {:else}

Counting…

{/if} {/snippet} {#snippet aboutFamily()}
{#if family.length}

More games in {#if hall}Kestrel's Hall{:else}Kestrel's Hall{/if}

    {#each family as g (g.slug)}
  • {g.name}: {g.pitch} {g.players} players; {g.origin}.
  • {/each}
{/if}

The games of Kestrel's Hall are free and will stay free. They run on small servers that cost a few dollars a month, and anyone who wants to chip in toward the hosting can do so at ko-fi.com/kestrelsnest. Chipping in unlocks nothing, and nothing is held back without it.

Hnefatafl belongs to everyone. It is more than a thousand years old.

{/snippet} {#snippet aboutWord()}

If a rule reads wrong, something breaks, or you have a game to tell of, write to eric@ericwagoner.com, @kestrelsnest.social on Bluesky, or @eric@toots.kestrelsnest.social on Mastodon. The keeper of this hall roosts at kestrelsnest.social.

{/snippet}