How I made uncertainty readable in a deterministic browser strategy
I wanted to build a strategy game where tension appears before the click. Random outcomes are easy to add, but they often feel arbitrary. MYCELIUM became an experiment in exposing enough information for a risky move to feel like a decision rather than a coin flip. The board shows uncertainty instead of hiding it The world is generated from a deterministic seed. A frontier cell is still unknown,…
Mycelium is a strategy game built to showcase uncertainty in a deterministic browser environment. Uncertainty is revealed through visible probabilities, attack support, and enemy intentions. The game's board displays uncertainty by exposing enough information for risky decisions to feel deliberate, rather than random. The world is generated from a deterministic seed, with a frontier cell remaining unknown until the player reveals it.
The UI presents the final probability and local support around a target square before an attack, creating a distinction between uncertain outcomes and visible inputs. Enemy plans are stored as objects on the board, with an intent containing its source, target, direction, and chance. Players have one turn to respond, with options to reinforce the target, use a rare guaranteed Repaint, or capture the source.
A geometric rule defines the main territory, requiring a close perimeter of at least 3×3 to capture and reinforce the interior. Recursion occurs when filling one interior completes a second square, creating chains of captures. The implementation ensures a static game by keeping track of newly completed shapes without infinite processing of the same square.
The game runs entirely in the browser, with deterministic world generation, local saves, daily seeds, and challenge links, as well as an optional 1v1 mode using direct P2P rooms. The static deployment relies on Next.js 16, React 19, TypeScript, and PixiJS. The sole server-rendered component is a lore atlas, providing a crawlable surface for the fictional world.
The primary testing question is whether showing forecasts, attack support, and enemy intents lead to better decisions or merely increase the amount of information to parse. Feedback is sought on the first match: when the player first understood why a square matters, whether an announced enemy intent altered their plan, and which number or preview felt unnecessary. MYCELIUM can be played at https://mycelum.vercel.app/.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.