Unreal Engine 4 Networking VS GameSparks Real Time
E
Elie El Maalouly
started a topic
about 6 years ago
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
T
Tech Support
said
about 6 years ago
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.
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.
E
Elie El Maalouly
said
about 6 years ago
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.
Elie El Maalouly
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
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.
- Oldest First
- Popular
- Newest First
Sorted by Oldest FirstTech Support
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.
Elie El Maalouly
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.
-
Documentation Notes
-
Design issues with user events
-
Using NoSQL
-
Runtime Collections vs Metadata Collections
-
Anonymous authentication from browser app
-
Modules
-
Movement With Unity
-
Problem with url parameters for downloadables
-
Querying NoSql GameSparks database
-
Challenge accesType
See all 2487 topics