The end product for New Media’s fourth quartile track ‘Serious Games’ will be a game that teaches the user to control a Parrot AR.Drone using a virtual reality headset and an accelerometer.
The game will be made using HTML5. The communication with the drone is done using nodejs (node-dronestream). Speech recognition will be used to give basic commands.
The code is Work in Progress. A mockup for the design is displayed below:
Web standards have been around since 1995 and have evolved to user’s needs since then. While open standards were supported in the beginning adoption was incomplete and therefore made web development hard across different platforms and render engines (browsers). Because of this, proprietary standards such as flash or shockwave have been developed to bridge the gap of lacking support of existing and new features. These alternatives were realistically the only way of building something ‘fancy’ until HTML5 came around.
In this essay HTML5 will be used as a term of collection as described above.
Before HTML5 was given the ‘final’ state, e.g. it was still a draft, a lot of web developers started experimenting with the new technologies in modern browsers such as Google Chrome. Many creative applications were built and the technology became hyped.
At the same time smartphones started supporting these technologies. This increased the overall expectation of HTML5 as it was seen as the language of the future (Apple initially focused on HTML5 apps instead of Native apps for their iPhone). The term HTML5 became mainstream and it looked like it was the solution to every problem (cross-platform issues, insecure and slow flash etc.).
As with most technologies they ride the hype cycle (Gartner Research). HTML5 was at it’s top at this moment, where a few browsers supported most draft specifications.
When more and more browsers became compatible with most new standards HTML5 was seen as a final replacement for alternatives like Flash. Because of this these alternatives were dropped instantly by many device manufacturers (especially Apple) and lost its position as something that ‘just worked everywhere’. Fragmentation occurred and there was no leading standard to support when developing a rich application such as a game as HTML5 still was not fully adopted.
Reality kicked in that HTML5 was not the solution for all problems. The performance still is not as good as native plugins (Flash, Silverlight) as they can use hardware-accelerated features. While HTML5 may be incredibly user-friendly to use as a programming language, it adds a few layers of parsing, error checking etc. that decreases performance. Comparing a native application to HTML5 still shows an enormous difference. Luckily hardware acceleration for 3D applications are being supported slowly now, but Internet Explorer still has no plans to support them. So the biggest advantage, cross platform development, is instantly gone.
What is going to happen is still unknown. A trend can be observed that while computer power gets better, developers get lazier. A decade back developers had to think about every individual memory address while now we have garbage collectors to clean up a developer’s mess.
HTML5 FOR GAMING
Simple games can be made easily using HTML5. More difficult games with advanced game engines are still under development, but will probably be available within a few years. The biggest bottleneck right now seems to be the available computing power for a browser. Performance is nowhere native games, so there are two options: wait until computers get faster, or optimize browsers for performance.
The second option is not going to happen cross-platform, as then HTML5 will lose its ease of development. So now we are left with the first option, to wait. Ironically, HTML5 was seen as the solution to all problems. What actually happened is that developers created a new, larger problem that has to be solved by everyone instead of a few companies with proprietary standards.