HTML5 App and Game Development

by John Tyrrell

HTML5 opens up a world of possibilities for app and game development -- but the road ahead still has some twists and turns

Emotions have been running high in the HTML5 application development space in recent months. With the current worldwide explosion of mobile and web app use currently underway, many feel HMTL5 is the bright future of cross-platform development.

The vision is simple: one single, straightforward web programming language that allows the creation of anything from a basic service app to a complex game that works across any platform without the need for native development. In theory, HTML5 is a developer's dream, reducing costs, leveling the playing field and, for app and game studios in particular, opening the floodgates to a wealth of new potential development talent. But in practice, as is often the case when disruptive new technologies enter the marketplace, the road ahead for HTML5 has some twists and turns.

One of the hottest HTML5 debates centers around game development. Games are complex beasts that generally require specialized coding and the creation of native versions for each platform they are deployed on. The idea that HTML5 could eliminate these hurdles is exciting to the countless coders around the world who are working to embrace the emerging technology.

But after initial exploratory efforts across the breadth of the cross-platform game development community, many reluctantly admit that HTML5 remains a promise for the future, not a current reality. In an article published on GamesIndustry International, two developers from GameDuell aimed a pin at the bubble of excitement surrounding HTML5 and, while investment in HTML5 game development is certainly continuing, the resulting burst bubble gives pause for thought.

It may be true that the platform is not yet ready to deliver Call of Duty on a phone, but many developers are investing heavily and successfully in HTML5 right now, predominantly in the app space, but also in games. At Google's I/O conference, Electronic Arts unveiled a working prototype of a social cross-platform action game entitled Strike Fortress, designed to showcase exactly what HTML5 is -- or at least soon will be -- capable of. Although that game is not planned for release, it demonstrates that for developers with the right skill-set and approach, HTML5 is already working -- and working well.

An App for That

For a look at fully functional HTML5 apps that are already making the cross-platform dream a concrete reality, try visiting the www.jqmgallery.com website. The site is a showcase of 150 jQuery mobile applications submitted by developers and the companies the apps were built for. "There's a huge spectrum of major companies represented there doing relatively straightforward but useful apps, and they run," says Mike Richmond, from Intel's Open Source Technology Center.

They're apps designed for mobile, but the fact that they've been created using HTML5 means they will essentially run on any platform, with no native development required. "You can point your Chrome browser to any that are actually live in the site and run them," says Richmond. "Most are designed as mobile apps so they are not designed to exploit a big screen, but they work."

Playtime

The question of game development in HTML5 is a good deal more complex. The games industry is currently taking a moderate perspective on the usefulness of HTML5. "There are clearly games that can't be done cross-platform with HTML5 right now," says Richmond, "but there's a tremendous amount of industry attention on this problem."

"Whether you're talking about the work that's being done by us and Tizen, or the work that Google is doing in Chrome and Chrome OS, we're all very keenly aware of the problems that are yet to be solved," says Richmond.

Limitations with HTML5 can manifest themselves as a result of the sheer scale involved when developing games as opposed to more straightforward applications. Problems can range from a lack of clarity with script organization and issues with certain browsers, to programmers' potentially reduced mastery of code behaviors resulting from the language's high tolerance for less than optimum coding.

"I don't think we're there yet, at least not for every kind of app," says Richmond. "For the kind of apps on the jQuery mobile gallery the answer is, yes we are there. For games, if you want to write a first-person shooter, that's probably not true."

Ultimately, the limitations developers hit with HTML5 will depend on the type of application they're creating. European social gaming startup oOki is currently developing its first online multiplayer puzzle game for deployment on Facebook followed by other platforms, including browsers and mobile. The company decided early on to embrace HTML5 standards, seeing it very much as the future of cross-platform social game development, and the team is confident that it made the right decision.

"Some parts of HTML5 still need work, like WebGL management, and there are still a few problems with certain browsers, but the remaining hurdles can easily be overcome," says Stephane Caillet, head of game programming at oOki. "We haven't hit any problems we couldn't find a way around."

Caillet has a rather more well-defined goal when it comes to the real or perceived limitations of HTML5: "For me, the main challenge with HTML5 is showing that you can make better applications than you can with Flash."

Speed Freaks

Another accusation regularly aimed at HTML5 is that it lacks speed when compared to, for example, C or other native programming languages. However, the speed issue is often not as clear cut as some of the naysayers would have us believe, and can be seen to have emerged more as a result of the migration of programmers from other languages to HTML5 and its related languages such as JavaScript and CSS rather than because of any intrinsic weakness in the platform itself.

"The straight programming comparisons between C and JavaScript are potentially quite misleading," says Richmond. "First of all, JavaScript performance has probably improved by a factor of 50 to 100 in the last five years on exactly the same hardware based on the introduction of just-in-time compiler technology."

Richmond paints a colorful picture to illustrate his point: "One of the things we've noticed is that if you ask a C programmer to program in JavaScript, a really good C programmer can become competent in JavaScript in about six weeks," said Richmond. "Then if you tell the programmer to create dancing birds flying across the screen, they'll start coding in JavaScript the same way they would have coded in C.

"Then the programmer will benchmark the code and say, 'Oh look, it's slower in JavaScript than it would be if I had written it in C,'" continues Richmond. "But then a content author comes along and says, 'You want dancing birds? Well I'll do that in five lines of HTML and forty lines of CSS, and that'll run faster than either of them.' Why? Because the CSS code was implemented by the best programmers on the planet working on the browser. This is particularly relevant for people doing visual-oriented apps. There's a set of things you can do in CSS that, unless you're trained as a content author, you might not even consider.

"And it's very controversial," continues Richmond. "If you go to a web developer convention and throw the word CSS out there, you'll hear pros and cons. But the implementation of CSS is tied to the heart of the browser and the heart of the graphic subsystem, and if what you want to do is possible with CSS it's going to be very, very fast."

Caillet has certainly encountered no issues in terms of speed compared to the previous industry standard development platform for online social games: "For our game we're achieving a level of performance that's at least as good as a comparable Flash game."

This reality is part of the opportunity Richmond sees for content authors to become highly successful app developers and grow the overall development ecosystem. "We see HTML5 bringing a whole new set of application developers to computing, and the people that it brings start out as content authors. Normally you associate people who do content development and authoring with creating websites. They have a certain kind of training and a certain set of sensibilities and skills, and then suddenly those people are creating applications.

"Compared to the traditional software engineering model where you go and get a computer science degree, learn to code in C, and use a certain set of tools, it's all different now for these other people," concludes Richmond.

Photo: Corbis Images

Programming & Software Development: "HTML5 App and Game Development"