Epic Games has released a new version of its popular Epic Citadel tech demo that runs entirely using open HTML5 and JavaScript standards in order to show off the potential for plugin-free game development inside a Web browser.

To convert the Unreal Engine 3 tech demo to standards-compliant HTML5, Epic made use of Emscripten, a tool that allows users to compile programs written in C and C++ into asm.js, a stricter subset of JavaScript that adds additional low-level functions and optimization. This allows the demo to run "within 2x of native speeds," according to Epic, while still supporting features like global illumination and dynamic specular lighting.

Indeed, in our tests, the HTML5 version was benchmarked at just under 28fps at a 1920×1200 resolution on a three-year-old Windows desktop rig, compared to about 48 frames per second for the native version running through UDK on the desktop. The HTML5 performance appeared comparable to the Flash version of Epic Citadel that was released last year, but that version lacks the native benchmarking capabilities that would allow for a like-for-like comparison to other versions. Still, I was able to get a smooth 60fps on the Flash version running in Chrome (though, oddly, only 30fps in Firefox).

While the new version of Epic Citadel could theoretically work in any browser that supports HTML5, the demo is only currently fully supported in the latest versions of Firefox Nightly, which fully supports WebGL and asm.js. The Chrome development team is reportedly working on fixing a problem that currently crashes the demo, while Internet Explorer users are left out in the cold with no WebGL support at all. Opera and Safari are not supported, even in their WebGL-equipped incarnations.

While apps running in the browser will likely never be able to match the kind of performance you can get with native code, it's nice to see more developers working to narrow the gap without needing to resort to proprietary plugins or coding environments. After all, releasing a single HTML5-compliant game that works across browsers and platforms is a lot more straightforward than crafting dozens of different ports for different systems.