Mike Laurence and I have been building web applications for a long time, and we’ve had the opportunity over the last year to work with Table XI on some fantastic web applications for our clients. The web offers a wide variety of challenges, but we always found scaling to be the most interesting. Things like cloud provisioning, load balancing, caching, and database replication make big projects a worthy challenge.
Sometimes you need a break from the web, though, so we decided to put our architecture skills to the test and build a massively-multiplayer
Deepworld features an online, persistent sandbox universe; anyone can jump in to explore, build, or just hang out with friends. It's very engaging, and also the most technically complicated setup we've ever dealt with. We have dozens (soon to be hundreds) of worlds, all hosted across multiple cloud servers, with things like MongoDB, Redis, and various helper apps in the background.
We opted early on to use Ruby to develop our server code—an odd choice to many in the game industry, but something we are very familiar with. It turns out that EventMachine, the very mature Ruby equivalent of Node.js, is quite fast. With it, we've designed our own TCP-based protcol, baking in compression, authentication, and tons of other bells and whistles, as well as TCP testing framework on top of RSpec.
We’re in alpha testing phase right now, with a bunch of regular players in the alpha program. They’ve been building an amazing array of structures and are having an awesome time. We also recently held a Table XI playtesting party, which was great fun!
We've launched a Deepworld Kickstarter to help us with our final fundraising push, and have just under two weeks to go. Check it out for more info, thanks for your support, and hopefully we'll see you in the game!