A custom C++ server for the Unreal Engine 5, optimized for MMO(RPG)s

Also covered and discussed on reddit.

My presentation shows a custom server for Unreal Engine 5 that I implemented as a side project. Unlike a Unreal-based solution, the server is capable of hosting multiple maps (levels/shards/layers) at the same time, with low resource consumption.

In addition, the server can update many independent maps and their contents in parallel, making optimal use of modern multicore systems.

A notable feature of our server is the ability to script AIs using C++20 coroutines. By using an entity component system, the server is potentially safe from crashes, as dangeling pointers and other lifecycle issues almost never occur.

Implementing a custom NetDriver for Unreal gave me a lot of insight into its networking architecture. Although the UE network and replication driver is highly optimized for real-time action games such as Fortnite, I am skeptical of its application in MMO(RPG)s.

My presentation includes:

  • A technical overview of the server
  • Replicated movement & player interaction
  • Combat, AI & NPC interaction
  • Data export from UE to the server
  • Server navigation mesh & physical materials
  • Physical material based random spawning.

C++ libraries used (incomplete list):

TL;DR: I have implemented my own C++ server backend for Unreal that is optimized for MMO(RPG)s. Lots of working features: replicated movement, C++ AIs, combat and navigation mesh support.

4 Likes

Do you plan to put it on the marketplace?

I haven’t thought about releasing it on the UE marketplace yet, mainly because the codebase is quite complicated and not easy to set up. What parts of the project would you be most interested in?

it would be interesting to have your solution working out of the box, with documentation on connecting another client side, in order to immediately write server-side gameplay logic without worrying about other things. I think a lot of people would like to make MMOs and not invent their own server from scratch, but a dedicated server UE is not suitable for MMOs

I have been working on a mmorpg solution for unreal engine 4/5 however ours has been written in golang. I’m very interested in getting to talk to you about some general information.