Skip to main content

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.

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.

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

1

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.
2

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.
3

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.
4

Connect the UE5 client

Open MMOClient1/MMOClient1.uproject in Unreal Engine 5.4. Point AuthClientSubsystem at your AuthServer URL and GameClientSubsystem at the game server address, then Play In Editor.
The GameServer is a Windows-only binary that relies on WinSock2 IOCP APIs (CreateIoCompletionPort, AcceptEx, DisconnectEx). Linux is not supported.

Build docs developers (and LLMs) love