On the 26th of May 2012 Opera hosted an event on WebGL and HTML5 games where I gave a short presentation on HTML5 multitouch. This was the first ever standrads>next event to be hosted in Oslo, and it was scheduled the day after the first ever Web Rebels conference, also in Oslo. The result was that quite a few gifted HTML5 developers showed up at Opera's offices, and some really good presentations on the future of HTML5.
The focus of the event was HTML5 gaming and WebGL, but the presentations held focused mainly on technology, rather than game development, and could therefore be applied to other areas of web development. Rich Tibbet for example, gave a good presentation on the history, the present and the future of HTML5 API's. This included the device motion and orientation API's and the WebRTC API, and managed to show some very cool demos running in the latest browser builds. While not specifically about gaming, it is easy to see how these two API's can be used to make games interactive in a completely new way. It is also apparent how much math is needed to get these API's to do something useful, from finding what direction the device is held in, to recognizing a QRcode marker.
Eric Möller and Jonas Wagner picked up where Rich left, continuing to talk about matrix and quaternion math in 3D worlds. Their talks focused on two very different aspects of WebGL rendering; Eric talked about animating complex 3D characters using skeletons, while Jonas focused on shaders by talking about how to render water. Both presentations show how incredibly powerful WebGL is: you can export complex skeletons from the most powerfull 3D animation applications straight to WebGL and have it render a very complex character in real time, and you can render many of the known characteristics of water, again in real time, better than many video games could only a few years ago.
At the end of the day I got to talk about the multitouch API in HTML5. This API is very easy to use wrong, and is implemented with slight variations on most platforms, so it can be quite tricky to get it to work for all users. I therefore wanted to not only talk about how it worked, but also on how to use it correctly. My presentation is available at GitHub, and is hosted on my site, so you can play around with it on a touch device.
In my presentation I give a short overview of the HTML5 multitouch API. I try to focus on the API being multitouch, rather than only touch, as this is where the complexity comes from. On a multitouch device you have to assume that multiple fingers are touching the screen at any given time, even if your interface only supports one finger. Creating interfaces which can handle these extra touches is a challenge, but by spending time on multitouch support you will get quality applications. I therefore quickly moved over to talking about some of the lessons I have experienced when creating multitouch interfaces.
As already mentioned, HTML5 multitouch has slight variations across devices, and therefore need to be tested on multiple devices. During the presentation I only had one device, so showing some of the bugs the different platforms have was therefore a challenge. I hope I got the message across to the audience, but in the future I'll probably give the talk using multiple touch devices. Another thing I wish I had in my talk was a list of useful links on multitouch in HTML5. At the top of this list is probably the html5Rocks article which goes through the basics of multitouch in the browser.
May 26th 2012