Sign In Register

How can we help you today?

Start a new topic
Answered

Unreal Engine 4 Networking VS GameSparks Real Time

Hello all,


I've been trying GameSparks for a week now and I found it a great tool. But I've been trying to study which real time multiplayer way to go, UE4's dedicated server for multiplayer, or GameSparks' real time service? (Making a third person shooter)


What I found is that UE4's multiplayer is easier to implement since all that happens on the client is replicated on the server, so it is easier to handle everything.

While GameSparks' real time is great, but there's a lot of things that need to be tweaked in order to make things look good. For example if the player moves, he sends his new location to the other clients, and in order to make it seem real you'll have to either send a lot of animation and transform data, or you have to predict the animations and lerp the movements etc...


I wanted to know other people's opinion based on their experience with GameSparks real time and UE4's server multiplayer, maybe there is a feature I'm missing, or maybe something else that I'm wrong about.


Thank you,


Elie


Best Answer

Hi Elie, 


While GameSparks' Realtime means there's no need to setup servers and upload game instances it also means doing everything manually, including replication, animation and transform data as you stated. We built the Realtime SDK to assist smaller games, with minimal data to and fro from clients. We also built it agnostically of any engine, which means that for every engine it works the same way which means it would lose on things like in built networking layers. 

I'd base the answer on the amount of data, kind of game and your dependency on Unreal's base classes (Example Character class). If you've got an RTS or FPS with a lot of raw data moving up and down that wouldn't be optimal for the architecture of the Realtime SDK which is intended for smaller packets (It can handle bigger packets but we never tested or design the SDK this way). If you depend a lot on physics, and native variables hidden in the engine it would be very difficult to replicate them and might require you to write a lot of code to make these variables replicated while its very easy to do this using Unreal.


It's not difficult to replicate a lot of information using GameSparks, but it requires a lot of time, testing and rewritting for you to do so at the level that Unreal's networking layer does it. It could get complicated fast and if you run into bugs there will be many places to look to find what's causing it.

Whatever Unreal's network layer does, you can do with GameSparks, but it is the effort and future complications that you have to keep in mind. 


Answer

Hi Elie, 


While GameSparks' Realtime means there's no need to setup servers and upload game instances it also means doing everything manually, including replication, animation and transform data as you stated. We built the Realtime SDK to assist smaller games, with minimal data to and fro from clients. We also built it agnostically of any engine, which means that for every engine it works the same way which means it would lose on things like in built networking layers. 

I'd base the answer on the amount of data, kind of game and your dependency on Unreal's base classes (Example Character class). If you've got an RTS or FPS with a lot of raw data moving up and down that wouldn't be optimal for the architecture of the Realtime SDK which is intended for smaller packets (It can handle bigger packets but we never tested or design the SDK this way). If you depend a lot on physics, and native variables hidden in the engine it would be very difficult to replicate them and might require you to write a lot of code to make these variables replicated while its very easy to do this using Unreal.


It's not difficult to replicate a lot of information using GameSparks, but it requires a lot of time, testing and rewritting for you to do so at the level that Unreal's networking layer does it. It could get complicated fast and if you run into bugs there will be many places to look to find what's causing it.

Whatever Unreal's network layer does, you can do with GameSparks, but it is the effort and future complications that you have to keep in mind. 

Thank you for you answer.


My game depends a lot on physics since there will be spell casting and such, so I guess that Unreal's networking layer is best for my game, makes implementing my game much more easier. I liked the GameSparks' Realtime SDK, but I really don't wanna spend a lot of time scripting the animations and physics (Why to reinvent the wheel? :p).


My only concern then is that I will be obliged to rent a server, which I wouldn't have needed to if I was using GameSparks' Realtime SDK.

Login to post a comment