dimensional

Citizen
Anyone got any good information or advice on the type of hardware requirements an average server would need? And if it grew and needed upgrades, what would I be looking at?
I've never ran a dedicated server before and will be doing so soon. If anyone has experience with this I'd love to hear about it. Thanks!
 

Voxpire

Vita-Nex
Administrator
A simple VPS is enough to get started, a CPU with at least 4 cores available, 8GB of RAM, and 500gb storage (preferably SSD).

At 50-100 players, you can consider upgrading the RAM to 16GB and have plenty of room to grow to 200+ players.

At 200+ players, you'll likely need a more powerful CPU and an additional RAM upgrade.

At 500+ players, 32GB of RAM would become the minimum, depending on activity and world item count.
 
OP

dimensional

Citizen
Excellent, thank you for the fantastic response. I appreciate that a lot! Also, one other thing.. what about strictly for development? Would a bare minimum build suffice just to save on funding until ready for launch? Cheers.
 

Voxpire

Vita-Nex
Administrator
You could easily host it locally on your PC in the background for development and testing while you do other things, but you would have to give play testers your personal IP address for them to connect to.
 
OP

dimensional

Citizen
You could easily host it locally on your PC in the background for development and testing while you do other things, but you would have to give play testers your personal IP address for them to connect to.
Well, one problem with that is I can not keep my PC on 24/7 and a lot of my other staff are in different time zones, so it would not really be easy to work like that. Assuming I got a VPS with a minimal hardware setup strictly for, maybe 10 people maximum at a time, what do you think would that require?
I really appreciate the help, and I just want to be thorough before I dive into something without as decent understanding of what I am doing. Thank you.
 

Voxpire

Vita-Nex
Administrator
Based on my first response, you could go with the first option. You'll have to shop around. I recommend NFO servers, they are good value for money:

(ServUO is more compatible with Windows than other o/s)
 

Sooqa

Citizen
A simple VPS is enough to get started, a CPU with at least 4 cores available, 8GB of RAM, and 500gb storage (preferably SSD).

At 50-100 players, you can consider upgrading the RAM to 16GB and have plenty of room to grow to 200+ players.

At 200+ players, you'll likely need a more powerful CPU and an additional RAM upgrade.

At 500+ players, 32GB of RAM would become the minimum, depending on activity and world item count.
Now lets make a small math, what server machine is holding an Outlands. With all their decos specially. Pretty insane
 

Sareus

Citizen
Now lets make a small math, what server machine is holding an Outlands. With all their decos specially. Pretty insane
But Outlands uses Shelves which are custom containers that store massive amounts of items as numbers saved in a text file,
rather than physical items in a wooden chest in a players house.
This GREATLY reduces the Total Item Count that typically grows out of hand with most servers which is why most custom shards try to have some sort of sorting tool system or storage box/key system.
Stashing all those player items as a Number in a Text file rather than being physical pixels on the screen when the screenshot is captured for the save file dramatically reduces save times and lag buffers.
 

dagid4

Citizen
But Outlands uses Shelves which are custom containers that store massive amounts of items as numbers saved in a text file,
rather than physical items in a wooden chest in a players house.
This GREATLY reduces the Total Item Count that typically grows out of hand with most servers which is why most custom shards try to have some sort of sorting tool system or storage box/key system.
Stashing all those player items as a Number in a Text file rather than being physical pixels on the screen when the screenshot is captured for the save file dramatically reduces save times and lag buffers.
I think items probably demands most of the RAM.

Imagine that you have 1.000.000 items, which is a real scenario. You probably won't have so much mobiles nor players. Now, if each item has 1000 bytes (for example, your message in ASCII has about 600 bytes) then it would cost 1GB of RAM only for items.

But it is not continuous 1GB of data. It is 1 million chunks of 1000 bytes spread across the memory. The garbage collector has to manage it. On the server start, you need to allocate it chunk by chunk and deserialize item by item. This is why server loads slowly, when you have a lot of items.

Players demands CPU power.

From what I know, server runs in an infinite cycle. At each tick, it has to go through all players and calculate with all mobiles near them. Imagine 100 players spread in the world with each fighting unique 10 mobiles near them. Then the server needs to process 1000 mobiles per 10ms (to prevent lags). 10 micro seconds per processing of 1 mobile. In this 10 micro seconds, it has to calculate all the pathfinding, damage, spells, regeneration, etc. With some simplification, on 2Ghz single core you can do 20.000 CPU ticks per 10 micro seconds, that could be enough. But with 1000 players, it is only 2.000, not much for difficult math behind pathfinding and all the mechanics.

I don't know ServUO possibility of parallel processing, but I know it is not easy to develop in multithreaded environment. Probably many things will be single threaded and therefore in my opinion single thread performance is critical.
 

Sareus

Citizen
I think items probably demands most of the RAM.

Imagine that you have 1.000.000 items, which is a real scenario. You probably won't have so much mobiles nor players. Now, if each item has 1000 bytes (for example, your message in ASCII has about 600 bytes) then it would cost 1GB of RAM only for items.

But it is not continuous 1GB of data. It is 1 million chunks of 1000 bytes spread across the memory. The garbage collector has to manage it. On the server start, you need to allocate it chunk by chunk and deserialize item by item. This is why server loads slowly, when you have a lot of items.

Players demands CPU power.

From what I know, server runs in an infinite cycle. At each tick, it has to go through all players and calculate with all mobiles near them. Imagine 100 players spread in the world with each fighting unique 10 mobiles near them. Then the server needs to process 1000 mobiles per 10ms (to prevent lags). 10 micro seconds per processing of 1 mobile. In this 10 micro seconds, it has to calculate all the pathfinding, damage, spells, regeneration, etc. With some simplification, on 2Ghz single core you can do 20.000 CPU ticks per 10 micro seconds, that could be enough. But with 1000 players, it is only 2.000, not much for difficult math behind pathfinding and all the mechanics.

I don't know ServUO possibility of parallel processing, but I know it is not easy to develop in multithreaded environment. Probably many things will be single threaded and therefore in my opinion single thread performance is critical.
This is very insightful thank you very much!