This guide walks you through every step needed to run all components of the UE5 IOCP MMO Server on a single Windows development machine — from cloning the repository and standing up the Docker infrastructure through launching the C++ game server and connecting with the Unreal Engine 5.4 client. The whole stack (excluding the Unreal Editor compile) should be up in under ten minutes.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.
Prerequisites
Before you start, make sure all of the following are installed and working:Windows 10 / 11
Required — the IOCP game server uses
WinSock2, MSWSock, and Windows kernel completion-port APIs that do not exist on other platforms.Visual Studio 2022
Open
ServerSolution/ServerSolution.sln. The C++ project targets the MSVC toolset with Windows SDK headers for WinSock2 and MSWSock..NET 8 SDK
Required to build and run the ASP.NET Core AuthServer (
ServerSolution/AuthServer/). Download from dot.net.Docker Desktop
Runs MariaDB 11, Redis 7, Prometheus, and Grafana as containers defined in
ServerSolution/Infra/docker-compose.yml.Unreal Engine 5.4
Install via the Epic Games Launcher. The
.uproject file pins "EngineAssociation": "5.4".protoc (optional)
Only needed if you modify
ServerSolution/ServerSolution/Proto/Packet.proto. Install the Protocol Buffers compiler and regenerate both C++ and client stubs together.Clone the Repository and Open the Solution
Clone the repository and open the Visual Studio solution:Open
ServerSolution/ServerSolution.sln in Visual Studio 2022. The solution contains two projects:- ServerSolution — the C++ IOCP game server
- AuthServer — the ASP.NET Core 8 auth service
Start the Infrastructure with Docker Compose
The Docker Compose file at Edit Then bring the stack up:This starts four containers:
MariaDB schema migrations in
ServerSolution/Infra/docker-compose.yml defines MariaDB 11, Redis 7, Prometheus, and Grafana. It requires an .env file with secrets before it can start.Copy the example file and fill in your passwords:.env with your chosen passwords:| Container | Port | Purpose |
|---|---|---|
serversolution-mariadb | 3306 | Game database (auto-initialised from mariadb/init/) |
serversolution-redis | 6379 | Token store |
serversolution-prometheus | 9090 | Metrics collection (scrapes GameServer on :9108) |
serversolution-grafana | 3000 | Dashboard UI (default user: admin) |
ServerSolution/Infra/mariadb/init/ are applied automatically on the first container start.Configure and Run the AuthServer
The AuthServer reads its database connection string and Redis address from Then run the AuthServer:By default the service listens on
ServerSolution/AuthServer/appsettings.json. Open the file and set the Database.ConnectionString to point at the MariaDB container:http://localhost:5000. Verify it is healthy:Configure and Build the C++ GameServer
The GameServer reads database and Redis credentials from two INI files at startup. Copy the example files and fill in your values:Edit Edit Back in Visual Studio 2022, set the ServerSolution project as the startup project, select the Release | x64 configuration, and build (
Database.ini:Redis.ini:Ctrl+Shift+B). Then run ServerSolution.exe from the output directory (or press F5 from VS).The server will log its bind addresses and begin accepting connections on TCP and UDP port 7777, and expose Prometheus metrics on port 9108.Open and Run the UE5 Client
Open
MMOClient1/MMOClient1.uproject with Unreal Engine 5.4. Unreal may prompt you to compile C++ modules — allow it.Before hitting Play In Editor:- Locate the
AuthClientSubsystemsettings (or the relevant configuration asset/Blueprint variable). - Set the AuthServer URL to
http://localhost:5000. - Ensure
GameClientSubsystemis configured to connect to127.0.0.1:7777after a successful server selection.