- Home /
Hosting a server at home
Hi, I'm wondering how it would work out if you where to run a game server with your own game in your own house.
So suppose I made my own online game with 200 Players on a server, and I created my own Server Machine for these players to play on, and then I began to run the server and players would join anytime they want and begin to play, how would it work out latency-wise and Lag-wise.
Information I host it from the UK in my home. (May affect me, I could have slow downloads etc)
I only want UK players to join (So there aren't latency problems from people from other countries)
I want 200 Players and an Open World game.
They'll be Physics and players simoutaniously playing the game killing each other and doing missions.
Servers running on the machine.
Login, World and Chat
Server Specs
Memory: 4GB DDR3 (Probably not enough to host 200 Players) Processor: Pentium G6950 Motherboard: Asus 1156 P7F-M WS Server Motherboard Program: Photon
I'm also wondering what and how Bandwith would work on a server, i don't know much, i also heard it uses Upload Speed and not download
Would I be able to host this game from my home on my own server or would I need a DataCentre to host it for me (Players In the UK only)
I've hosted a MineCraft server on my computer and played at the sametime, because of my decent proccessor and 2GB of ram I didn't have slow down or poor framerate.
I've only had 5 Players playing at once, and the people I was playing with where from other countries, and had low lag or no lag.
Thanks for reading.
Answer by Bunny83 · Apr 13, 2011 at 02:16 PM
200+ players in a realtime game is almost impossible. The server specs are quite irrelevant. If you create a dedicated server you wouldn't need to draw anything, just pure gamelogic.
The biggest problem is your bandwidth... I guess you have ADSL? Asymmetric DSL does have a very small upload (mostly 1:10). You would have to optimise the network traffic yourself. But that would not help much. If 200 players are connected to your server all clients get their updates from your server. So if every player can only "see" only 20 other players and you only transfer the position in the world (3*float = 12bytes) that would be 240 bytes per update per player.
If you want smooth game play you will need at least 20 updates per sec.
240byte 200 player 20 updates per sec = 960 KB/s
So you need at least 1MByte/s upload speed. But that's extremly optimised and it's only the position (no rotation, no state, no actions). In the worst case if all players can be seen that would be 12*200*200*20 = 9.6 MByte/s
That's why all big MMOs use many servers to distribute the load. Instance-servers for a closed area. etc...
If you can manage it with the networking engine(RakNet) that comes with Unity i'm impressed :D
Anyways, good luck
Ah I see what you mean, but what do you mean by "Realtime" I've heard this term before and i don't really undertstand it could you please explain it to me? Thanks for the Information.
Oh and what does the server mainly feed off? The specs i showed you i found off Amazon and i have't built a server yet, but what does it mainly need? Ram? Processing Power? or does it all go to the Upload Speed?
Well, the server specs you need depends on how you handle your gamelogic. If you create a seperate server build you don't need anything rendered. So you have all power on physics and gamelogic. For that nearly every server will do the job. Realtime just means that your program works without (noticeable) delay. For more information take a look at wikipedia: http://en.wikipedia.org/wiki/Real-time_computing
Okay I see, so will the Physics and Gamelogic be handled by the CPU? and will you need a strong CPU to be able to handle this?
Check with your ISP as they may take issue with you running a server over their network. Is this a game you're selling? What happens when you go on vacation for 2 weeks and the server crashes? You might end up with a lot of angry customers. Its far better to host in a monitored data centre where people can fix problems 24/7 and are setup for this type of thing.
Answer by Nostre · Sep 26, 2012 at 06:09 AM
Where is he going whit is number, when RunUo was starting it was tested with 1000 user online. I was testing the same server 10 or 15 year ago with a 300k connection 15 user online so you can obtain a 25 megabyte today so what is the problem.
Answer by Nostre · Sep 26, 2012 at 11:01 PM
Ok I try to remove the old dust on my older memory… make some research. Cool found something. Yesterday I was saying one of the first test on Runuo was 1000 user online but that was not the only one.
Later on the same test Ryan the creator I think was testing with ((Razor)) (acting like mater server) ((Runuo)) (acting like server) The test result was over 3000 user online.
Answer by dscroggi · Sep 26, 2012 at 07:27 AM
If you're interested in following the development process of an MMO Server, I'm doing exactly that on a blog here
What you're asking is entirely possible, and you will have tons of people tell you that it's not possible. If you're trying to make the next big, realistic fps with thousand player battlefields, I would have to agree with them. However, if you're starting up a local MMO (growing in popularity these days with the number of online games coming out) it is not rocket science to hand roll a server that can support persistent world gameplay style and chat for a few hundred users on a local PC.
Winsock was tested about 10 years ago or more when Winsock 2.0 first came out with completion ports. One 1.4 ghz pc was able to support 50,000 connections with only 2 threads and 55-65% cpu utilization using less than half a gig of memory (pp.196 Jones, Ohlund 2002*) This was over a LAN so it was, of course, faster. However there's still enough to work with for our needs.
It will depend heavily on how your game is set up and how efficiently data is sent. For example a float or double position value that we often use with Vector3s can usually be truncated with no noticeable difference and may result in up to half the latency relevant to that one bit of communication. It might take a little bit of scale work to adjust your player sizes relative to 1 Unity unit as opposed to .1 or .01 that gives desired position accuracy and should still allow for a terrain at least 10,000 square units using a smaller data type like short. Anyway there are plenty of other unique ways to cut corners that, believe it or not, no one has thought of yet.
*Network Programming for Microsoft Windows 2nd ed.