Unreal MMO Development with Yaz

UE5 MMO Devlog 86 – Refactoring character to C++

MMO Devlog 86: Refactoring Character to C++

Hey everyone — it’s been about a month since the last update, and quite a lot has changed behind the scenes.

This post focuses on one of the biggest technical improvements: a full refactor of the character system, why it took so long, and what it unlocks going forward.


What We Had Before

Previously, the character system was built entirely in Blueprints, using a layered hierarchy:

It worked — but it wasn’t ideal:


What Changed

We refactored the system into C++ with config-driven design, exposing only two main Blueprints:

Everything else is now driven through structured data.


Why Move to C++?

Short answer:

Blueprints can handle this — but as complexity grows (especially in an MMO), it becomes harder to maintain and extend efficiently.


Config-Driven Characters

Instead of creating new Blueprint classes for every variation, we now define things through templates/configs.

1. Player Race Template

Defines valid combinations like:

Adding a new race (e.g. Orc, Dwarf) is now just:
→ Add a new config entry

It also allows flexibility:


2. Player Appearance Template

This is the core of character setup.

Each entry defines:

This enables:


Animation System Refactor

Animations are now also config-driven.

Instead of hard references:

Examples:

Other systems (skills, items, etc.) simply call:

“Play animation with key X”

They don’t need to know:

This decouples:


In-Game Improvements

Functionally, things work as before — but with improvements:


Why It Took So Long

This wasn’t a small change.

The character system is core to everything, so refactoring meant:

That’s why it took ~1–1.5 months.


What This Unlocks

Now that this is done:

This is one of those changes that slows you down short-term, but massively speeds things up long-term.

Exit mobile version