What are my options for making a persistent 50-100 person dedicated server?

Hello fellow developers!!!

This question is specifically for UE5. I couldn’t find anywhere else to post this, so I figured general would work fine.

I am working on an open world survival game similar to DayZ. I have spent some time looking at various options to create a persistent dedicated server such as SpatialOS, a random thread from 2016 where a guy made a custom server for an MMORPG amongst other threads and sites. I have a few questions I’d like to ask anyone who has experience with the issue of persistent dedicated multiplayer games could answer.

My multiplayer requirements:

  • Due to my game being ran in a private community that is invite only I am not worried about cheaters so if this opens up new possibilities I’m all ears.

  • Player limit needs to be 50-100 concurrent players.

  • My world is 8129kx8129k with 1024 components and it is seamless and uses world partition, nanite and lumen.

  • My game world needs to be persistent where it acts similar to DayZ in the sense it keeps playing even when nobody is in game and saves the state of the world every few minutes and upon server shutdown. Also player states and AI states are saved as well as other important information. Players log out and log in to the same place with the same inventory etc.

  • I need a comprehensive logging system as well as a GUI or console to input custom made commands into. I dont think the out of the box UE5 dedicated server has comprehensive logging systems in place?

What are my options for completing this? All suggestions are welcomed. I have experience with many programming languages so writing some custom code is not out of the question if thats my only path forward. I have also dealt with CURL and RPC frameworks in the past. So I have minimal networking experience but I will learn what is needed to get the task done.

Appreciate your help in advance :pray:

i am working on a “ragnarok online” inspired game and achieve persistence by saving all persistence in external databases, like userdata, items, monsters, skills. not only allows it me to change values on the fly without repacking the server everytime i change , lets say the exp a certain monster gives or the multiplicator for a dmg type.

the world size itself - at least in my experience - matters(not) for 2(or more) reasons: the amount of monsters spawned → how many AI calls every frame to move ai around on the server + the amount of players interacting with each other and monsters.
also how complex your player data is. do you simply send a position update to clients or does it come with a full load of facial expressions, physic / animation states etc etc.

i did all this on ue4 because of the awesome usqlite plugin. now that i want to work with ue5 i have to come up with another solution. one ( slow) would be to keep persistent data in .txt files, if hacking etc is not a problem as you say, this would be the easiest solution.

Right now working with ue5 means to pass on plenty of good n useful plugins.

1 Like

Are you asking on how to code it, or on “what hardware should I get”?

Chances are if the whole thing is invite only you can run the server out of your house just fine.
Latest intel 12 or a 5090 with maxed out ram (maybe doesn’t even need that much, depends).
And a beefy 3090 to allow for fast computations should be able to run anything.

Latency can be a problem, obviously.
It depends mostly on your router and local connectivity.
In 2021 some folks have access to fiber, making the difference between running from home and a proper data center almost zilch.

By default, a data center doesn’t give you jack. No redundancy and no real uptime guarantees above 90%.

Out of that,
Azure and a scalable model will cost you tons more than it should.
AWS is trash. Avoid at all costs.

And a few game dedicated datacenters will offer you the earth - and give you zilch after an astronomical bill. So be very careful.

Running your own hardware at a rented rack space is possible and perhaps the best option, but you need to buy server stuff, build it, and ship it.

I did exactly that until the datacenter closed. To me, a place I cannot drive to when there is an issue is an issue in itself…
Currently, my (work, not gaming) servers are all self managed and remote with decent SLA and usually 100% uptime (though not guaranteed, they rarely go down if ever).

On the coding side, it’s much too complex a question I’m afraid. But the bottom line of it is, you code and publish the cli yourself, so you can do whatever you want in theory.
In practice, you’ll be using whatever unreal gives you to start so you’ll have to heavily modify it to fit the needs…

1 Like