Aves Engine: HTML/JavaScript Game Engine
youtube.com
youtube.com
I had a realtime, multiplayer, persistent world, in NES-style 2D (think Zelda 1). Keyboard-based controls, monsters that moved around, etc. All done in cross-browser compatible javascript.
It used a hidden iframe to poll the map data asynchronously (this was way before AJAX) and update the tiles (a 32x32 grid) in real time. I posted it on a popular forum one day, and had a whole bunch of people moving around on the map together. It was so awesome to see my little world come to life. People hadn't seen anything like it.
Then the server admin killed my account. Shared hosting was all I could afford back then.
I kept working on it for a while on my local machine, but without a place to host it, I lost motivation. It really needed a dedicated server, and that was way beyond my just-out-of-highschool budget.
Anyway, I ended up going to college and never really got back to it. 8 years later, I no longer have the source, or even a screenshot.
Writing code changes you.
The hardest part was actually doing the artwork. I spent weeks doing dozens of little 16x16 pixel sprites. Even walking animations for the characters.
The last punch-line of the video with "but does it scale?" did not really impress me, though. I see roughly 30 clients and to be honest, sending off new position of your avatar and a chat of some 60 bytes + headers a couple of times per second does not say anything about scaling. Even if you pass over tiles and map to the clients on-demand.
A lot of work goes into the server in a game like this (more than most people think) due to the fact that you want the server to make all the decisions and calculations of what is going on in the world (to know state and to prevent cheating). Add to that verification of all data to see if what you just received from a client is reasonable.
I have always had a huge interest in multiplayer roleplaying games (massive or not), it goes back to before I started playing MUDs in the beginning/mid 90's. One thing these guys might want to investigate to use for the server-side code is a project called DGD (Dworkin's Generic Driver). It was originally written for MUDs, but its capabilities stretch way beyond that since a server really only serve bits and bytes (graphics not needed). It was always open-source but under a rather restrictive "not for commercial use" license, and there were few companies that could afford buying it. (edit: But it is since a few months back FOSS (AFL)).
The project: http://dgd-osr.sourceforge.net/
I'd love to see this project being used for something like this and I have been tempted beyond belief to start something like this myself.
I am not affiliated with the project in any way except that I've been writing LPC on and off for some 15 years. The project is not very good at selling itself, but rest assured that the codebase is very stable.
For recording, we used a 27" iMac (slow version of it), but really, it runs almost flawlessly on an iPhone and crappy netbooks.
As jeresig pointed out, Canvas is really only used for calculating click-through maps on objects which can be ignored / done server-side. It should be relatively easy to fix remaining bugs in IE.
Original post:
Since I am not involved in the project, I can't know for sure. But it is presented at a jQuery conference and, really, the main reason why anyone would use jQuery (or any similar intermediate layer written in JavaScript) is to get around cross-platform issues easily. That said, I'm pretty sure that at this stage it probably does not work in IE but I did not see any functionality in the video that suggests that it would not work in IE with a bit of effort put into it before launch.
It probably performs like a dog, though. :-)
On the flipside (and another cool project): FreeCiv (http://www.freeciv.net/) did not seem to be bothered with getting native IE functionality in place (it requires Chrome Frame).
The reason for Open Source is so that YOU, the developer can control your destiny. What if the company tanks, or they decide they want to take the library in a direction that's incompatible with my game? Unless I have the source I'm screwed.
If I have the source, the worst case scenario is I have to hire another developer or two to keep improving the engine.
But even having the source doesn't mean you aren't screwed. Even if you have the source, you still need a license that allows you to do something with the source. It's possible for the upstream team to give you the source, e.g., for viewing, but not grant you any rights to do anything with it. This is why the free software and open source licenses go on about things like guaranteeing redistributability and derived works, rather than just "Hey, you know. You can see the source code." Consider this: you have unfettered access to the "source" of a book in your library. That doesn't mean you have rights to do any of the stuff in the vein of what open source, free software, or most Creative Commons licensing allows you to do.
(It's possible that the "have" in your "have the source" was shorthand for having these rights.)
Can anyone think of a more disgusting, perverted use of the web stack than this? There's a reason nobody uses html and Javascript to represent an MMO game engine. But they did it and it look incredible!
Everyone betting long html5 right now is going to win in the end, because the browser will eventual become the universal UI and slurp in all other "micro-platforms". Yes Apple, this means Cocoa Touch too...
If the folks making Aves wanted to really blow everyone's minds, they would make Aves output Objective-C code. Then you write your iPhone/iPad game in html/javascript, port it to Objective-C, and you're done. Since Apple has publicly blessed PhoneGap, we know html/javascript will never fall under the exclusionary rule 3.1.1. This means Apple just setup html/javascript to be the victor on mobile and gaming platforms.