The UE5 IOCP MMO Server is a complete multiplayer backend stack built for Unreal Engine 5 games. The C++ game server uses Windows I/O Completion Ports (IOCP) for high-throughput asynchronous networking, handling up to 10,000 concurrent TCP sessions alongside a low-latency UDP channel for movement replication. An ASP.NET Core authentication service manages accounts, tokens, and server selection, while MariaDB and Redis back persistence and session state.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/kenzz55/ue5-iocp-mmo-server/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
Learn what the server does, what technologies it uses, and how the pieces fit together.
Architecture
Explore the three-tier architecture: Unreal client → AuthServer → IOCP GameServer.
Quickstart
Stand up MariaDB, Redis, the AuthServer, and the GameServer locally in minutes.
Packet Protocol
Full reference for every protobuf packet ID used by the TCP and UDP transports.
What’s Inside
IOCP Network
Windows IOCP async I/O, worker threads, and session pooling.
Movement Replication
Hybrid TCP/UDP movement with AoI batching and client prediction.
Game Simulation
Fixed-interval tick loop, command queue, and server-authoritative physics.
Auth Flow
Register, login, server selection, and enter-game token handshake.
Inventory
Revision-based optimistic concurrency for item moves and consumables.
Monitoring
Prometheus metrics endpoint, Grafana dashboard, and CSV perf logs.
Getting Started
Start the infrastructure
Run
docker compose up -d in ServerSolution/Infra/ to start MariaDB and Redis. The database schema is applied automatically from the mariadb/init/ SQL files.Configure and run the AuthServer
Set the MariaDB connection string and Redis address in
ServerSolution/AuthServer/appsettings.json, then run dotnet run from the AuthServer/ directory. The server starts on port 5000 by default.Configure and run the GameServer
Copy
Database.example.ini to Database.ini and Redis.example.ini to Redis.ini, fill in your credentials, build the Visual Studio solution in Release mode, then launch ServerSolution.exe. The server listens on TCP/UDP port 7777 and exposes Prometheus metrics on port 9108.The GameServer is a Windows-only binary that relies on WinSock2 IOCP APIs (
CreateIoCompletionPort, AcceptEx, DisconnectEx). Linux is not supported.