Building a designer-friendly gameplay framework with replication in mind

Unreal Engine C++ Multiplayer

Unreal Engine 🖤 C++

After studying various parts of Unreal Engine, it was time to dive deep into C++ and my favourite part of any game I personally play: multiplayer. Over the course of the next 8 months, I managed to get a good grasp of the engine's workings, replication and the gameplay framework.

FAQs

How long did you work on this project for?

I started working on this project in March of 2024 and finished the last touches in late October of the same year. All in all, 8 months.

What made you do this?

Sticking to my plan of learning Unreal Engine, this was the obvious step after studying most other aspects of the engine to some level. I wanted to get a deeper understanding of how the gameplay framework, their lifecycles, and other systems worked. Plus, I wanted to know if I could do multiplayer. :)

Was this entirely self-taught?

Not entirely. I enrolled in Tom Looman's "Professional Game Development in C++ and Unreal Engine" course, as it was best oriented for people proficient in programming and already familiar with the engine. Although I put in at least the same amount of time into individual learning as I did with the coursework.

What parts are you most proud of?

Usually I mention a feature or two in these sections, but this time, I'll have to say architecture and code quality. Even though the coursework provided great guidelines, the quality of the end product often felt lacking, so I put a substantial amount of work into bringing the quality onto a level I was truly proud of. I loved this.

What about challenges?

It has to be multiplayer, without a question. Replication was such a different way of thinking and writing code, that it was truly mind-boggling at first, and even the simplest tasks seemed daunting in a server-authorative model. I think the replicated gameplay class instances chart will forever be etched into my whiteboard now. :)

Did you manage to develop all the features you wanted?

I think so. There’s always something to add, but I’m happy with my feature list.

Can I see the code and check it out myself?

Yeah! You can find the project on GitHub, and should be able to build it with UE 5.2 and above.

 Features