How maxnest0x0/rysteria works
Rysteria is a multiplayer game with a browser/native client, authoritative game servers, and a JavaScript master server for account and server coordination. The main player workflow runs from client input through a live game-server session and back to client rendering; the server also simulates game state and manages squads. The tree identifies UI, persistence, and shared game-model layers. Sampled excerpts are partial, so some subsystem connections—especially master-server dispatch and unsampled game systems—are intentionally left unwired. The map editor and rarity balancer are separate tools.
Main entry points: Main.c Client runtime · Server.c Session server · main.js Master service · Socket.c Network socket
Components 24
Game client
- Client runtime
Client/Main.c - Input capture
Client/InputData.c - Game state
Client/Game.c - Client simulation
Client/Simulation.c - Rendering
Client/Renderer - Game interface
Client/Ui - Network socket
Client/Socket.c - Account cache
Client/Storage.c
Game server
- Server entry
Server/Main.c - Session server
Server/Server.c - Client sessions
Server/Client.c - World simulation
Server/Simulation.c - Squad management
Server/Squad.c - Update protocol
Server/UpdateProtocol.c
Shared game model
- Entity components
Shared/Component - Shared protocol
Shared/Api.c
Accounts and coordination
- Master service
MasterServer/main.js - Game connection data
MasterServer/client.js
Game tools
- Map editor
MapEditor/app.js - Drop balancer
Balancer/index.js
Other components
- Player
- Browser storage
- Rivet services
- Tool user
Connections 22
- Player → Client runtime: plays
- Client runtime → Input capture: captures input
- Client runtime → Game state: runs client
- Client runtime → Client simulation: runs simulation
- Client runtime → Rendering: renders with
- Client runtime → Game interface: presents interface
- Client runtime → Network socket: connects through
- Client runtime → Account cache: caches account
- Account cache → Browser storage: reads and writes
- Network socket → Session server: exchanges game data
- Server entry → Session server: initializes and runs
- Session server → Client sessions: manages sessions
- Session server → World simulation: runs world simulation
- Session server → Squad management: handles squad requests
- Session server → Update protocol: encodes updates
- World simulation → Entity components: updates entities
- Update protocol → Entity components: serializes state
- Session server → Shared protocol: uses protocol
- Master service → Game connection data: creates connection data
- Master service → Rivet services: calls service API
- Tool user → Map editor: edits maps
- Tool user → Drop balancer: tunes drop rates