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