Scriptable Headless Player Bots and independent ECS in a Custom UE C++ Server for MMO(RPG)s

Also covered and discusse on reddit.

In June, I first presented you my implementation of a custom C++ server for the Unreal Engine (https://www.reddit.com/r/unrealengine/comments/v3rvrq/a_custom_c_server_for_the_unreal_engine_5/). Since there was a lot of interest in this topic, I decided to share the current progress with you again.

My presentation shows a custom server for Unreal Engine 5 that I implemented as a side project. Unlike an 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.

The outstanding features in this particular presentation are the introduction of a fully ECS-driven client layer that makes it possible to spawn many headless player (bot-driven) clients for benchmarking and testing, that work without the Unreal Engine. This presentation shows this on the example of 100 spawned player bots that gather resources automatically.

Dynamic and replicated meshes are automatically placed as instanced static meshes by our custom NetDriver whenever possible. In this presentation around 4000 replicated randomly spawned resources are shown in one scene. The NetDriver then converts an instanced static mesh to an Actor automatically if required (e.g. through interactions).

Additionally, this presentation shows smaller gameplay-related features, like an inventory system, equipment system and progression trees.

My presentation includes:

  • Overview of the full UE ECS Rewrite
  • Scriptable Player Bots
  • UI Window container system
  • TypeScript & Reloableable React UIs
  • Inventory & Character Equipment
  • Skills & Progression Tree system

C++ libraries used (incomplete list):

TL;DR: Presentation of the latest progress of my own C++ server backend for Unreal, that is optimized for MMO(RPG)s. Scriptable player bots and standalone client-layer. Presentation of other gameplay-related features, like an inventory system, equipment system and progression trees.

2 Likes

Hey there @Naios,

Hope you’re doing well!

As an MMORPG fanatic, I love seeing tech like this. Anything that widens the possibility for world PvP I’m all for it! Do you plan on creating a game alongside this or will it just be a focus on this project for now? :slight_smile:

I’m glad you like it. I’m currently not planning to create a particular game out of this, mainly because doing the content would be gigantic work (especially when doing it solo). Currently, it goes more in the direction of a sandbox or framework.

I’m developing everything as a system which makes it much easier to insert data later if required. For instance abilities, loot tables, items, and skills are specified in data-only blueprints and can be prototyped quickly. (It takes like 30 seconds to create a new basic ability or item).

I think it is way better to explore the limits of the technology first before deciding on a particular game. The implementation of many great ideas failed due to the overwhelming content load, additionally having to carry a lot of content around, makes refactoring much harder.

I personally prefer PVE content, but PVP content could be supported and developed with it as well. It’s usually just super hard to balance abilities around a game where PVP and PVE are supported likewise.