How morketh/server works
MaNGOS Three is a Cataclysm 4.3.4 World of Warcraft server. Its main workflow separates realm login from the world server: clients authenticate and select a realm, then interact with the world through session handlers that query game data and return protocol packets. The world daemon starts the master runtime; shared database services and game-data storage support that runtime. The README establishes the product scope, while sampled sources show startup, query handling, storage, and VMap internals; unsampled gameplay links are left unasserted.
Main entry points: mangosd World runtime · QueryHandler.cpp Protocol queries · Main.cpp Realm daemon · DatabaseEnv.h Database services
Components 18
Realm access
- Realm daemon
src/realmd/Main.cpp - Login protocol
src/realmd - Realm directory
src/realmd
World runtime
- World daemon
src/mangosd/Main.cpp - World runtime
src/mangosd - Game sessions
src/game - Protocol queries
src/game/QueryHandler.cpp - Battlegrounds
src/game/BattleGround/BattleGroundHandler.cpp - Spawn pools
src/game/PoolManager.cpp - Script bindings
src/bindings/universal/ScriptMgr.cpp - Game packets
src/shared/WorldPacket.h
Game data
- Object catalog
src/game/ObjectMgr.h - SQL data cache
src/shared/Database/SQLStorage.h - SQL storage loader
src/shared/Database/SQLStorageImpl.h - Database services
src/shared/Database/DatabaseEnv.h
Spatial services
- Collision manager
src/game/vmap/VMapManager2.cpp - Navigation queries
dep/recastnavigation/Detour/Source/DetourNavMeshQuery.cpp
Other components
- WoW client
Connections 18
- WoW client → Login protocol: authenticates
- Realm daemon → Realm directory: initializes
src/realmd/Main.cpp - Realm daemon → Database services: connects login DB
src/realmd/Main.cpp - Realm daemon → Login protocol: starts listener
src/realmd/Main.cpp - WoW client → Game sessions: plays through
- World daemon → World runtime: runs
src/mangosd/Main.cpp - Protocol queries → Object catalog: looks up objects
src/game/QueryHandler.cpp - Protocol queries → Database services: queries data
src/game/QueryHandler.cpp - Protocol queries → Game packets: builds responses
src/game/QueryHandler.cpp - Game sessions → Protocol queries: dispatches handlers
src/game/QueryHandler.cpp - SQL storage loader → Database services: loads rows
src/shared/Database/SQLStorageImpl.h - SQL storage loader → SQL data cache: fills records
src/shared/Database/SQLStorageImpl.h - Object catalog → SQL data cache: uses cached data
- World runtime → Battlegrounds: hosts gameplay
- World runtime → Spawn pools: hosts gameplay
- World runtime → Script bindings: hosts scripting
- World runtime → Collision manager: uses collision
- Collision manager → Navigation queries: uses navigation