Roadmap
What's done, what's next, what's planned. No fixed dates — this moves when it moves.
Done
These ship today. Use them.
Networking
- WebSocket, TCP, UDP transports (switchable via config)
- Multi-transport: run TCP + UDP + WebSocket simultaneously
- MessagePack and JSON codecs
- Portal/Gate event routing
- Client, Room, Broadcast, Synchronize routers
- Session management with lifecycle hooks
Security
- JWT authentication with refresh tokens
- Shield-based authorization (HTTP + realtime)
- Session upgrade flow (HTTP login → realtime handshake)
- Configurable auth pipeline
Persistence
- Vault ORM with Postgres support
- Prefab system (nested entity persistence)
- Autosave with configurable intervals and batch writes
- Database initializers, lifecycle hooks
- UORM query builder
Game Engine
- Fixed-timestep game loop (configurable Hz)
- 3D world system with spatial partitioning
- World loading from JSON (Unity export compatible)
- Zone management with spatial lookups
- Visibility tracking (automatic spawn/despawn)
- Entity synchronization with delta compression
- Entity hibernation (sleep when no players nearby)
Physics
- BEPU physics integration (3D)
- Kinematic character controller (movement, gravity, slopes, wall sliding)
- Collision system with handler registry (Enter, Stay, Exit, Hit)
- Collision layers with bitmask filtering
- Heightmap-based spatial queries (physics-free alternative)
- Terrain provider interface for walkability grids
Combat
- Attack, Sweep (AoE), ApplyDamage, Kill
- Sphere, cone, line sweep queries
- Pluggable damage calculator
- Event hooks: OnHit, OnDeath, OnSweep
AI
- Attribute-based FSM (
[AIBehavior],[AIState], Enter/Exit hooks) - State delay, TimeInState tracking
- Multiple behavior types per game
- Auto-discovery and compiled delegates
Inventory
- Grid, Slot, and Equipment container types
- Item templates with JSON loading
- Move, equip, unequip, use, drop, pickup operations
- Extensible portal with Gate handlers
Deployment
- Multi-channel server support via Docker Compose
- Postgres read replicas and Redis clustering
- Batch DB writes for high player counts
DI & Config
- Attribute-based auto-wiring (
[Service],[PostConstruct]) - YAML config with environment overrides
- Conditional registration (
[ConditionalOnConfig])
In Progress
Things being actively worked on.
- Documentation — you're reading it. Filling gaps, adding examples, client packet references for all languages
- Test coverage — integration tests for networking, combat, inventory flows
- Performance tuning — tick thread partitioning per zone, connection pool optimization
Next Up
Planned but not started. Order may change.
- Matchmaking — room creation, joining, match lifecycle, party support
- Chat system — global, room-based, whisper, command support, rate limiting
- Lag compensation — server-side rewind for hit validation
- Projectile system — server-authoritative projectile tracking with prediction
- Quest system — objective tracking, rewards, persistence
Later
No timeline. Will happen when the above is solid.
- Multi-region server support — cross-server player handoff, cluster load balancing
- Scripting API — runtime game logic via C# hot-reload or scripting layer
- Anti-cheat — server-authoritative validation for movement, combat, inventory
- 2D physics — Box2D integration for 2D game support (partial groundwork exists)