3. It's An Alternative To Flash
Traditionally, Flash and web games have gone hand in hand, but with Adobe's recent decision to cease development of Flash for mobile browsers, developers will have to look at alternatives for the smartphone market. But how does HTML5 compare?
According to Zynga's Paul Bakaus, there's still a place for both, as they each offer their own unique specialties.
"Well, Flash has this new Stage 3D API, while the web has WebGL. Both of them are using native OpenGL calls on the bottom layer, so they're comparable in speed," he explained. "Now, regarding software drawing, I think HTML5 has actually surpassed Flash because it's so close to the actual browser, so they can drive various optimizations on a hardware accelerated layer. But Flash has some very significant advantages too."
"I'm seeing great 3D applications come from Flash and Stage 3D, and seeing HTML5 really being the way to go cross-platform. And then there are native apps too, which are a great way to integrate with the OS on mobile phones. I'm not sure if there's ever going to be a winner -- I wouldn't separate them so. I think it'll be more like specializations."
Google's Seth Ladd added that he expects HTML5 to eventually coexist with Flash, with each platform offering its own unique benefits.
"I think that what you'll see is that all of the different platforms that make up the greater web as we know it will be able to get pushed forward because there is now some competition," he said. "I expect that Flash will find another angle for which they can optimize their experience, and the open web platform will find another way in which they can optimize their experience, and then you can see those play out. And that's really great for end users."
Others, like web developer Dominic Szablewski (creator of the JavaScript-based Impact engine), say Flash might work well for artists and the like, while HTML5 is a great environment for those who like to code.
"Flash was always great for creative people. Creating animations or very simple games is pretty easy with the Flash IDE and a few mouse clicks. Such a tool is still largely absent for HTML5; you really have to write code to do something."
"However, HTML5 is completely free -- to get started, you just need a browser and text editor, no need to purchase an expensive application."
Szablewski added that with Flash no longer an option for mobile, he views HTML5 as the future of web development. As he puts it, "If you want to build stuff that works in mobile browsers, if you don't care about IE6/7/8 users, and if you don't want to use a dying technology, use HTML5."
Regardless of how it compares to Flash, mobile companies looking to go cross-platform might have little choice but to turn to HTML5. At least, so says Moblyng veteran Stewart Putney.
"Since there is no Flash support on Mobile, I'm betting that HTML5 will become the cross-platform standard in mobile. And so far, it looks like that is becoming true."
4. Audio Is a Big Problem
Sound undeniably plays a crucial role in game development, yet unfortunately this is one area where HTML5 really falls short. The APIs available for the platform just pale in comparison to those available for native app development.
Zynga Germany's Paul Bakaus particularly laments this shortcoming. "The number one challenge with HTML5 is audio, and this needs to be fixed. It's as simple as that. There's no way we can work around audio, right? Audio is needed for great games. This is the biggest challenge, but I wouldn't say stop building games because of that."
He explained that he thinks web developers will be able to fix these audio issues, but a few things need to happen before that becomes a possibility.
"There are two things that I think need to drive audio," he said. "One of them is actually us, as I mentioned before. We need to make vendors aware of the problem, so we need to create games, and we need to tell them about the shortcomings our games have."
"On the other hand, we really need vendors to accept that this is a problem, and work against it. I see it less prioritized than fixing graphics right now, and that's a huge concern I'm having. As a vendor, you're not really thinking in the game world, right? You're not realizing that in order to make good games, audio is needed. We really just need to make them aware of the problem," he said.
Electronic Arts creative director Richard Hilleman agrees with Bakaus, as he explained during his keynote at the 2011 New Game Conference. "One thing that didn't go well for us was sound," he said. "We still tend to falter with sound on HTML5, and we have to resolve that... I have some hopes the next iterations of the browser will address that, but it's another big problem."
|
Number 8: With HTML5, your game MUST be open source (client-side, at least).
I think open source is super cool and I'd like to push myself to publish more source for my projects, but being forced to by the platform is, shall we say, a non-insignificant detail.
Even though alternatives like flash are dead easy to decompile with the right tools, that's still one step removed from having your source just all hanging out, flapping around naked in the wild internets.
Not a deal-breaker for me personally, but seems just as important a "Thing to know about HTML5" as the other ones mentioned here.
There are some workarounds for this problem, but they're not exactly pretty.
You could keep key portions of your game's logic server-side, so that the publicly-visible code is more or less a "dumb reader," querying the server for the game logic and anything interesting.
You'd still be exposing any clever graphical tricks you're using, as well as I/O and network logic, but someone won't be able to copy your code wholesale, slap in new assets, and market it as a competing game.
Hackers can dig into your game code, but they have to deal with an unreadable mess and the owner is still "protected" by usual copyright laws (just like any other game).
Nice article!
You can decompile AS3 to an almost 1:1 representation of its original form. Some information is lost (variable names) but this isn't that hard to overcome.
Meanwhile in JS land there is minifying. Although primarily to save bandwidth, using Google's Closure Compiler with the advanced minifying turned on (beware: it modifies a subset of JS, so not all JS code is usable this way) will dramatically alter your code's structure and remove nearly all hardcoded variables and properties.
I'd rather use JS than AS3 in this regard.
JavaScript needs to be up to par. From page 2:
"... HTML5 has actually surpassed Flash... But Flash has some very significant advantages too."
Yes. It's called ActionScript, and it blows JavaScript out of the water.
From page 2:
"... "HTML5 is completely free -- to get started, you just need a browser and text editor, no need to purchase an expensive application."
That's a big plus. However, you can develop with Flash without spending a penny also: FlashDevelop + the Flex SDK, which reduces its barrier to entry. In addition to Flash CSx costing 3 arms and 5 legs, it isn't all that great anyway. It's built-in code editor sucks, and the tool crashes a lot.
"There's No "App Store"
There's also no "HTML5GameLicense.com" either, like Flash has FlashGameLicense.com. It's probably too early for that, although I'd like to see it in the future.
_________________________
- Ziro out.
I wish some of Adobe's proposals for ECMAScript 4 had gotten more traction. Despite the massive gains in JIT compilation of JavaScript, ActionScript still tends to perform better for the moment. And ActionScript makes it much easier to write a medium-sized project with multiple developers without stepping on each others' toes.
I hope this is just a temporary phase of HTML5's evolution, and that in a few years the latest version of JavaScript will have improved or been replaced as the language of the web by something more robust.
In web browser flash its still the king and the fact is that most people have the plug-in to play flash than people who have browsers that can run html5. And most web game developers have to learn html5 because "its going to be better" "its going to run faster" "its going to be true cross platform" and maybe you can monetize them.
And in mobile html5 its still not an option for games, native apps its still the way to go.
I canīt see the incentives to learn html5, and "because its free" its not an answer because you can create flash content for free.
HTML 5 is also really unstable, and I cannot count the number of times I've seen chrome and Firefox just suddenly go "Sorry, script is not responsive" and never come back since implementing HTML 5. They'll need to discard Javascript in it's entirety before HTML 5 is really viable for anything except "gee wiz" value.
The open source side of it is unsettling. I like open source as much as the next guy, but I also don't like the idea of uncompiled code sitting there in the breeze. It just feels negligent somehow.
part_of_HTML5_that_aren%27t
- WebGL
- FileReader
- XMLHttpRequest
- querySelector(All)
- Geolocation
- ECMAScript5
- CSS3
- XBL2
- Web Workers
- Web Sockets
- Faster JavaScript
The WebGL one is the biggest: "Well, Flash has this new Stage 3D API, while the web has WebGL". WebGL != HTML5
And pragmatically HTML5 is defined by what WHATWG does, not the W3C, and their "HTML Living Standard" contains what's traditionally called HTML as well as JavaScript, web sockets, web storage, etc.
Technically, we are in a state of affairs where "HTML" includes e.g. web sockets et al., but "HTML5" does not. So until the people making the standard figure out what's in the term and what's not, it seems foolish to criticize anyone else or to make broad declarations about what is or is not part of the standard.
As a project decision, when choosing platform, if you have audio, there is no reason that your platform of choice should be HTML5 given that workaround.
It's unbelievable that simple, cross browser implementation of audio isn't available.
For example, the browser version of Rage of Bahamut will often be played in very short sessions and in public places where it would be difficult for the player to make any use of audio. Even if the player is wearing headphones, he may be listening to music while switching between browsing several tabs, so making the usability dependent on audio could be considered more disruptive than beneficial.
"And of course, if you're working with a limited budget, you might now have the resources to make a game that works across all browsers."
Might not, surely?
Good article!
It's fast, better even than AS3, and lets you target JS (and Flash, and C++, and several other things). It's pretty much the secret weapon of web development.
Not to mention that it's still being implemented in parallel by numerous parties and so the issues of item 7 are still applicable. The fact that the target is now properly defined doesn't mean all implementations are suddenly up to date.
Not that constantly evolving is bad thing, just that point 7 is actually still valid.