Changes

Jump to: navigation, search

HTML5 Games/BananaBread

4,852 bytes added, 21:33, 12 March 2012
Created page with "=BananaBread= ==Overview== Make an HTML5 first person shooter by porting the Sauerbraten code to JavaScript along with new web-optimized art assets. ==Requirements== * Botmat..."
=BananaBread=

==Overview==

Make an HTML5 first person shooter by porting the Sauerbraten code to JavaScript along with new web-optimized art assets.

==Requirements==

* Botmatch game (i.e., player plays against AI bots), visually impressive and fun
* Works on modern browsers that support WebGL
* Works on mid-range hardware
* One high quaility playable level, preferably several
* One character model + weapons

Non-Goals - Out of Scope

* No networking (not a multiplayer game)
* No editing (it will work, but no way to save etc.)
* No new gameplay, no new effects - keep all that exactly as in Sauerbraten

==Resource Requirements==

* Alon Zakai (3 Months)
** Will need to be working for the duration of the project on trouble shooting and optimizing Emscripten
* Gregor Koch - (2 month)
** Create game maps (worlds inside which play takes place) and texture sets for the maps
** http://www.linkedin.com/pub/gregor-h-max-koch/1/216/991
* Robert Pointon - (2 month)
** Modify the Sauerbraten rendering code to use a WebGL-friendly subset of OpenGL
** http://www.linkedin.com/pub/robert-pointon/14/527/b17
* John Siar - (2 month)
** Create a new character model and auxiliary models (weapons etc.)
** Prior work: http://www.johnny3d.promail.ca/gallery/main.php
* Jeff Simmon - SFX and Music (1.5 month)
** Jeff can produce sound effects and componse music. He is relatively junior however he has developed sound designes for full games in the past.
** Need to figure out the details of his involvement. He is interested but it depends on the number of sound files we need to produce
** http://www.linkedin.com/in/ctsproductions
* Stock Libraries - In an effort to reduce cost and add some flexibility, some budget will be required. This is not to exceed $20,000 USD, it is expected to be significantly lower but this is the maximum until we can create a more accurate budget.

==Duration==

* The project is currently estimated as 3 months.

==Specific Tasks==

* Populate the github repo with the latest Sauerbraten code and the best freely-usable content we can find (just enough to get working while we wait for the art assets). Make sure the game compiles and runs natively.
* Decide on a theme for the game, that will influence all the artwork.
* Add WebGL-friendly rendering path. The game will still compile natively for easy testing on desktop, and the subset of OpenGL it uses will be trivial to hook up to WebGL calls.
* Compile the code to JavaScript, filling in missing libc and GL pieces in Emscripten as needed.
* Add texture set(s) and map(s), optimized for the web. If possible, several sets with different themes with different performance characteristics.
* Add character model with various weapons and colors, optimized for the web.
* Add miscellaneous necessary artwork (splash screen, bullet impact texture, etc.).
* Add sound effects.
* Package the game for distribution so it is easy to just visit a website and have the game start up and run.
* Profile the game, finding possible bottlenecks in JavaScript, WebGL, etc., file bugs in browsers.
Benefits
* Find how much we can do on the web, what size maps, what shaders, etc. we can run while keeping the frame rate high.
* Push for the necessary improvements, both in browsers themselves (JavaScript JITs, WebGL engines, etc.) and in compiler technology for porting code to JavaScript. We can then work to improve performance in those areas, using this game as a benchmark.
* We also want to end up with a playable, fun game, not just a demo. Also, the game will be open in all aspects, from code to artwork, and usable by others both commercially and noncommercially. We don't want just a simple tech demo that shows "hey, look what we can do on the web" but we also want to provide something that people can actually use to power their own games, projects and startups. To make that possible, the code is zlib (a permissive open source license), and the art assets are CC-BY or CC-BY-SA (which allow commercial use).

==Dependencies==

* Mouselock API
* JS Engine optimizations for typed array access and type inference calculation (Luke Wagner)

==Risks==

* Early project in porting 3D game using Emscripten, the goal is to test fesability and the property could require unexpected levels of optimization that was not anticipated in the build time.
* Dependencies may delay port release, however, this should not significantly increase the scope of work
* Hitting unforseen browser bugs that do not get fixed for some time. Part of the goal of the project is to hunt for these. It is part of the inital wave of end to end game experiments so we are almost certain to find these and the time it takes to non team members to address them could increase scope.

==Reference Links==

* http://sauerbraten.org/
* https://github.com/kripken/BananaBread/wiki
213
edits

Navigation menu