Dark-fantasy arena combat
Wendlemire
Anatomical body-part simulation, async PvP by build snapshot, and a server that refuses to boot if the replay is not deterministic.
Iron, chain, and steel that remembers a fight.
Wendlemire is a dark-fantasy arena game with a combat model that treats a pawn as a socketed tree of limbs, organs, arteries, and bone. Damage severs, bleeds, and cascades. A med kit is for patching the meat.
The simulation library is shared by the MonoGame client and the ASP.NET server. On startup the server runs CombatReplay.AssertDeterministic() and dies if two seeded runs diverge. Async PvP works by posting a build snapshot; the server picks an opponent from the pool, simulates the duel, and stores the analytics.
Content is data, not hard-coded: hundreds of XML defs for items, pawns, zones, and body generators. Balance is a harness — seed sweeps, archetype matrices, explicit knobs. Deploy is one PowerShell command to a Hetzner VM with Caddy, a persistent volume, and Cloudflare DNS.
What holds
- Shared deterministic sim; server refuses to boot on replay divergence
- Hierarchical body-part combat with sever, bleed, and organ crises
- Async PvP via build snapshots — no real-time netcode required
- Automated Monte Carlo balance reports across archetype matchups
- One-command Hetzner provision, TLS, and client zip distribution
Stack
C# / .NET 10 · MonoGame · ASP.NET Core · Hetzner + Caddy