-
Notifications
You must be signed in to change notification settings - Fork 30
Dedicated Server: standalone game loader with web visualizer #383
Copy link
Copy link
Open
Description
Summary
Implement a standalone dedicated server that loads ONI game DLLs without the full Unity game binary.
Related community requests: #60, #380
Architecture
- Console .NET app (
net48) loadsAssembly-CSharp.dllvia Mono runtime - Harmony patches replace Unity
InternalCallmethods (reuses test infrastructure fromMultiplayerMod.Test) - Boots game world: Grid, singletons, state machines — no rendering required
- HTTP server (
HttpListener) exposes world state API - Web visualizer (React + Canvas 2D) renders the world in-browser
Current Status
Phase 1: Web Visualizer ✅ (PR #384, merged)
- HTML Canvas world renderer with element/temperature/mass overlays
- Zoom, pan, cell tooltips
Phase 2: Game DLL Loader ✅ (PR #385)
- Loads all 191 elements from game YAML
- Real WorldGen (SandstoneDefault, 256x384, seed-based)
- SimDLL physics simulation running headless
- Standalone Mono execution (no test runner needed)
Phase 3: World Simulation ✅
- SimDLL ticking at 200ms intervals
- Grid pointers wired to DLL-owned memory
- Real biomes, temperature, mass from physics engine
Phase 4: Multiplayer (planned)
- WebSocket transport for client connections
- Command synchronization
- Multiple connected visualizer clients
Run
export ONI_STREAMING_ASSETS="path/to/OxygenNotIncluded_Data/StreamingAssets"
arch -x86_64 mono DedicatedServer.exeReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels