How mirbeta/openmir2 works
OpenMir2 is a multiplayer Legend of Mir 2 server. The documented player flow is login through LoginGate/LoginSrv, character selection through a separate gateway, then game traffic through GameGate to GameSrv. GameSrv hosts the world and gameplay systems; DBSrv provides persistence. The tree contains CloudGate but not a SelGate-named project, so its character-selection role is not assumed. The README establishes service responsibilities and forwarding; sampled excerpts show storage, scripting, magic, and gateway behavior, but do not establish all inter-service wiring.
Main entry points: PlayObject.cs World engine · Pipeline.cs Map pipeline · LoginGate/AppService.cs LoginGate · CloudGate/AppService.cs CloudGate
Components 21
Client gateways
Accounts and data
- LoginSrv
src/LoginSrv/Services/LoginServer.cs - Account storage
src/LoginSrv/Storage/AccountStorage.cs - DBSrv
src/DBSrv/AppService.cs - Character storage
src/Storeages/DBSvr.Storage.MySQL/PlayDataStorage.Save.cs
Game runtime
- GameSrv
src/GameSrv/GameServer.cs - World engine
src/M2Server/Player/PlayObject.cs - Map service
src/MapSrv/AppService.cs
Game features
- Magic system
src/M2Server/Magic/MagicManager.cs - NPC scripts
src/Modules/ScriptEngine/ScriptEngine.cs - Game commands
src/Modules/GameCommand/GameCommand.cs - Chat module
src/Modules/ChatSystem/ChatService.cs - Market system
src/Modules/MarketSystem/Services/MarketService.cs - Robot system
src/Modules/RobotSystem/RobotProcessor.cs
Supporting services
- ChatSrv
src/ChatSrv/AppService.cs - LogDataSrv
src/LogDataSrv/AppService.cs - Map pipeline
src/MapSrv/Pipeline.cs
Other components
- Game clients
- Map pipe clients
Connections 17
- Game clients → LoginGate: login traffic
- LoginGate → LoginSrv: forwards login
- LoginSrv → Account storage: reads and updates
- Game clients → CloudGate: character traffic
- CloudGate → DBSrv: character requests
- DBSrv → Character storage: persists characters
- Game clients → GameGate: game traffic
- GameGate → GameSrv: forwards player data
- GameSrv → World engine: runs world
- World engine → Magic system: uses spells
- World engine → NPC scripts: runs NPC scripts
- World engine → Game commands: dispatches commands
- World engine → Chat module: uses chat
- World engine → Market system: uses market
- World engine → Robot system: runs robots
- Map pipe clients → Map pipeline: connects by pipe
- Map pipeline → Map pipeline: reads and replies