Meteor’s A Promising Platform for Web, Game Development

MeteorWhat’s Meteor? Besides a company that just received an $11.2 million investment by Andreessen Horowitz and Matrix Partners?

Basically, it’s a platform for developing Web applications — including games. Since it’s a Web platform, it includes both client and server platforms. What makes Meteor interesting is that it uses JavaScript for both. It’s only at at version 0.3.9 right now, but it shows great promise.

Another interesting thing about Meteor is that it allows database access from both the client and the server. Since JavaScript in the client is generally insecure, I can’t say that client-side databases access ever makes me happy. With a copy of Firebug, you can see exactly what’s being sent down the wire. Still, while the first versions of Meteor allowed full write access, an early version authentication package now restricts user access.

Server Side

Meteor’s server side uses Node.js, a well known and popular server technology built on JavaScript. Here, though, your server code runs in a single thread per request, not in the asynchronous callback style typical of Node.

A design principle is that the client takes care of rendering HTML, and it’s not sent from the server. Instead it’s just data that’s sent. This is what makes Meteor’s reactive programming possible.

If a key piece of data is changed on the server, reactive programming means that multiple clients are updated at once through a subscription/publication mode. This enormously simplifies the task of updating.

Live HTML is done this way as well, by using rendering templates (i.e, JavaScript functions) to display the data. When a change occurs to subscribed data, the functions are rerun with newest set. It works well with source software, such as Handlebars, for example.

The Disadvantages

Currently the only database Meteor works with is MongoDB. However, it’s been written to allow other databases to work once an interface library has been written. Will that include relational databases, like mySQL? I don’t know, but I’m guessing maybe not. Meteor seems more atuned to the NoSQL model. (MongoDB is a NoSQL data store that stores documents in JSON format.)

Meteor has four full-time developers right now — though maybe there’ll be one or two more with that $11.2 million. With that investment, I have to believe it will progress quickly. This is a very good time to start learning it.

Want to Know More?

Andrew Scala’s article on Meteor is a good place get you started piece. Also, visit Meteor’s site to find some good game examples.