I started a series of experiments towards a game engine in the browser. This is part of a bigger plan that I hopefully get sorted out soon and write down eventually*.
To me, there are two paths to follow towards games** in the browser and I will follow both of them.
The ‘Bananabread’ way
I cannot stress enough how incredibely cool this is.
- 2D graphics: Raphaël, D3 (etc etc)
- 3D graphics: Three.JS, SceneJS (etc)
- physics: Cannon.JS, Ammo.JS (etc)
- audio: Webaudio.JS (etc)
- persistence: FileSystem API
- controls: PointerLockControls
- networking: SocketIO, WebRTC
Why is this important?
There is absolutely nothing wrong with proprietary concepts like the Unity Engine, not even with Flash.
I still think it’s important to be able to create something right in your Browser – both Mozilla and Google are working towards turning their browsers into multimedia engines and add the parts missing in a spectacular speed.
Most of the components needed are already there, so why not use them?
But even more important: all of these libraries are open source. This means we can not only use them for free, but we can learn from them, combine them and maybe enhance them to something that the original authors may have never thought of.
So – what keeps you from building?
* Rob Hawkes (former Mozilla) has written an excellent post which includes some aspects of the bigger plan™.
*Disclaimer: when I say games I mean the good definition of games like in “cutting edge real-time database network application with multimedia frontend for entertainment” and not the awkward german definition of “it’s fun so it can’t be serious”. And no, I won’t grow up.
[EDIT] The source code to the demo is on Github.