How to do a server for MMO game?

We need a one remote server like a application on remote machine and client game without server code.
How to do this in Unreal Engine 4?

I have to wonder the same. Would you have to re-write a complete new server stack? or would you re-use most of UE4

I have written a MMO engine in the past and this question is like the old statement “if you have to ask you won’t understand.”

There are several servers (that can be in one machine or several, I prefer several) depending on what you are looking at. The basic unreal multiplayer engine (Though I haven’t looked into it in depth yet) is very small which is easy. A MMO takes hundreds if not thousands of unique connections every second. The networking for a MMO is just as important as the front end (IE. Your pretty pictures) and much more difficult to get stable. In short you would have to write your own. To do this properly you have to understand TCPIP UDP databases (remote) how to monitor those servers realtime and a SLUE of other things.

I wouldn’t bother using the ue networking for that but it appears to be just fine for multiplayer

The engine for an MMO is only part of the architecture. UE4 is a great Graphics Engine that can be ported to multiple platforms. That said MMO’s are typically engineered by 25 - 200+ people due to their being many parts that have to be engineered to work together. There is no MMO button for most standalone engines.

Teams must engineer special code for many parts:

Datacenter Servers:
Performance - What type of machines and performance are you planning for Server & Client? How big is your expected game “Instance” and how many on one server.
Servers - Sizing (Cores, RAM Memory, Local Storage, Flash fast local storage, RAID local or NAS connected.
Server O/S - Windows Server, Linux Server etc.)
Server Networking: How many connections do you allow in any one server (TCP that is visible in your Netstat?) How often do you perform GC Garbage collection of old connections as they are not infinite. Tuning this is very important so you don’t run out of connections. Bane of networking mass users in any system.
Server clusters - App Servers, Database Servers, Login servers , (CCZ) credit card zone

Networking:
Core Network - Router and Switch types, Protocol types TCP, UDP, policy based routing? Monitoring w Netflow?
Routers - Core Routers with Redundancy?
Switches - Size and connectivity, stacks or single. Nexus, Fex etc
VLANS to protect and isolate certain end data points.

Firewalls:
Core Firewalls - External Internet facing Firewalls,
Database Firewall Zone - Game State Data
CCZ Firewalls - Credit Card zone databases
WAF Firewalls - Also to block specific IP’s on the internet that fit certain “Bad” patterns

Storage Frames - Mass Disk DASD arrays - typically several RAID variants to protect against loss when disks fail, and they will fail regularly. (plan for it or else)
Where your data is stored… Login information, customer info, Saved game state info.

Other areas I would list are:

  • Information Security:
  • Data mining / Reporting repository / database
  • A Production Scheduling system to automate recurring daily, weekly, monthly batch jobs.
  • Midrange systems - AS400?
  • Backup and Recovery system - Absolutely required with daily incrementals and weekly backups etc. skip this at your own risk.

And then there’s writing your MMO…which also has several components as you can imagine.

No one can tell you what to do for vague questions that have no scope or size. The best questions are asked by someone who already knows how a certain technology works but has a specific puzzling problem and needs the community to assist with that small issue.

There are so many areas and each of the ones I listed above for a working game could have multiple people in each area designing it, or at the very least a core group that really knows what they are doing in their respective areas with overlap. (Essence of an Indie team)

Now the only reason I listed all this is because you stated UE4 and MMO. Good luck.

Wouldn’t care much for working on an MMO myself but this is a great post!

Short answer is if you want to write any of the core stuff yourself, it’s complicated and you won’t get far.

As an example, and I’m not here to advertise anything, I have been working on a next gen mmo server for over a year now. You can look at just how much is involved it’s on github GitHub - gamemachine/gamemachine: Multiplayer game engine.

I’ve been working primarily on server side architectures for about 20 years, I’ve worked on games that handle south of a billion requests per day, and writing core mmo architecture is still challenging.

So the best answer I can give you, is find a commercial solution and use that. My system is probably too compllicated for someone that doesn’t have any experience with multiplayer at all, it’s more for people who do and want something that scales to silly levels.

Photon, Bigworld, there are a number of commercial solutions all targetting slightly different audiences.

Chris

I just thought of a interesting idea (not sure if it will work or not) you could get openNel (which I was a dev on for many years) well it appears Ryzom has continued our work… you can find it here http://www.ryzomcore.org/

a few things to keep in mind is that the core network used to be separate from the graphics I don’t know if you can separate the network engine now days. When I left the project we were in search of a graphics engine so the network and db code probably was left separate when Nevax took it back over from us. Anyway that may be a option for you. Nel has had many years of development from very good programmers :smiley:

I would recommend this :slight_smile:

Allot of awesome and talented people over on Ryzom Core :slight_smile:

Thanks of all, but we have to have own server. We create commercial project.
I begin create server and it’s work :slight_smile:

Maslobojik did you find a way to solve your server problem?