Strata is a hidden-objective structural strategy game played on a 6×6 grid.
Each player secretly selects (or receives) a scoring metric and attempts to shape the board to maximize their own objective — while also benefiting from the opponent’s metric at double value.
At the end of the game:
Your Score =
Your pieces under your metric
+ 2× (Your pieces under opponent’s metric)
You must:
- Build toward your goal
- Infer your opponent’s goal
- Shape the board to exploit the 2× multiplier
Strata rewards:
- Structure
- Deception
- Spatial intuition
- Pattern recognition
- Board size: 6×6
- Players: X (human) vs O (bot)
- Turns: 10 each
- On your turn:
- Place a piece on any empty square
- OR remove any piece from the board
- When both players complete 10 turns → scoring is revealed
Each player uses one hidden metric.
Count orthogonal (up/down/left/right) connections between your pieces. Each touching edge between two of your pieces counts as 1.
Count pieces that have no orthogonal same-piece neighbors. (Diagonal does not matter.)
Count your pieces on the outer border of the board.
Count your pieces in the central 2×2 zone.
Your pieces act as walls. Any region (empty or opponent pieces) that cannot reach the board edge without crossing your pieces is considered enclosed.
Enclosure Score =
(# enclosed cells)
+ (# unique fence pieces touching that region)
Example: a 3×3 ring enclosing 1 cell uses 8 fence pieces → 1 + 8 = 9 points.
The bot:
- Optimizes its own metric
- Uses heuristic evaluation
- Includes slight randomness to avoid deterministic play
- Does not know your metric
Strata is intentionally designed so that reading the bot’s structural tendencies becomes part of the strategy.
Strata explores:
- Hidden-objective tension
- Emergent spatial structures
- Cross-metric exploitation
- Minimal rules → deep outcomes
The game is intentionally:
- Simple to learn
- Transparent in scoring
- Structurally deep
- Astro
- Vanilla JavaScript
- Static deployment
- GitHub Pages hosting
Run locally:
npm install
npm run dev
Build for production:
npm run build
Deploy (manual gh-pages flow):
npm run deploy
- Metric inference difficulty modes
- Personality-based bots
- Multiplayer mode
- Adjustable board sizes
- Visualization overlays
- Tournament scoring variants
MIT
npm create astro@latest -- --template basics🧑🚀 Seasoned astronaut? Delete this file. Have fun!
Inside of your Astro project, you'll see the following folders and files:
/
├── public/
│ └── favicon.svg
├── src
│ ├── assets
│ │ └── astro.svg
│ ├── components
│ │ └── Welcome.astro
│ ├── layouts
│ │ └── Layout.astro
│ └── pages
│ └── index.astro
└── package.json
To learn more about the folder structure of an Astro project, refer to our guide on project structure.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
Feel free to check our documentation or jump into our Discord server.