Skip to content
kripken edited this page Aug 25, 2012 · 28 revisions

Why does this project exist

  • Open, standards-based web technologies like JavaScript and WebGL are capable of a lot more than people are aware. We aim to create a demonstration of how the web can run even a first person shooter, well. No plugins needed!
  • Also, having a full 3D game engine running on the web is a good testcase for profiling and optimizing browsers in order to make them even faster. There are some other impressive 3D demos on the web, but it is useful to have one which is open source and built using only open tools, which makes it much easier to test performance and analyze what can be improved.
  • Another reason for BananaBread is to provide a 100% open source codebase that people can learn from and use. We learned a lot while making BananaBread and others can now benefit from that by seeing our code and even using BananaBread as the basis for their own web-based 3D games.
  • Finally, we also hope to dispel the myth that performance-intensive web content is hard to optimize for multiple browsers, a myth which caused some good WebGL demos and applications to write things like "best viewed in Chrome" or "best viewed in Firefox". Instead, BananaBread runs very well in all browsers that currently support the necessary web technologies (WebGL, typed arrays and blobs, fullscreen, pointer lock, etc.), which currently includes both Firefox and Chrome (and hopefully soon Safari and Opera). We hope that seeing BananaBread proves there is no excuse for WebGL demos saying they only run well in one browser!

Is this open source? Can I use this?

  • Yes! All the code is zlib licensed (among the most permissive open source licenses). Use it freely, both for fun and commercially!

What about the art assets?

  • Practically all the art assets are CC-BY, which means you can use them freely, even commercially. However, an exception is the armored character model (snoutx10k) and his weapons, which use the more restrictive CC-BY-NC. So for commercial use you would need to replace that character model, see the main README in the repo. We hope to change this soon.

Why use Cube 2/Sauerbraten for this?

  • There are other good open source FPS games out there, but essentially all of them are GPL licensed. There is nothing wrong with the GPL, but in the game industry it is very hard to get people to build commercial projects on it, and that is one of the goals of this project.
  • Also, Sauerbraten has great in-game editing tools, which make is easy for people to build maps (the 'worlds' the games take place in). While editing is not a primary goal of Phase I of BananaBread, the option to have easy editing directly in the client running on the web is a very appealing (and web-like!) idea. (You can see a preview of editing already, press 'e' to toggle edit mode. Note that as just mentioned we have not focused on it, so it might be buggy.)
  • Finally, Sauerbraten is a mature, stable codebase, which also happens to be of a reasonable size - just 120,000 lines of code for everything. This helps because the web runs not just on browsers on new desktops but also on older laptops and even mobile devices. The more compact the codebase, the better the chance of it loading quickly and running well at this point in time.
Clone this wiki locally