Virtual Worlds on Virtual Servers on the Digital Ocean

At the end of our last update we were getting ready to deploy our game server software (zone app, lobby app, and various supporting services, including Apache, PostgreSQL, Erlang, and uZone) to a Windows 2008 server instance on Amazon Web Services (AWS).  After a bit of tug-o-war pitting man (me) vs. machine (Amazon’s server cloud), I finally triumphed and the server successfully served up our current development version of Arcanoria (such as it is).  Score one for the good guys.

Proof of concept now being in the bank, I started making calculations as to how much this game would take to roll out for testing later this year.  Let’s just say the results were discouraging.  It was easily into multiple thousands of dollars for a year of hosting on what I think is a minimal configuration for what we’ll need.  However, that was for a Windows server.  For some reason, Linux servers are much cheaper to deploy on AWS.  As in, about 1/3 the price.  Fortunately, the much anticipated Unity 4.2 release did finally appear, with promises of “headless Linux server” support.

Bottom line is that there was another mud wrestling match between the hardware and I, and I won again.  The result this time was that we now have an Ubuntu (Linux) server serving the game and related services successfully.  What’s more, I’ve deployed it to our in-house server (Darwin, which runs WHS 2011), via the superb Oracle VirtualBox software, which is free for personal use.

In related news, a helpful game developer from the MuchDifferent forums advised me that Amazon Web Services are expensive for what you get, as compared with other services, such as https://www.digitalocean.com/ .  I was able to create an account there very cheaply, and their services seem much less pricy than AWS, when comparing similar virtual hardware allocations.  I think when it comes time to deploy a public test server I am likely to go with Digital Ocean for our initial testing.

Looking forward, here’s some nice meaty items from our short-term to-do list:

  • integrate the newly updated Mecanim-based character controller (thanks Robin!), and give it dynamically customizable models and materials
  • create a new “zone 1” which is a simple character loading area, the default place where players will go while downloading (if necessary) their actual location’s zone assets
  • export intern Nathan’s remake of our basic village scene and integrate it on our new Linux server as the new “zone 2”
  • implement server-side logic for “spawn point” objects, generating dynamically configured treasures, NPCs and/or monsters

4 Comments

  1. Awesome news! I am a very big fan of Linux servers on the cloud now (I use Rackspace) and applaud your decision to do so. Really excited for you that the headless server worked out for you! I’d love to do some testing for you 🙂

  2. Nice progress!

    We are in process of experimenting with uLink and headless mode and I am curious do you have tests about server performances when Unity headless mode is controlling game?

  3. Thanks for your inquiry!

    We’re not quite to the point where we have any kind of performance testing done yet. We’re able to connect with the server and run around the game world, but that’s it for the moment.

    We’re currently in the process of installing a new character controller package. As I mentioned above, we’re hoping to have something testable in late October. At that point we’ll be looking at basic functionality, and hopefully some performance metrics.