# How Lantern Vale Studios Built a Deterministic Co-op Roguelike

Lantern Vale Studios is a five-person indie team developing *Ash Circuit*, a two-player action roguelike about repairing machines inside a collapsing orbital refinery. The game began as a single-player prototype in Godot, but strong playtest feedback pushed the studio toward online co-op. That decision affected nearly every system, from enemy behavior to procedural generation.

## Networking Without a Dedicated Server

To keep hosting costs manageable, the team chose a peer-to-peer model with one player acting as the authority. Clients send compact input frames rather than complete character states, while the host validates movement, resolves combat, and broadcasts snapshots ten times per second. Remote entities are interpolated between snapshots, and local movement uses prediction with reconciliation when the host disagrees.

```ini
[network]
snapshot_rate=10
input_buffer_ms=100
max_rollback_frames=8
```

The hardest problem was making procedural rooms deterministic. Early builds generated different collision layouts for each player because some scripts consumed random values in a different order. Lantern Vale replaced global random calls with seeded generators scoped to individual systems, allowing level geometry, loot, and enemy placement to reproduce independently from the same run seed.

## Keeping Content Production Sustainable

With only one full-time artist, the studio built environments from reusable wall, floor, pipe, and machinery modules. A custom editor tool checks socket alignment, missing collision shapes, and navigation gaps before a room can be exported. This validation added several days to the pipeline initially, but it now catches most integration errors before a designer launches the game.

## Profiling on Modest Hardware

Performance targets are based on an older laptop with integrated graphics rather than the developers’ desktop machines. Automated test runs spawn worst-case enemy waves and record frame time, physics cost, memory usage, and draw calls. The team treats any sustained frame above 16.7 milliseconds as a regression, which has encouraged simpler shaders, pooled effects, and stricter limits on dynamic lights.

## Shipping Small, Testable Builds

Lantern Vale releases an internal build every evening and a closed playtest build every two weeks. Crash reports include the run seed, room identifier, network role, and recent gameplay events, making intermittent bugs easier to reproduce. For a small studio, the most valuable technical investment has not been a sophisticated engine feature, but a development loop that turns player reports into repeatable test cases.