Skip to content
Muhammet Şafak
tr
The Regnarium board — cities and armies on a hex map with a combat preview showing exact damage numbers

Regnarium

Ongoing Older / Hobby Projects

Regnarium fits the explore-expand-exploit-exterminate loop of 4X strategy into a single sitting, played offline in the browser. The 480-hex map closes after at most 60 turns, combat rolls no dice and the preview you see before attacking is the calculation itself; there are no accounts, no servers and no tracking.

Role
Designer & Developer
Duration
September 2026 — Ongoing

Technologies

TypeScript Next.js React React Native Expo Vitest MDX IndexedDB CSS Modules

Skills

Game Design Turn-Based Simulation Deterministic Systems Procedural Generation Game AI Offline-First Architecture Monorepo Architecture i18n

Regnarium is a strategy game I designed to fit the four verbs of the 4X genre — explore, expand, exploit, exterminate — into a single half-hour sitting. The player takes on one to three AI opponents across a 20×24 board of 480 hexes; a match closes after at most sixty turns, and if conquest is incomplete the score decides the winner. It runs in the browser, works entirely offline after the first load, and has no accounts, servers, ads or tracking — it plays identically in airplane mode. The design started from a constraint: a usual session in this genre eats an entire evening, and nothing existed for the player who does not have one.

Technically the project is a monorepo where the rules, the map generation and the opponent AI all live in a single pure TypeScript core. That core cannot reach the browser, the clock or the network — those are banned at the lint gate, and whether the gate actually holds is tested separately by linting files written to be wrong on purpose. What this buys is determinism: the same seed and the same sequence of commands always produce the same match, opponent decisions included. That in turn decides the save format; a save is not a full copy of the state but the seed plus the command log, and loading replays it to rebuild the state. Undo uses the same machinery rather than keeping a separate state. Combat is deliberately dice-free, and the preview shown before an attack is the very calculation the engine applies — writing a separate estimate function would have opened the one door through which preview and outcome could drift apart. The board is drawn with ordinary components rather than a canvas, which lets the grid expose a meaningful structure to a screen reader.

The game design is built on cutting scope to fit the constraint: there are five units, five buildings, four terrain types and three resources, and every entry has a job you can tell apart on the board. The opponent AI ships as nine profiles across three personalities and three difficulty tiers, is subject to the same fog the player sees, and does no hidden cheating — the +5 production / +5 food head start the Hard tier receives is stated on the setup screen. The in-game guide was written not as separate prose but as a content layer that reads its numbers straight from the balance data, so a balance change cannot leave a stale rule in the guide. The project is published in Turkish and English, all interface copy lives in a shared translation package, and a test enforces that both languages carry the same key set. An Expo client sharing the same core also lives in the repository; it has not shipped to the stores yet. Development continues.

Feeds into: JavaScript Developer

More Projects

All projects
The SilkWard board — a preview of a node-and-edge graph where the enemy advances by the same deterministic rule as the player, with solver-cli measuring level difficulty via BFS

SilkWard

Ongoing

Designer & Developer

Tier: Minimal Maintenance

SilkWard is an offline puzzle game that resolves 36 levels plus 6 hidden levels on a node-and-edge board through entirely deterministic moves. A single TypeScript core feeds the web (PWA) and mobile (Expo) clients at once; level difficulty is measured by the minimum move count the solver-cli tool finds via BFS. It is playable today at silkward.com.

TypeScript Next.js React +3 more
September 2026 — Ongoing
The SysAdmin Crisis terminal — a preview of an executed block_ip command, its man page opening, and the CI checks alongside the night shift's seven event types

Designer & Developer

Tier: Minimal Maintenance

SysAdmin Crisis is a night-shift simulation solved with 29 gamified Unix commands, including real flags, Tab completion and man. The web (PWA) and mobile (Expo) versions share the same game engine; zero data collection is a constraint tied to the build chain. It is playable today at sysadmincrisis.com.

TypeScript Next.js React +3 more
September 2026 — Ongoing
InitPHP cover — a composer install and usage snippet alongside a grid of over 30 modular PHP packages

InitPHP

Ongoing

Founder & Developer

Tier: Minimal Maintenance

I published a minimalist MVC framework (Framework3) alongside 30+ modular PHP libraries (Router, Database, Cache, Mailer, Socket, ...) under a single ecosystem; all packages are available on Composer/Packagist under the MIT license. The codebase complies with PHP-FIG standards and is backed by type safety, PHPUnit tests, extensive documentation, and examples.

Composer Git PHPUnit +1 more
August 2022 — Ongoing

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind