Platform/AreWeFunYet

From MozillaWiki
Jump to navigation Jump to search

The purpose of this page is to track progress of the open Web platform toward being ready for gaming, track browser implementation status, and compare to competing technologies.

The goal is twofold: make sure we keep in mind what game developers need; and inform game developers of the recent and ongoing progress made by the open Web platform.

The scope of this page is only web-based gaming, so it is on purpose that the only competition we consider here is Flash and Silverlight. Perhaps we could throw into the mix Android/iOS application platforms as phone apps are typical candidates for being implemented using Web technologies; but the desktop and console platforms fall outside of the scope of this page.

Each section of this page is about a feature that's required to enable gaming.

Fast code

Web technology: JavaScript

Competition:

  • ActionScript in Flash
  • C# in Silverlight

JavaScript has been speed up by orders of magnitude over the past few years.

TODO: Can we add some kind of benchmark of JS vs AS vs C# ? Could that be meaningful?

Fast/3D Graphics

Web technology: WebGL.

WebGL is enabled by default in Firefox (4+), Chrome (9+), Opera (12+) on all desktop operating systems and Android. It is available but not enabled by default in Safari 5.1, and available for ads on iOS.

Competition:

  • Stage3D in Flash 11
  • XNA 3D in Silverlight 5
  • Unity3D

The first two graphics APIs are very comparable since they stay very close to OpenGL ES 2.0 functionality (or Direct3D equivalent). WebGL has some extra flexibility and advanced features (more general shaders than Flash and Silverlight, bigger textures than Silverlight, etc). WebGL does not yet have compressed textures, however this is under discussion.

There shouldn't exist any meaningful speed differences between these 3D APIs per se. Speed differences would more likely be caused by language/compiler differences (JS vs AS, etc).

Audio

TODO: fill this section

  • Mozilla has a Audio Data API; WebKit has a Audio API; provide links; discuss ongoing convergence efforts?
    • Is our own Audio Data API really up to the task? 3D positional sound is a requirement.
  • implementation status in browsers?
  • equivalent in Flash, Silverlight?

FullScreen

TODO: fill this section

  • link to the Fullscreen spec, mailing list, any useful resources
  • implementation status in browsers?
  • equivalent in Flash, Silverlight?

MouseLock

TODO: fill this section

  • link to the MouseLock spec, mailing list, any useful resources
  • implementation status in browsers?
  • equivalent in Flash, Silverlight?

Joystick

TODO: fill this section

  • link to the Joystick spec, mailing list, any useful resources
  • implementation status in browsers?
  • equivalent in Flash, Silverlight?

Local file storage

TODO: fill this section

  • IndexedDB
  • What do game developers really need?
  • equivalent in Flash, Silverlight?

Game-oriented documentation

TODO: fill this section

  • Tutorials
  • Example games
  • Articles in Gamedev.net, Gamasutra, etc.