Show HN: Conlyse – replay recorder and viewer for a browser strategy game

zdox1 pts0 comments

Conflict of Nations is a real-time browser strategy game that has no official replay system. We built one. The stack: a headless Rust service joins games as a guest observer and publishes raw server responses to a Redis stream. A Python daemon consumes that stream and assembles them into .conrp files, a patch-based format where each entry is a diff against the previous state, compressed with zstd. Because the patches are stored bidirectionally, the replay interface can jump to any timestamp in either direction without reconstructing from scratch. A FastAPI service handles auth, RBAC, and pre-signed MinIO download URLs for the replay files. The desktop client is PySide6 + OpenGL — the map renderer handles zoom, pan, and three map views (political, terrain, resource).The conflict-interface library that drives all of this is in Python with C++ extensions (pybind11) for the hot paths in patch application and state reconstruction.This is entirely unofficial, the observer joins games using the same HTTP API the browser client uses. You can try the desktop without running the backend: grab the pre-built binary and the sample .conrp from the releases page and it works standalone. https://docs.conlyse.zdox.dev/docs/desktop goes through it step by step.

replay desktop docs conlyse browser strategy

Related Articles