Occasionally we’re asked what technologies we’ve used to develop Conclave, and now seems like a good time for a blog post on the subject since we’re in the middle of making some upgrades.
Conclave’s engine and other server-side components are written in Ruby and use the Rails web framework backed by a PostgreSQL database. All the animations and interactions in the browser are handled with JavaScript, HTML5, and CSS; we chose to avoid Flash since it’s not supported on iOS devices. We make heavy use of the jQuery library, and we’re looking at JavaScript frameworks like Backbone, Angular, and Ember as our codebase grows.
We host the game using a service called Heroku. It provides a platform that runs on top of Amazon Web Services and takes care of many of the details of deployment and server administration: balancing load, keeping servers patched, restarting instances if they go offline, backing up our database, and so on. Without Heroku, we’d have spent a lot more time writing scripts and handling those tasks ourselves instead of developing the game. We recommend checking into it if you’re creating a web app.
Besides Heroku, we use a few other services with Conclave. A critical one is Pusher, a WebSocket-based service which we use to notify other players when you type a chat message or submit an action. Two others play no part in the game’s functionality itself but are very helpful for keeping it running smoothly. The first is New Relic, which monitors our performance and provides reports that help us track down anything that’s bogging down play. The second is Airbrake, which automatically sends us debugging information whenever an error occurs. If you’ve done much development, you know how much easier that makes it to reproduce a bug.
While we’ve been happy with the technologies we’re using, nearly all of them have alternatives. Consider our experience a data point in your own evaluations, and if you have any questions or suggestions for us, let us know in the comments.