Download

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.

-Camille

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