The Promising Future for WebGL – Part 2: Game Development
With that prediction, where is WebGL popping up today for end user applications? Since I’m mostly interested in games, let’s start with games. Here’s what I’ve found so far: Applications for WebGL are popping up like snowdrop flowers in the winter, but still there are not so many that it’s hard to classify them. Beyond the few WebGL games and other applications for immersive interactive 3D experiences, I am also starting to see some of the necessary support and infrastructure for WebGL developers. For instance, one of the most important things WebGL games will need is publishing support.
Currently the only obvious choice I found for this is Market.js. While started for web game developers, here most all developers can get the support they need while getting the word out about their game and most importantly, monetize their game.
Back to games. All gamers love beautiful games and WebGL game developers are no stranger to this requirement. For some pretty cool WebGL games, check out the popular Turbulenz engine, as well as WebGL Games and Play WebGL. There’s also a little voxel shooter based game by Voxelman and the list goes on.
For a comprehensive list of all things WebGL games, I suggest visiting WebGL.com.
While Hello Racer is a simple visual joy to behold and fun to “play” with, I would not call it a game per se, which speaks to the truth about the current state of game development for WebGL. For most of the experiments found on 30 WebGL Experiments That Are Just Wow!, only a few are considered games at all, such as PacMaze (shown above) and Red Shooting Hood, (shown below) and while these two are quite attractive and cool, they are not up yet to the same par as the multi-level 60fps games gamers are kind of used to.
Regardless, most developers interested in WebGL are only interested in it for game dev. Game developers, particularly indie developers, long to get away from proprietary engines and costly application development tools, more or less prefer open source solutions which standards like WebGL inspire, and they definitely want to be free of plug-ins and web player issues for their web based games, but even more importantly, they want “write once, publish anywhere” ability. Is it possible WebGL will promise all of these in a few years? Let’s look at each piece of the WebGL puzzle:
• Plug-ins: gone. ’nuff said.
• Fully supported open standard: This certainly helps beat closed/proprietary technology for encouraging contributions and long term support. Due to the public and open nature of the development of the WebGL Specification, the growing ecosystem of WebGL tools, libraries and applications is promising indeed, thanks to the support of the WebGL community.
• Enhanced support for 2D. Yup. Whilst WebGL is known primarily for enabling 3D in a browser, it should also give developers a better way to manipulate the Canvas2D tag as a texture, thus 2D overlaid on 3D works fine and even 3D textures overlaid on 2D is possible. Feel free to check out Tony Parisi’s slideshare talk on WebGL for Game Development 2012 for more info on WebGL for game development.
• Affordable or no-cost (aka: sweat equity) application development tools: an ecosystem of such tools for WebGL development is growing for sure. Here’s my list of what I’ve found pretty fast for game developers and apologies if I misplaced any of these in the wrong “category” – if so, please comment and correct me:
- Turbulenz and intro to their game engine
- Goo Engine
- Websonic Engine
- Cube 2: Sauerbraten/BananaBread
- ThreeDee Media (primarily for media and advertising)
- Cannon.js (primarily for physics)
- J3D– student effort
- three.js (the one appearing to be dominant over all the others at this time, late 2012 and perhaps best suited to supporting game dev)
- SpiderGL (one of the first to come along)
- GLGE (also arrived on the WebGL scene several years ago)
- OSG.JS (Sketchfab (see below) uses this one)
For many more frameworks, visit Khronos User Contributed Frameworks.
Content creation tools:
- Sketchfab – Image courtesy of Sketchfab ©2012
• Access to easily-available and/or production quality content. Most WebGL applications and content creation tools import and export COLLADA’s .dae format, and thankfully there are already some useful tools out there to get COLLADA content from existing tools. Even though the scope of the COLLADA standard is quite large and far from adequately supported by proprietary content creation tools, it is an open standard (and like WebGL, supported by The Khronos Group) and thus frequently adopted and supported by WebGL developers. Additionally, import and export of quality production content via COLLADA is possible from many tools including the Unity game engine, where a COLLADA exporter is available on the Unity Asset Store. Use of such a popular game engine editor’s COLLADA exporter will free up a huge amount of previously proprietary format content to WebGL tools and engines. Speaking of COLLADA in the context of WebGL, currently under development is COLLADA2JSON, which introduces a JSON format that aims to bridge the gap between COLLADA and WebGL, as an initiative from the Khronos COLLADA Working Group. It includes a sample WebGL viewer (Chrome canary recommanded) that loads and displays a model asynchronously (vertex and index buffers loaded progressivly). The example model contains thousands of independant meshes and buffers (to show progressive loading). It is my hope this project will continue to get support by Khronros and adoption from developers in due time.
• Browser as game application: One not entirely well explored option that HTML5 and WebGL should enable is putting the browser in the driver’s seat, using it’s most powerful features to support and run a single particular application, whether it be a simple game rendering engine or even providing a game console experience, such as Artillery – whose tag line – the browser is the console appears to be doing.
• Write once, publish anywhere: now, this one is really interesting. Looking first at the “Write once” part, if tools for WebGL platforms can provide developers and artists with what they need here, this could be the holy grail for WebGL adoption and success – long term. Similar efforts into building world class tools have brought Adobe Flash and Unity mainstream, but their content creation and content management tools get less attention than their cross platform run times. But without such tools to build the content for those run times, they would not now be industry standards, or very close to it (as in the case with Unity). Nonetheless, tools that deliver a modern user experience for WebGL are still quite nascent but I’m confident we’ll see some good ones sprouting up very soon.
Back to “publish anywhere.” The obvious question here is how will WebGL work for mobile deployment? Upon doing a little research regarding mobile deployment of WebGL, it seems this is more involved than what one might expect, even though mobile devices support OpenGl|ES. I will discuss the challenges of WebGL deployment for mobile app development, as well as other challenges facing WebGL adoption, in Part 4 of this blog post.
Part 3: Beyond Games is next up.