About DANKGAME
DANKGAME is a turn-based fantasy strategy game that runs in a web browser. You open dankgame.com, press Conquest, and your hero is standing in his town at the foot of a map with a boss at the other end.
What it is today
Three ways to play. Conquest is a whole match on one of two hand-made maps, each 10 tiles wide and 18 deep, with 15 days to cross it. Your hero walks the map a day at a time, picks up gold, wood, ore and crystal, flags two mines, puts up buildings in his town and hires troops there and at two dwellings, and fights the monster lairs in his way. A new match’s town has twelve buildings and he can put up one a day: a dwelling for each of six kinds of troop, a drill house that raises the two cheapest dwellings’ weekly stock by half, two halls that add 250 and 500 gold a day to the 400 the town itself pays every day, built up or bare (in the Daily from 27 October 2026), a market that trades at fixed rates (5 wood or 5 ore for 1 crystal, 500 gold for 5 wood or 5 ore), a shrine whose blessing you pick once, and a roost for drakes that needs the Council Hall and three dwellings first. Fifteen days allow fourteen builds at most, and the purse allows fewer, so you choose what to leave unbuilt. In a new match each building that stands can also be upgraded once, to level 2, which takes that day’s build: each of the six dwellings hires half again as many a week, the roost one more drake, the drill house’s boost reaches two more dwellings, the market trades at better rates and the shrine grants its second blessing, and the town picture changes with it, the building’s level-2 painting raised in its place (the Council Hall’s level 2 is the High Hall; the Daily has upgrades from 26 October 2026). He need not walk home to build: the Town button opens his town wherever he stands, and the building goes up at once at the same cost, while hiring still needs him there (or a war band sent to him on the Large map); a Duel, and every Daily before 25 October 2026, still build only with the hero in town. A Duel, and a match or Daily begun before the bigger town came in, keep the older town of four buildings. Six one-time places stand on each map, the same six on the same tiles every match: the Ember Cairn, Hermit’s Hollow, the Wax-Sealed Coffer, the Drifters’ Fire, the Lookout Crag and the Knucklebone Table. Walking onto one opens a card with two choices and the exact outcome of each, such as +1 attack or +1 defence for every stack for the rest of the match, 300 to 500 gold or twice that with a trap that kills a fifth of your costliest stack, or 100 gold staked on one die; you keep one choice and the place is spent. The rest is dealt: in a new Conquest the monster lairs that hold the road, the resource piles, the chests and the two dwellings stand on tiles drawn from the match’s seed, so no two matches are laid out alike. The roads, rivers, town, boss lair, mines, watchtower and six places stay put, as do the three wardens (and the one chest a warden guards) and the lairs in front of a mine or the boss. No pile or chest lands within two tiles of the town, a dwelling is never as far a walk as the boss, and every big pile has a lair beside it on the road side. A Daily is dealt the same way from its day’s seed, from the Daily of 23 October 2026 on. Every lair fight is a turn-based battle on an 8 by 10 board that you play yourself, with your commander behind the army casting three powers paid with Command; a lair’s card offers Fight or Not now, never a result without the battle. Inside the battle a speed button plays the computer’s turns and every animation at 1x, 2x or 3x, and once the enemy is down to two stacks and a played-out copy of the rest says you win, Finish for me plays your side to the end at 3x (Stop, or any press on the bar, hands the turn back; it is never offered against a person or in a Duel's final battle). The match is won by beating the boss in his lair at the far end, and lost if your whole army falls or the days run out. His lair stays sealed until you break two of his three wardens, mage-and-drake lairs spread so far apart that he cannot be beaten before day 3. The wardens hold still for three days and then grow every day, while he grows slowly, so breaking them early with the army you start with, hunting the lairs first and building up the town can each win: on the first map, over the same 100 matches with the wild beasts in the lairs, a script that marches on the nearest wardens and then on him, hiring nobody, won 12% of its matches (on day 4), one that hunts every lair it can beat cheaply 80%, and one that flags the mines, builds the town and hires at the dwellings first 92% (both usually on day 11). The result screen gives the days taken, the lairs cleared, the troops lost and a score built from them. The match’s number picks its map, and your first match is always the Causeway Meres, the map the first-day tips are written for: there one road runs north over a causeway between two lakes, straight at the boss. Reedford, the other, puts a river across the middle that you cross by the road bridge in the east or a reedy ford on the west edge, with the boss in the far west corner; there, measured over 200 matches before the places were added, the script that hunts lairs and the one that builds the economy win about equally often (62.5% and 59.5%, against 74.5% each on the Causeway Meres at the time), and the one that marches at once only 33%, because two of his wardens stand side by side on the east bank and break its start army fighting them back to back. The terrain and the places of things on each map never change; what guards each monster lair (the boss’s escort apart) and what lies in each pile and chest are drawn fresh for every match, and Continue always reopens the map you were on.
The monster lairs are held by wild beasts that belong to no people: thornback shrews, gorse hogs, ridge lynxes, carrion kites and barrow bears, a few, a pack or a horde of them by the lair’s size. They hunt as a pack: in a lair fight each beast stack deals 10% more damage for every other beast stack still alive on its side, so killing the smallest stack first weakens the rest. The wardens and the boss’s escort are not beasts. The beasts came in a later update: a match saved before it, and every Daily before 24 October 2026, keeps the guards it was dealt.
Starting a match is two taps: PLAY on the title, then your people. Nothing else is asked: the map is one of the two picked by the match’s seed, the town is the classic one, and the difficulty is the highest Warpath level you have opened (the plain match until you win one). The Large map, its rival, the Forks town and the level picker live in the title menu under Experiments.
Before a match starts you pick your people, and they stay yours to its end. The Vale Host march out with 30 spearmen, 12 archers, 10 dire wolves and 5 shieldmen behind the Commander. The Peatholm start with 45 peat cutters, 24 reed slingers, 10 eelcatchers and 5 bulltoads (1,074 gold of creatures against the Vale Host’s 866, because her powers pay out over several turns rather than at once), are led by the Sedge Mother, who casts Sinking Ground, Bitter Dew and Moss Bed instead of his lance, mend and ward, and set out from the Peat Holm, a stilt village on a black mere. Its buildings cost what the Vale Host’s do and carry their own names, but hire fen units, and a dwelling on the map hires the Peatholm creature of its kind. The wild beasts that join you after a won lair fight come over as themselves, whichever people you lead; a people’s creature that joins (a warden’s, or a lair’s in a match from before the beasts) comes over as your own people’s creature of that kind, so a Peatholm hero gets peat cutters where the Vale Host would get spearmen. In Conquest her Bitter Dew poisons for 32 a turn instead of 16 and costs 2 Command instead of 3. In scripted test play (50 matches per script on each Conquest map, measured after that change) the Peatholm won 98–100% with the economy and lair-hunting scripts but only 48–50% with the script that marches at once; on the same 24 seeds of the first map the Vale Host’s scripts win within 2 matches of hers. No person has played a whole Peatholm match yet, so treat that as a measurement, not a promise.
Quick battle (also at dankgame.com/battle/) is one battle: your blue army against the computer’s red army on the 8 by 10 field, with a few rocks on it. You draft your army first: 1000 gold, at most five stacks, each unit up to its muster cap. First you pick one of two peoples: the Vale Host, whose draft opens on 24 spearmen, 12 dire wolves, 4 crossbowmen, 8 archers and a knight, or the Peatholm, fen folk whose eight units are cheaper, poison what they strike and close their own wounds, so they lose a short fight and win a long one. You can change any of the list. The computer drafts the other people by the same rules without seeing your list; its drafts are random within those rules, so some are stronger than others. Conquest and Duel ask the same question before they start and remember the same answer, so a people picked in any of the three is the one the other two open on. Equally fast stacks take turns, one from each side, and the side that goes first in a tie switches every round: blue leads the ties in odd rounds, red in even ones. Measured with both sides on the Vale Host’s opening list, 8,000 computer-against-computer battles (2,000 for each of two seed ranges on each of the two fields) went to blue between 50.5% and 53.7% of the time on every field: the rules favour neither side, the rocks of one field lean a few points to blue, and the armies decide the rest.
Duel (the title’s Duel button; the Duel page explains invites, speeds and the final battle) puts two heroes on one map, the same map turned half a circle for the other side, so neither starts nearer the gold. The six places stand on it in mirrored pairs, one of each on either half, and a place and its twin offer the same choices and numbers. Both take each day at the same time against a clock. A duel runs at the speed picked on the Duel panel’s Speed row, as in chess: Blitz gives 30 seconds a day and 10 seconds a battle turn, Standard (the default) 60 and 20, and Slow 3 minutes and 45 seconds; the practice save keeps the speed it was started at. A player who fights a lair by hand has the day clock stopped while the fight gets its own: a battle turn’s clock each turn and a bank for the whole fight (45 seconds at Blitz, 90 at Standard, 4 minutes 30 at Slow), after which the rest is played on Auto from where it stands, while the other player keeps playing their day. When the heroes meet, or the last day runs out, the two armies fight the final battle on the 8 by 10 board, each army formed up by the same rule from its own edge. Equally fast stacks of the two sides take turns, and which army leads the first round is drawn from the duel’s seed, not the seat, so sitting first is no head start (the lead then swaps every round). Each player brings the people picked on the Duel panel, so a Vale Host commander can meet a Sedge Mother; in bot-against-bot duels on this map the Peatholm side won 45% of 400. Play the computer starts the practice duel, where the computer walks the other hero with the people set on the Computer: pick under that button: the Vale Host, the Peatholm, or Either, the default, which the duel’s seed draws, so a resumed duel brings back the same rival. It runs entirely in your browser. Invite a friend needs the game’s match server, which passes each side’s moves to the other and checks every move against the rules. While the server runs, Invite a friend gives you a six-character code and a link, dankgame.com/?duel= followed by that code, and the duel starts when your friend opens the link or types the code under Join a code. While the server runs, a duel made with Invite a friend plays at the speed picked when the code was made, and the code screen, the shared message and link, and the first line of your friend’s duel name it (“Blitz duel · 30 s days”): the one who joins plays at that speed, not their own pick, and the server runs both players’ clocks at it, so a dropped player’s seat goes to the computer after 45 seconds at Blitz, 90 at Standard and 5 minutes at Slow, and the other player may claim the win after 90 seconds, 3 minutes or 15 minutes. While the server runs it keeps every running duel on disk, so a duel in progress survives a restart of the match server and the time the server was down is charged to neither player; that is what makes Correspondence, a fourth speed offered only for a duel with a friend, possible: each day lasts up to 24 hours of real time and turns as soon as both players have ended it, each of you moves whenever you like inside it, and a side that misses 3 days in a row (no move and no End Day in any of them) forfeits the duel. While it is switched off, Invite a friend and Join a code say so in one line and offer the computer instead. While the server runs, a friend duel only starts when your page and the server play the same version of the rules, so the two of you are never judged by different ones: the server picks up a new version by itself on the next invite or join after it goes up, with no restart, and duels already in progress finish on the rules they started with; if your page is still on the older version, or the server is still holding three older versions for duels in progress, Invite a friend and Join a code say the server is updating and offer the computer, and reloading the page or trying again a few minutes later works.
It is an early build, and the title screen says so: there are two Conquest maps and one boss, Haskett, at the end of both. Beside them the title menu’s Experiments panel offers a Large map experiment, Broadwater, 36 by 36 tiles with no day limit and no sealed boss, made for roaming, which is only played when you pick it and may change or be removed. Everything on How to play describes the game exactly as it plays now; nothing there is a plan.
On the Large map a computer rival hero races you for the mines unless you switch him off. He starts in the north-west town with the same army you have, flags mines (yours too), and wins the match if he clears the boss lair first; walk up to him and beat his army and the match is yours. How to play lists exactly what he goes for and when he attacks.
Nothing to install
The whole game is this website. The battlefield is drawn with WebGL, so it needs a browser that has WebGL switched on: a current Chrome, Firefox, Safari or Edge does. Some battery-saver and privacy modes switch it off, and the page tells you when that happens. It is laid out for a phone held upright and for a desktop window, where the table fills the screen and keyboard keys work. There is nothing to sign up for. When sign-in is switched on, the game quietly makes you a guest the first time you post a Daily run, so official Daily scores can be checked; until then, or if that service is out of reach, nothing changes.
What it keeps, and where
At most twelve things, all in your own browser’s storage on your device, and none of them is sent anywhere, except the Daily’s typed name and device id when you post to today’s board (with the guest token, once there is one), and your save when you move it to another device:
- Your settings (
dankgame.settings.v1): sound on or off, the three volume sliders, reduced motion, the frame-rate readout, whether Threats is switched on, the battle speed (battleSpeed: 1, 2 or 3, kept only once you change it on the battle bar or in Settings), whether the Large map’s rival is switched off (kept only once you flip it), and whether town forks are on for a Conquest started from Experiments (townForks, kept only once you turn them on; PLAY always starts the classic town). - Your people (
dankgame.people): one word, the people you last picked (valeorpeatholm) on the Battle draft, before a Conquest match or on the Duel panel, written when you tap one, so all three open on it next time. - The battle in progress (
dankgame.battle): the number the battle’s dice were started from, which field it is on, the two drafted armies (yours and the computer’s, as lists of units and counts), and the list of moves so far. Reopening the page replays those moves to rebuild the board, which is why a closed tab or a reload does not lose a battle; the title screen offers it as Continue. - The Conquest match in progress (
dankgame.conquest): which map, the number it was generated from, which people you lead (only when it is the Peatholm), which version of the map rules it is played under, whether the rival hero is in it (only when he is), whether town forks are on (only when they are), whether it has the twelve-building town (only when it does), whether its buildings can be upgraded (only when they can), the day of the Daily it is (only when it is one), and every action on it so far — each walk, pickup, building, upgrade, recruit and fight, a fight with its own list of battle moves. Replaying them puts you back on the same day with the same army, purse and explored map, or inside the lair battle you were fighting; the title screen offers it as Continue. A finished match is removed. - Your best Conquest score (
dankgame.best): one number, the highest score of a match you have won on this device, and a second one beside it for the Large map once you have won there. Nothing else about the match is kept. - Your Warpath ladder (
dankgame.warpath): only once you have won a Conquest match. Two things: the highest Warpath level you have opened (1 to 5), and for each level from 1 up the best score of a match you won there. Nothing about the matches themselves is kept. - Your Daily streak (
dankgame.daily): only once you have finished a Daily. Four numbers and a date: the last day (UTC) whose Daily you finished and had counted, that try’s score, how many days in a row you have finished one up to then, and your best counted Daily score. Once you post to today’s board it also holds a random id made for this device (32 hex digits) and the name you typed, so the next post is prefilled and the board can find your run. Nothing else about the matches is kept. - The practice duel in progress (
dankgame.duel): only if you have opened the practice duel against the computer. It holds the number the shared map was generated from, your people (only when it is the Peatholm), the computer’s own dice, and every action both sides have taken — yours and the computer’s, each End Day and each time the 60-second day ran out. Replaying them puts you back on the same day with both heroes where they stood. It also notes the day the duel has reached and whether it is over, so the Duel panel can offer Continue your duel (day N) beside Play the computer, which always starts a new one. - The live duel you are seated in (
dankgame.duel.live): only while a duel against a friend is on. Five things: the duel’s id (its code), which of the two sides is yours, the seat token the Duel server handed this page when it seated you (the one thing that lets it give that side back to you), when this was last written, and how long the server keeps a duel nobody touches (30 minutes; four days for a correspondence duel). After a reload, a closed tab or a crash the title screen offers Back to your duel, which sits you back on the same side; if the server answers that the duel is gone, the title says That duel has ended. Removed when the duel ends, when the connection is lost for good, and when you leave the duel yourself. The moves themselves are on the server, not here. - Your Stronghold (
dankgame.hold): only once you have finished a match. Three counts of materials (iron, timber and arcane shards), which of the keep’s four stages you have built, the trophies you have earned, how many matches have brought something home, a bestiary count of each kind of foe you have beaten (a number per kind, nothing about the fights themselves), the banner colour you chose (the name of one cloth, which only tints your flags on a solo map), the title you wear (the id of one title you earned there, shown on the title screen and on your Daily share picture, never sent to the Daily board), the veteran marks your unit kinds earn (a number per kind of your own units: the solo lair fights it won and came out of alive, which puts a trim on its figure and a pin on its card in solo battles and changes no stat), and short keys for the last finished matches and won lair fights, so a result shown twice never pays twice and a fight is never counted twice. It changes nothing inside a match. Nothing else about the matches is kept. Your Warpath rank (0 to 15, with its badge on the keep and beside Today’s map on the title) is not stored at all: it is worked out each time it is shown from the Warpath ladder kept on this device (above), so it moves with that ladder and goes when it goes. - Your guest account (
dankgame.account): only once sign-in is switched on and you have posted a Daily run or tapped a way to sign in. Two strings the game’s account service handed this device when it quietly made it a guest: the account’s opaque id (32 hex digits) and its token (43 random characters), which rides on your next Daily posts so a run can count as official once you sign in. While the account service is off or out of reach the game asks once per visit, gets no answer, writes nothing here, draws no Sign in button and plays exactly the same. The only other thing it ever holds is, for the one trip to Google and back, the one-time code that finishes a Google sign-in; it is dropped on your return. Delete my account in Settings removes the key. - Which first steps were counted (
dankgame.funnel): a list of up to seven short step names such asdg-first-move, nothing else. The game counts, without any id, how many players reach each of its first steps: opening the game, starting a first match, walking a first tile, starting a first lair battle, winning or losing it, and finishing a first match. Each step adds one to a plain tally on the site’s own visitor counter the first time this device reaches it; this list only remembers which ones it has already added, so none is added twice. Every match start and finish adds one to two more tallies. No score, map, name or device id goes with any of them, and this list itself is never sent.
Clearing this site’s data in your browser removes all of them. In a private window that blocks storage, nothing is kept and every visit starts fresh. Privacy lists everything the game’s server keeps as well, and for how long.
The Daily leaderboard sends something only when you tap Post to today’s board after a counted Daily (the first such tap also asks the account service for a guest, an empty request that sends nothing about you). The game’s server replays the moves you send and, for each run it accepts, keeps exactly: the name you typed, the people you led, the score, the days taken, the lairs cleared and the troops lost (all four worked out by its own replay), the run’s list of moves, a sha-256 hash of the device’s random id (never the id itself), and the time it was accepted. Only for a run posted while signed in to a game account, which cannot happen until sign-in is switched on, it also keeps that account’s opaque id and whether the run counted as official. It never keeps an e-mail, an IP address or your browser’s name; your address is used only for a count of posts per hour held in memory, and gone when the server restarts. Each day’s board is deleted 30 days after that day. The board shows the name, people, score, days, lairs and troops lost of the best runs to anyone who opens it. While the server is switched off the game says Leaderboard offline — your score is saved on this device and sends nothing more.
The game page registers a service worker (/sw.js) that only shows a
your move notification and opens the Duel page when it is tapped: no fetch handler and no
cache, so it never keeps a page or serves an old copy of the game, and it adds no key to the list
above. Only if you switch on Tell me when it’s my move on a Correspondence invite
(shown only once the match server has alerts set up, which it does not yet) does the server keep
your browser’s push subscription and your time zone, until the duel ends or you switch it
off. Privacy lists the fields.
Moving to another device
Settings has Move my save to another device. Tapping it sends one thing to the
game’s server: a copy of eight of the keys above —
dankgame.conquest, dankgame.best, dankgame.warpath,
dankgame.duel, dankgame.daily, dankgame.people,
dankgame.settings.v1 and dankgame.hold, whichever of them exist — and nothing else. The quick
battle in progress (dankgame.battle) stays on the device it is being played on, and so does the seat of a live duel (dankgame.duel.live). No
name or e-mail goes with it beyond the Daily board name already inside dankgame.daily.
The server keeps it as one file per code and answers with an 8-character code such as
K7QX 9MPA (no 0, O, 1, I or L, so it reads aloud cleanly). On the other device,
I have a code takes the code in any case, with or without the space or a dash, asks once
before it replaces that device’s save, and reloads onto the title screen with your Conquest,
Daily streak and name. The file is deleted the moment the code is claimed, so a code works once,
and a code nobody claims is deleted after 24 hours. Everything that arrives is checked by the
same rules the game uses for its own saves, and a value that fails them is dropped. While moving
is switched off on the server the game says Moving saves is not switched on yet on the match
server and nothing on your device changes.
Separately, page visits are counted by a GoatCounter instance at stats.dankdev.com, which records which page was opened, where the visit came from, and the browser, screen size and country of the visit. It sets no cookie. There is no advertising on the site.
The game also reads its own address, and the address of the page around it if it is shown inside another page, to tell whether it is running on dankgame.com. On a copy hosted anywhere else it shows one line saying so, with a link to the original, and its Duel offers no online play; everything played against the computer works the same. That check sends nothing and keeps nothing.
The classic game
Before this game took over the front page, dankgame.com was a different, simpler one-battle game: you drafted an army from 1000 gold and fought a friend over a shared link or the server’s own opponent. It was retired on 5 October 2026, and its address now forwards to dankgame.com/battle/: the same idea, a drafted army in one battle, played with this game’s units, board and rules. Its old invite links can no longer be joined; a game against a friend is now a Duel, which needs the match server described above.