Download

Large scale networking - The neverending story

Hello!
I know I bring here a question which has been asked a thousand times, but the answers never satisfy me.

First, I am a programmer, and I have a team - It’s important to say it, because all the responses I saw was around that.

My Interrogation is:
We want to create an MMO game (our end-of-study project). We are currently questioning ourselves about which game engine we should use.
We made choices based on many things (price, open-source, scalability, community, etc…) and Unreal Engine is the one we like the most.
But, it is a real question about the networking thing. We saw a network part, but it is limited. It is not designed for a large-scale usage (hundreds/thousands/“unlimited” players on the same map).

The question is, does a solution exists for mmog network? Does somebody somewhere start to work on it?
If it really doesn’t exists, I’ll be more than happy to discuss about it with someone which know the engine, how it really works in the end and how such library can be done.

Thank for your readings!

For your information, we are a team of 6 developers, starting our 4th year of study and starting our end-of-study project.
Our ambition is to make an mmo game. Because we love programming, and we love games.
Many people around us are making games, but most of them work with Unity, or self-made Engine.
I want to say it is not like all the projects which are presented in this forum but we don’t know where we are really going,.
At the end of our studies, many of us want to continue this project and release it as a full game.
I am french and, maybe you don’t understand what I wrote, please ask me for precisions :smiley:

I bet you read a lot on this… but here is a small feedback
1 - You need to define what’s your target. Mmo can be target to be 100 player per “zone server” or 1000. This will help to get what you need as Network Layer.
2 - UE is clearly not suited for MMO from scratch. You have the choice to look at : Plug-in here if this fit your needs. It seem to work pretty regarding the comment or rewrite the NetworkLayer to fit your needs. Everything is doable, it needs time & competencies.
3 - The worst part in a MMO is the content. This is where a lot team fails as it needs more work than the tech. side. You seems to be Dev only, so you need to find people for the content.

Good luck with this!
(French too here ^^, where are you from in France?)

Thank you for the answer. We read a lot on the networking part.
We saw many servers architecture, how data should be distributed between servers, what server are you on and when must you change.
I don’t really know the charge, and at this point, i prefer not to set any limit, and when i am in front of a solution i look around to see if it can fit.
I know UE is not for MMO, no Engine is for MMO (neither Frostbite, Cry engine, or even Unity handle MMO networking - Unity can now by a plugin). We have time, and I think competencies.
For the content, we are in a programming school, but it is part of a group of school. In this group there is one school which create Game Designers, Graphic artists and animators. We are going to make partnerships, with this school, and maybe other if we can.
It is part of our job to find the team which fit our needs.

I believe I can find someone which have the UE background we are missing to tell us if it is possible in the time we have (around a year to two) and to discuss about it.

(aha I’m from Paris :p)

EDIT :

I forgot, I saw the mmo plugin, it’s nice, but not what we want on the network part, for what i saw for now.

Hey @Thiryn -

At the moment a MMO solution for unreal does not exist to my knowledge apart from the upcoming Spatial OS stuff from Improbable.
That said - I would pay for an MMO solution if one were to be made available for unreal.

Photon networking is a good option. But it is paid of course; you will also need to code the server yourself when using it.
I would go Photon + GameSparks, but the server side code needed will be massive since you won’t be able to use any of Unreal’s builtin networking. No way to use Unreal replication there.

The good thing is, if you manage to build a proper photon Server, you then can connect to it clients built on Unreal, Unity, CryEngine from any of the plarform those engines support.
Also, a typical UE4 dedicated server will be around 1GB because you use the builtin replication system; a photon server for the same game is a few MBs in size. And Photon has builtin load-balance system.

If you use Unreal’s replication, which is much easier to use because it is what EpicGames support, don’t expect more than 50~200 players per server instance really. You will pretty much be forced to build the game like a bunch of “instanced dungeons” and the work on custom load balancing will be hell.

You can also try to build your own distributed systems. Aftera all biggest limtation is not networking performance but, server side simulation. Pathfinding, animation, ai, physics etc.

https://www.trinitycore.org/

https://www.getmangos.eu/

Yes, we already thought about it, but our researches on photon and how it can be used for a mmorpg with unreal are too light. We are still looking for information.

I don’t know at all GameSparks is, from what I saw it is a backend Game API.
I know It can be massive, but if I want a real game, I can’t afford the UE replication limitations. I don’t have the vision to know what this work really represents.

Why build my own distributed system when I can use Photon? If I build my own distributed system, I can’t use the advantage of Unreal network, so… it is a more complex adventure to go in… no?

Thank you, I’ll put an eye on it!

No. Unreal Replication only takes care of interaction between server and client. While not easy part to deal with, it is relatively cheap in terms of what MMO servers must handle.
The really hard part are things, which are take care of on server side. Things like AI, collision detection, physics, path finding, game mechanics (if possible it also should be made as distributed as possible).
Some of these things looks trivial (like collision detection) in singleplayer game. But in multiplayer with many entities simulated at once, they grow into monumental issues.
And these systems have nothing to do with replication, and they will be the first bottlebeck you encounter while simulating big world. You can’t just stop simulation on some part of world, as you can’t really predict where will players go. It must be always running.

Do it yourself! Im work on a similar thing atm and writing my own server. After first simulations a Xeon 1230v3 can handle 11k players with random movement without a problem, i guess that will be about 2-3k players including all other tasks - including inventory handling via a custom in-memory database implementation.

Feel free to contact us to ask any open questions: Contact Adresses and List of Events | Photon Engine

I’d like to ask a question of the knowledgeable folks who have replied.

Would it be impossible or impractical to reproduce UE4’s replication handling and other tasks on a larger capacity server?

The gist of my question is that an ideal Massively Multiplayer server would be indistinguishable from UE4’s standard server, permitting a blueprint client to be used as is.

Okay, thanks for all your answers. Now I know it is possible and we are going to make further researches about UE. We probably are going to use Photon.
Once we have a better understanding of all of it we will certainly come over you again.

I probably come to you to ask you somes questions.

We will!

Is there any news about your project or maybe you have found any useful info?

And what is the best way for an MMO with UE4 – use only UE-client and custom server, or use UE-client and UE-dedicated-server + custom server logic?

Hi Thiryn,

GameSparks can be used with Unreal for Real Time multiplayer. We have a guide on how to use RT here. You can find the SDK itself on the marketplace here. Our support team is always on hand, if you have any further questions you can find our support page here.

Thanks,
Liam

Hello!
We are currently making some proofs of concepts of several parts of our game.

Hey! We already looked around it, but it seems that Gamespark is not the best solution to run MMO games.
Besides, we want to host our own games and our own (rented) server, and have the control on all the data flow.

Then try these people if you have the monies:
http://bigworldtech.com/en/