HTML5 Games/Categories of Activity

From MozillaWiki
Jump to: navigation, search

There are several different levels of activity that Mozilla is currently undertaking to address HTML5 games. In an effort to help people understand how this effort is broken up, the following categories have been developed.

Platform

  • Altering or adding to Gecko to allow for advancements in HTML5 gaming inside Firefox and Fennec.
  • Solutions are usually as generic as possible to maximize utility to the largest number of users.
  • Working to provide access to necessary hardware in a secure fashion.
  • The more power we can provide for pushing what can be done in the 15ms game loop, the better.
    • This includes improving performance of JS.
  • Most of this work is done in C++.
  • It is important that we develop the basic abstracted capabilities that will facilitate higher level solutions and avoid building specifics into the browser.
    • We should seek feedback to insure that the standard technical and development solutions video game developers use are not blocked by our solutions.
    • The more input we can get from a variety of video game developers with the insight to help us develop and test practical solutions the better.
  • Currently this work is being done by MoCo, by Members of the Foundation, and contributors from the community.
  • These efforts can be tracked at AreWeFunYet

Computationally Intensive Game Features / Middleware

  • Many key aspects of video game code require highly repetitive yet highly intensive computation, not all processed on a GPU.
  • With only 15ms to process the main game loop, these can quickly become untenable if the ability to process this information optimally is missing.
  • Examples are path finding, advanced culling, physics, and collision detection.
    • Contact Benoit Jacob <bjacob@mozilla.com> for example algorithms
    • There is a book series in the Toronto office that covers many past and present techniques for tackling many game programming challenges.
  • There needs to be work done to consider solutions that provide the maximum performance we can achieve in a portable format.
  • We may consider leading open source middleware projects to create highly optimized Javascript libraries to those technical challenges that have generic solutions.
  • These optimizations are very technically challenging and out of reach for most Indy or small game development studios.
  • This is one of the greater challenges we face, but also the most flexible.
    • Basic games can still be developed without using of most processor intensive techniques.
    • The more options we can provide the game development community, however, the more developers will be attracted to the platform.
  • Excelling in this area will likely have a very significant impact to democratizing game development.
    • Non-portable native solutions such as Google's NaCl will move in to fill this space should a portable alternative not be developed.

Tools

  • Tools are the key to making game development accessible, especially in the case of 3D game development.
  • Reaching out to existing tool makers to help them export to HTML5 should be considered a high priority.
    • This includes 3D modeling software like Blender, Maya, 3D Studio Max.
    • Tools like Unity3D that dramatically simplify the development process.
  • Promoting the development of quality open source tools would go a long way to democratize game development.