
For anyone who is exploring the server/hosting part of running multiplayer Unity games: I’ve written a blog post about our experience with developing (indie) multiplayer games and what this requires in regards of hosting/servers and the costs.
I hope this can save people “growth problems” once your game is succesful :).
http://blog.m2h.nl/2012/01/server-side-of-game-development.html
1 Like
Great real world tips tricks, some few addition if one looking for more affordable dedicated solutions would be goes to un-managed instead of managed server, of course the major turning point would be when something goes ‘null’ then you need to contact them upon the fix request, so it’s more like reactive than pro-active service(once every 5,10,15,30 minutes server monitoring), would be not much trouble if the provider technical resources and architecture already good enough and plus if you have already know some way around in managing and configuring services.
I assume that when you are expanding your service you were already separated the database server into another box?, what was your networking middle-ware? photon? if so what was the database back-end?
Yep, we indeed also don’t use any SLA (unmanaged), this saves quite some costs but we need to monitor the uptime etc.
With Cubelands for example? No not yet, to save costs at first.
It ran perfectly fine on 2 boxes: one for database+webserver and one server only for the game downloads. That that main box was also running quite some other websites.
We could’ve moved the database to a seperate machine when load required it.
Cubelands used Unity networking, for any current/future games I use the Photon cloud.
As for the database back-end we used MYSQL and a webserver to handle the user data/login etc.
What was your highest client connected simultaneously?, when this happens what would be your estimated/real disk I/O?, and how is the other system resources going under massive load?, any specific kernel(if assuming you are using linux,*bsd) tuning or optimization?
as afaik mysql quite hefty on disk i/o if given without any proper optimization, followed any mysqltuner script recommendation?, is it the vanilla version of mysql (oracle) or some specific ‘branch’ of it like percona server, and what was the server specifications for the mysql download server box?, plus is it nginx or apache?. Sorry for the question , this is just interesting :).
What was your highest client connected simultaneously?
- not very sure anymore. Between 500 - 1000. So it wasn’t enormous yet.
when this happens what would be your estimated/real disk I/O? and how is the other system resources going under massive load?
Never really measured.
any specific kernel(if assuming you are using linux,*bsd) tuning or optimization?
as afaik mysql quite hefty on disk i/o if given without any proper optimization, followed any mysqltuner script recommendation?, is it the vanilla version of mysql (oracle) or some specific ‘branch’ of it like percona server, and what was the server specifications for the mysql download server box?, plus is it nginx or apache?. Sorry for the question , this is just interesting .
We run centos + lighttpd and a “normal” mysql installation. I can’t say I’m a tweaking expert, only followed some tips here and there, but I’m sure experts can tweak -way- more performance out of such a setup.
Did cubelands actually have headless dedicated unity servers governing game logic though? I though it was a player-hosted built-in networking type of thing.
Nope
Yeah correct, player hosted Unity networking indeed. Only about 10-30% of the servers were connectable because of this.
Right, I just meant in a player-hosted game, concurrent users would really have no impact on your server performance, right?
True, only in regards of the game download, login/registration, friendlist/statistics/etc and website visits.