It started with a simple idea—an online version of the classic arcade game Asteroids, but on a massively multiplayer scale.

It would support hundreds of players at once, thanks to a scalable network backend. It would be real-time, meaning that every player would see every shot and every movement simultaneously without delay.

Unfortunately for the Hacker News community—where an MMO Asteroids "prototype" would eventually make the front page—it all turned out to be fake. April Fools.

People were, understandably, disappointed. The idea, despite immediate suspicions, was plausible enough in its supposed execution to be perceived as real. Recent development runtimes, such as Node, have made it possible for fewer servers to handle a dramatically increased number of users simultaneously with ease. Combined with a protocol called WebSocket, a persistent connection between users would be simple to maintain.

But JavaScript developer Seb Lee-Delisle, the creator of the hoax, was less enthused. A real MMO Asteroids implementation likely wouldn't be as scalable or reliable—assuming it could even attract enough players beyond its initial launch. It would require the constant exchange of countless, ever-changing gameplay variables, from collision detection to AI. "The sad truth," he wrote in a follow-up blog post, "is that if it was real, it probably wouldn't be as dynamic or as much fun."

Vikrum Nijjar, however, took that as a challenge. He believed it could be done. And as luck would have it, he had been developing just the software needed to make it a reality. Nijjar is one of the creators of Firebase, a new database backend, that aims to make it easier for developers to store and manage data for their applications in real time. Nijjar and the rest of the engineering team had developed the technology for their previous venture, a chat platform called Envolve, and this was a great way to prove its versatility.

His MMO Asteroids prototype made the Hacker News front page too. And this time, it was actually real.

"You can fly your ship around, and other people will see you flying around," Andrew Lee tells Ars. Lee, along with Nijjar, is one of the creators and engineers of Firebase. Of course, Lee-Delisle was sort of right. The end result wasn't quite the Asteroids you'd expect—there are, in fact, no asteroids at all, just ships—but users could still fire at one another for points. More impressive was that all of the action was taking place in real time, with the exact same data reflected across multiple players' screens, and with minimal latency, too.

"That is what real-time should actually be," says Lee.

"Real-time" is one of the technology industry's favorite buzzwords. It's what developers, marketers, and public relations representatives use to describe an experience or online interaction that feels instant. Twitter, for example, is praised for delivering posts and information in real time. Facebook fills a user's homepage with new updates and images from friends in real time. A live blog on your favorite tech site might promise to provide updates on an event as they happen, in real time.

But in each of these cases, there is often a delay. It could be a matter of seconds, or even minutes. We often don't notice, or even care, because the information is still relevant and fresh enough to keep us satisfied. But it's still a delay. That delay might be acceptable in scenarios such as chat or online commenting, but when the data becomes more complex—say, with a collaborative whiteboard, or an online game—being almost real-time just doesn't cut it.

Many Internet applications today work something like this: a client requests data from a server, and the data is pulled from a database. If any changes to that data occur, the application has to be smart enough to check with the server again, lest the user be forced to manually refresh the page. This process of repeatedly contacting the server at regular intervals is called polling.

But in a real-time world, there is no polling. Instead, there are subscriptions. A client subscribes to a piece of data in a database—say, a list of friends available to chat—and whenever that data changes, the client receives an update. Changes don't need to be pulled because they're pushed instead. In basic terms, this exchange is similar to the way notifications are pushed to your smartphone, but on a more complex scale.

"Anything where you're trying to simulate an in-person experience," says Lee, such as a multiplayer game or a collaborative whiteboard, "you can't get away with a polling approach. That's what lots of people have been doing."

And that's where the real-time Web comes in—a Web that is as close to instant as you can get.

What's old is new again

"We're on the leading edge of one of these transitions in the computing industry that doesn't happen very often," says Matt Debergalis, one of the four founding developers of Meteor, a new Web framework for creating rich real-time apps. "And it seems like that's a transition that happens maybe every 15 years or so, where you get to re-write everything."

In the 1970s and early '80s, he explains to Ars, software ran primarily on large mainframes and servers, which users connected to using dumb terminals. As the '80s progressed, a client-server model emerged. What we know today as the Internet was born.

"About 15 years after that, the Web again forced us to rewrite all the software," says Debergalis. "And we moved from these desktop applications to a model where software ran on the server again, and people spoke to it with a dumb terminal."

Except this time, that terminal was a Web browser.

For a time, the rich user interfaces of desktop software vanished, replaced by the relatively simple functionality of the Web. But in recent years, you only need to look at applications such as Rdio or Gmail to see that this is changing—the end goal being "thick clients that have their brains in the Web browser," says Debergalis, "where data is what's being exchanged over the Internet, and not finished Web pages."

And that's where real-time connectivity comes into play. As our applications increasingly look and behave the same as their desktop counterparts, we expect our interactions with them to be just as responsive too.

Of course, real-time technologies are nothing new. Software and hardware for low-latency, near instantaneous access to information have existed for years. "But for some reason," Phil Leggetter tells Ars, "nobody was using it outside of finance."

Leggetter works as a developer evangelist at a real-time messaging provider called Pusher. He's delivered a number of talks on real-time Web technologies in the UK. He says it's only in recent years that real-time has gone from niche technology and Internet buzzword to something not only feasible, but accessible to the development community at large.

Twitter, he argues, was the likely tipping point. "It made [information] instantly discoverable," says Leggetter. Twitter allowed users to subscribe for updates in a rudimentary way. "But the next step is instant delivery."

Listing image by Garret Voight