As
HTML5/WebGL was picking up some momentum earlier this year, I started experimenting with it, naively thinking that it would be the new standard for browser gaming. Little by little I added some code to the small project whenever I remembered it. However it has been sitting on the back burner for a few months without any update. Now that
Flash 11 has been release, it's finally time to part with this little project, which could be viewed with Firefox (not guaranteed with any other browsers).
External Link Here
Usage: AWSD to move the camera and mouse drag to rotate it.
How it is done:
First I found an open source linear-algebra library called
glMatrix.js, which serves as the foundation to all math done here.
JSON is a no-brainer for the mesh format because Javascript supports it natively. Pretty much everything else is built from scratch, for example shaders.
A few reasons that HTML5 might not be very feasible for gaming:
1. Lacks a comprehensive IDE for development such as Flash Builder, and thus
auto-completion and spelling check(in Javascript spelling something wrong is fatal)
2. Cross-browser compatibility has a huge question mark(it's still called experimental-webgl), with IE falling behind.
3. Performance concerns. Flash is compiled while Javascript is not, and how(if any) the browsers speed up this is totally up to them.
4. Javascript as a language
sucks.
Added May/7/2012
Let's see how
Epic's Tim Sweeney sees Adobe Flash and HTML5:
So what about the browser? That's something that relates more
to something specific that you guys are working on with Unreal Engine.
Where do you see the future of the browser in games?
TS:
Well, we would like to see the web browser as another platform. You
should be able to take any game -- a PlayStation 3 or iOS game, for
example -- and just go to that and play it from any web browser.
We're slowly heading in that direction as an industry. One thing
that's happened recently is Adobe Flash. For a decade or more, Adobe
Flash was a little scripting language for creating more interactive
webpages using a proprietary browser plug-in, but more recently Adobe
created a translator.
You give it any C++ program, like Unreal Engine 3, and it translates
it to a platform-independent application that can run within Flash,
within any web browser or on any platform where Flash runs.
And so now any browser that supports Flash can play any web game
that's built with Unreal Engine 3, or any other engine that's
cross-compatible with Flash. That's an awesome breakthrough; it shows
you the possibilities.
But I think the next step in that is cross-compiling games from C++
or whatever and directly running them as native HTML5 and JavaScript
applications within any standard web browser. And you can do that in
theory today, but it
ends up being slow and unstable just because of the
early state of JavaScript implementations, and limited performance, and
current web browsers.
In another few years, I think that's going to be a very realistic
scenario. And so the web will generally be a platform, and you can have a
real application with a full feature set that runs within a web
browser; that'll be very welcome. The web is a fairly awkward experience
when you use a platform that's not the majority of the install base,
and I think we're going to see big improvements