I'm planning to write a 3D FPS game, based on WebGL.
- Should I use some WebGL framework?
- What is the most active and popular WebGL library today? Does it support LOD, Heightmaps, COLLADA and some Materials system?
Thanks.
I'm planning to write a 3D FPS game, based on WebGL.
Thanks.
Surprised noone mentioned Three.js. It has strong community behind it which adds new features on regular basis. You can try it out and play with it on WebGL playground:
http://webglplayground.net/
There is a Three.js template for new projects.
Yes you should definitely use a WebGL framework, it will save you a lot of work.
The WebGL ecosystem is in such a rapid state of change at the moment that it is quite difficult to choose a particular library. However, of all the libraries I have seen, I would suggest Copperlicht as it seems to be aimed at FPS games in particular. There are so few fully-developed WebGL games published right now that it is difficult to say what library is popular.
You might also want to take a look at GLGE and SceneJS. As Liam says, there are no established leaders yet, but from what I've seen those two and Copperlicht are the most-discussed. SceneJS in particular has a very active mailing list.
I've recently been looking at different WebGL libraries.
SceneJS is the one I've been experimenting with the most so far. It's lightweight and focused solely on the creation and manipulation of the scene graph. Scene graph objects and data are defined in JSON which I have found to be pleasant to work with. Graph nodes are later found by an ID and can them be manipulated.
Comprehensive documentation is provided - although there are some glaring holes. Good community support via a Google group.
Compared to GLGE and Copperlicht, it's woefully short on features. No skeletal animation, no collision detection, no particle system, no ambient light even!
In the future I'll be looking at GLGE, C3DL and the WebGL port of CubicVR.
It's been just about a year since you asked and WebGL is now shipping in firefox and chrome and firefox mobile for android.
If I were to consider this now, I think I'd go with GLGE for newcomers to OpenGL, SpiderGL if you know OpenGL already, and perhaps look at PhiloGL if you are an ExtJS/Sencha developer and like that style of doing things. Sencha touch will make more sense for a 3d app when the built-in webkit on mobiles ships with WebGL.
A few new options emerged since this question was first asked.
For games, Turbulenz is a very good library: http://biz.turbulenz.com/developers
Playcanvas seems to be good too: https://playcanvas.com/
Depending on your needs regarding download size, Unity can be a good choice too. With it, you can export your game to almost any platform. The only downside maybe is the relatively large files it produces. http://docs.unity3d.com/Manual/webgl-gettingstarted.html
There is a WebGL library focusing on web-game design and implementation called Babylon.js. http://www.babylonjs.com
Its strong advantage is that it provides lots of rendering effects in the library and you can just simply call these functions.
Of course, Three.js is a fundamental library for WebGL and all things are able to be implemented by it, just it may be time-consuming for game design. But I suggest you to start with Three.js to get familiar with WebGL and then use Babylon.js to do your game.
Depending on your platform, if your FPS game runs on PC browser with powerful graphics card and CPU, then the best option for you is unity3D.
If your game targets on mobile phone, maybe you could try THREE.js or SceneJS.
And if your time is limited, and your game is a bit sophisticated, I recommend you the LAYABOX, for its complete ecosystem and full of tools, that could save a lot of work. Hope it helps.