18 comments

[ 2.7 ms ] story [ 29.4 ms ] thread
Is it common to include Javascript as a part of HTML - in the sense that they describe some of the demos as "pure HTML5?"

To me that feels ... wrong. Obviously Javascript is a core ancillary feature for browsers, but it's not part of the markup specification itself.

Yes, seeing as you can't really create much of an engine with just the DOM.
Right, that's sort of my point. It seems like an attempt to avoid mentioning that JS is involved at all.
When they say "pure HTML" they mean, that they access the HTML api directly. The non pure HTML examples use third party javascript libraries as an layer between the html api and their own javascript code.
Don't forget that web is a legacy platform, so there is not much logic in naming. GUI is not a hyper-text as well, documents are.

So basically "HTML5 Game Engine" is very misleading when understood literally. Practically though it means putting a bunch of scripts together, so that they could be scripted by someone else. Scripting the scripts basically.

It's a game engine that relies on HTML5 elements for rendering, audio and scripting. I don't find that misleading :)
HTML: Hypertext Markup Language.

Hypertext: is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text which the reader can immediately access...

So it's a game engine that relies on something that is, according to definition a text-only language. Are you really into ASCII games? Otherwise the name is very misleading. For legacy reasons.

HTML5 - the number in the name is important, this is a brand that represents a set of supported APIs and tags (https://developer.mozilla.org/en/docs/web/Guide/HTML/HTML5). They are obviously not talking about the markup language itself.
They equally could've called it SQL256 or XML2000 and then explain that it doesn't mean what the abbreviation states. I guess there is no need to argue for us, but personally prefer names that reflect the nature precisely. At least this is how I name my programming constructs and projects.
I know it's stupid, but the other alternative is calling it "HTML5&friends Game Engine", like the Mozilla guide suggests... Technically correct, but just as vague and now it sounds like a kid's show... I think we can easily agree this is not an improvement :)

The real name, which is "HTML5 + JavaScript + Canvas API + WebGL API + Web Audio API + Web Workers API + jQuery (for good measure, not actually used) + CSS3 Game Engine", doesn't fit on a t-shirt and, when put in a title tag, probably crashes older browsers and causes a Google employee to come and manually set your PageRank to -1.

"Pure HTML5" is intended to convey the maturity of "The Web" as an application platform, much like J2EE, J2ME, .Net before it. It no longer means a purely markup solution, but is also restricted to a "plug-in free" user experience for compatible web browsers. This evident when you see the W3C's HTML5 Badge Builder [1] and note all the APIs it allows you to specify.

[1] http://www.w3.org/html/logo/#badge-builder

So the idea is to use a big monolithic multi-API thing as opposed to modular plug-in based system?
No, "pure HTML5" has a specific meaning in the gamedev community - it's the combination of HTML5 elements like canvas, video and audio with JavaScript for the game logic, i.e. using the browser as a game engine (it's actually pretty cool, the APIs are very high-level and well-suited for the task) as opposed to using an actual game engine, like you normally would.
The demos from the book are incredibly lame -- hardly more than "hello world".

I checked out the linked game engines, and of them the only compelling option seems to be ImpactJS (Turbulenz is hard to tell since the website linked is user-targeted). That said, ImpactJS seems to be non-free ($99). (Not complaining, $99 is a small price to pay for a good library with documentation.)

Most infuriating game of pong i've ever played.
I agree. It would be much better if the keydown vars were set to false on an actual keyup event rather than setting it to false after the paddle is moved.
The examples are pretty bad.

I think a game developer should learn generalized game development rather than focusing on a specific engine, and apply those skills towards the platform of their choice.

I find most of these "game engine" books almost like "learn x in y hours".