The Status of WebGL in Relation to 3D Game Development

About WebGL

WebGL is a new open-standard for rendering 3D content in web clients developed by the Khronos group. Several major browser vendors are participating including Apple, Google, Opera, and Mozilla. The only major vendor absent from the working group is Microsoft. WebGL is a JavaScript API plus a shader language (GLSL) based on OpenGL ES 2.0.

I urge you to read Florian's article, he does a good job of explaining the obstacles, why he thinks they are important, and what their status is.

WebGL Libraries

While WebGL is available is a high-level language, the API itself is very low-level, much like OpenGL. Therefore widespread usage in games development will depend largely on the availability of well-designed helper libraries (3D engines / scene graph libraries / etc.).

Some of the projects I have found for facilitating WebGL development are:

Most of these are relatively new frameworks, and have a lot of room for growth. The only offering from a major company is O3D from Google. However, this project appears to be abandoned as there have been no significant commits in several months. It was based on a separate API that was specific to a Chrome plug-in.

GLGE (at least according to some) is one the more robust APIs and was used here at Autodesk to build the QuickShare viewer on Google labs (check out the source using the Chrome JavaScript Console).

Competing Technologies

For web-based game development Flash 11 has a new GPU accelerated 3D library (Stage3D) and is quickly on its way to becoming entrenched with the support of a large number of sophisticated third party helper libraries (including Proscenium from Adobe labs), excellent tools, a more advanced language (ActionScript), at least in my opinion and the support of some established game engines (e.g. Unreal and soon Unity).

Microsoft is not part of the WebGL working group, and is not showing any support for the format. In Windows 8 they are pushing Direct3D 11 (see the Windows 8 Developer Preview Guide) as the way to build GPU accelerated 3D applications for both Metro-style and Windows-style apps.

Microsoft has also cited security concerns as a reason to not support WebGL. There is some debate as to the validity of these claims. However, the debate is not particular accurate since the security of WebGL is compared to ActiveX controls. One has to keep in mind that Microsoft is disallowing ActiveX controls in the new Metro mode of Windows 8. The security concerns of Microsoft are therefore probably valid.

My guess is that supporting WebGL would also be at odds with Microsoft’s obvious business interests to increase the proliferation of Direct3D since WebGL is based on OpenGL ES 2.0, but this is only speculation on my behalf.

Since WebGL is not part of the HTML5 standard, there is no serious pressure on Microsoft to turn around and start supporting WebGL.

Possible Future Developments for Windows 8 Metro Applications

The following is some additional speculation about what could be future developments regarding how WebGL's could be used in Windows 8.

Standalone WebGL client for Windows 8 Metro - There is no apparent technical obstacle for Windows Metro 8 WebGL clients being built using the Google ANGLE library (http://code.google.com/p/angleproject/). ANGLE stands for “Almost Native Graphics Layer Engine” and allows Windows users to seamlessly run WebGL content. To work in Metro it would just have to target Direct3D 11 instead of DirectX 9.

WebGL Frameworks that work on IE without WebGL – It may be possible that WebGL frameworks like GLGE might be ported to work in IE without WebGL via creative JavaScript usage. This is what some applications already do like the 3DTin demo.

Conclusion

WebGL is definitely viable today as a 3D game technology at least when generated automatically from a tool like Mandreel.

Currently Flash is the dominant choice for developing 3D games in the browser and will likely continue for the short term.

Silverlight will soon be viable, but won’t likely be a popular option for web development with only 70% market penetration versus Flash’s 97% (http://www.riastats.com/). Note that Microsoft has not announced plans to support Silverlight in Windows 8 Metro mode.

While WebGL appears to be ahead of Silverlight and behind Flash in maturity for rendering and manipulating 3D content (based on the availability of 3D games) it has the distinct advantage that content doesn’t require any special plug-ins and the support of multiple vendors.

We'll see what the future holds!

2 Comments

Christopher Diggins

Posted 3 November 2011 12:55 pm

Thank you very much for clarifying my information SooW. I meant "freely available" when I said "open-source". I have fixed this and made your other recommended changes. Cheers!

spacefrog

Posted 22 December 2011 11:03 pm

Fits in here:

Unity just put a public preview (beta) of Unity 3.5 online. It includes the Flash exporter, meaning you can export a fully fledged 3d game to flash directly out of unity. This requires the latest Flash player , which inlcudes Stage3D (Molehill)