Custom networking module

Hello, Unreal community!

I am not sure about where to post this, because it’s not too much about gameplay code but rather closer to the engine layer. If I chose the wrong section feel free to move or delete this topic.

So after a long time considering possibilities, I stopped working on my own engine and started to study this one, considering how I will implement the stuff my game idea needs. The most important feature I want to implement is [ONLINE]. Said that, this has been my focus of study in the last couple days when checking out the source code and example games. I liked the replication module, it’s cool, but I am not sure if it will be enough for a fully online game with ambitious goals. Wouldn’t it have security pitfalls? Also, I’m much more comfortable with the traditional, lower-layer way: dedicated server done from scratch and the communication through encrypted binary packets with opcodes.

And my question is: does anything like this exist in the engine? If not, what would be the best way to approach it? I just need a way for the clients (Unreal) to connect to a non-unreal server and communicate with it through a low layer approach (byte buffers/char arrays).

Thank you.

I think there is nothing that you can’t do with the current networking solution.

The function replication is similar to the “traditional” methods.
Also you can set a variable repnotify so you don’t need opcodes and such things.

Still, I would prefer to use my own framework for the networking part, because in online games security is the most important thing and by using a set of utilities which I still don’t even know how to use this will be impossible to achieve (not Unreal’s fault but mine)… Plus I have my own networking framework already.
All I need to know is what is the best way to implement such a module in a UE4 client. I can do a separated class using the engine’s lower level networking utilities, but where do I store and initialize/release its singleton? In the game instance?

Hmmm

My approach would be to write a plugin. To initialize/release singletons i think the best place would be to override the **StartuModule ** and **ShutdownModule ** methods.

Docs:
https://docs.unrealengine.com/latest/INT/API/Runtime/Core/Modules/IModuleInterface/index.html

For singleton, you can let the engine manage one for you. Look into the GameSingletonClassName and GameSingleton engine properties.

Thanks for your help, you’ll have news from my team in the coming months :slight_smile: