Google encourages its engineers to spend 20 percent of their time working on projects that aren't necessarily in their job descriptions. The corporate philosophy that spawned Google products like including Gmail and Google News has perhaps had its greatest achievement yet: an HTML5 port of Quake II.
This first person shooter has been around for over 12 years and has been ported onto a wide swath of hardware platforms, but it's latest incarnation shows off much of the potential for HTML5.
While we've seen HTML5 in action rendering video, it can crunch through some relatively sophisticated graphics. And gameplay is reportedly no slouch, either -- developer Ray Cromwell reports getting up to 60 fps on Linux. Ready to get Quake II running for yourself? It helps to have a bit of experience mucking about with the command line.
To start, you'll need the Chromium browser to run Quake II and Mercurial to check out the code from Google. If you're on Windows, you'll need a Linux-like environment such as Cygwin, and on a Mac you'll need MacPorts. To do the actual installation, follow these directions, which have been tweaked from the Google Code project site for Quake II.
1. Install ogg vorbis and lame by running in the command line sudo apt-get install vorbis-tools and sudo apt-get install lame on Linux. On a Mac, run sudo port install vorbis-tools and sudo port install lame. The tools are needed to convert the Quake II resources for the Web.
2. Check out the code and change into the project directory by typing the following into the command line: cd quake2-gwt-port
3. ./build-dedicated-server (will build the tools and the client and server code).
4. ./install-resources (will download, unpack, and convert the original Quake II demo resources). Due to a bug, you currently also need cp -r maven-build/server/target/gwtquake/war/gwtquake war. The developers claim to be fixing this.
5. ./run-dedicated-server [port] (will run the local Quake II server). The install worked fine without my specifying a particular port.
6. Navigate your browser to: http://localhost:8080/GwtQuake.html (or whatever port you specified in step 5). What does this mean for the future of HTML5? Beyond opening the doors to all sorts of web apps that take full advantage of the HTML5 spec, Cromwell hopes that HTML5 will change how people collaborate while gaming. "All you need to do to invite someone to your game, to share it, is to send a link. You could Tweet a link directly to your game, which when clicked, would make someone join the game in progress. No installs necessary." Developer Joel Webber said that one point of the Quake porting project was to prove that HTML5 could be used "to build a 'real' game, including complex game logic, collision detection, and so forth". Google Code via Daring Fireball]