Posted by Christopher Diggins, 19 October 2011 8:00 pm
http://area.autodesk.com/blogs/chris/the_status_of_webgl_in_relation_to_3d_game_development
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.
If you want a demo of WebGL check out the new QuickShare web viewer on Autodesk Labs (http://quickshare.labs.autodesk.com/).
Currently there are a handful of WebGL games that I found on the Google chrome store via the Mandreel.com Showcase (http://www.mandreel.com/?page_id=1312).
Mandreel is a technology for porting applications (especially games) from iOS or Android to either HTML5 or Flash.
Florian Boesch wrote in a recent blog post some of the short term obstacles facing the development of 3D games using WebGL and HTML5: http://codeflow.org/entries/2011/sep/11/webgl-and-html5-challenges-for-the-future/. The point he brings up are:
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.
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).
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).
Silverlight 5 is also nearly out the door (currently in RC status) and has support for much of the XNA game development framework. XNA is a 3D game engine from Microsoft used to develop games for Windows Phone 7, PC, XBox 360. Not only is XNA coming to Silverlight to be run in the browser, but the rumors are that the rest of Silverlight is also going to the XBox 360 Console (see also here).
The following table provides various points of comparison between WebGL, Flash11 and Silverlight 5:
|
|
WebGL |
Flash 11 |
Silverlight 5 (XNA) |
|
Previous incarnation |
First generation |
Flash 10 |
Silverlight 4 |
|
Browser Support |
All Except IE |
All Except Metro-style IE 10 |
IE 10 in Dekstop Mode, Firefox and Chrome |
|
iOS Support |
No *** |
Yes (via Air) |
No |
|
Console support |
No |
No |
XBox 360 |
|
Windows 8 Metro Support |
No |
No (maybe Air?*) |
No (should be easily ported? **) |
|
Major supporters |
Google, Apple, Mozilla |
Adobe |
Microsoft |
|
Programming Language |
JavaScript + GLSL |
ActionScript + AGAL |
C#, VB .NET, F#, Jscript .NET + HLSL |
|
Commercial 3D Game Engines |
None |
Flare3D (under development:Unity, Unreal Engine) |
None |
|
Freely Available APIs |
O3D, GLGE, Three.js |
Proscenium, Alternativa3D, Away3D, Minko |
XNA |
|
Demo |
Autodesk QuickShare |
3D Physics Demo (unviewable from my computer configuration) |
*** iOS 5 is in theory going to provide WebGL support for iAD developers only: https://www.khronos.org/webgl/public-mailing-list/archives/1106/msg00036.html.
“Browser vendors are implementing WebGL as a way to get partial hardware acceleration after developers rewrite their code. With Internet Explorer 9, developers receive GPU-powered hardware acceleration without rewriting a single line of code which we feel is a better outcome.” - http://www.readwriteweb.com/hack/2011/04/internet-explorer-webgl-and-a.php
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.
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.
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!
Please only report comments that are spam or abusive.
2 Comments
Christopher Diggins
Posted 3 November 2011 12:55 pm
spacefrog
Posted 22 December 2011 11:03 pm
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)
http://unity3d.com/unity/preview/
Add Your Comment
You must be logged in to post a comment. Login or Register here