Platform/Games: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 3: Line 3:
The platform games initiative is made up of a core team whose works is primarily focused on making the Gecko platform, Firefox Desktop, Firefox OS, and Firefox for Android the best it can possibly be at running games.  The core team is ready to help coordinate with other groups in the community who are working on features or optimization that are important to game developers and provide assistance when needed.  Platform development continues to focus on games and we hope you are as excited as we are to make HTML5 rock on the web!
The platform games initiative is made up of a core team whose works is primarily focused on making the Gecko platform, Firefox Desktop, Firefox OS, and Firefox for Android the best it can possibly be at running games.  The core team is ready to help coordinate with other groups in the community who are working on features or optimization that are important to game developers and provide assistance when needed.  Platform development continues to focus on games and we hope you are as excited as we are to make HTML5 rock on the web!


==Mozilla Games Technology Roadmap ==
= Mozilla Games Technology Roadmap =  
{| class="wikitable" width="100%"
There are two levels to this document. The first is the Roadmap section which contains areas that are currently in development and we have a reasonable level of confidence we can address in the next year. For the topics that are listed in the Under Consideration section, we are actively investigating the best way to address them.
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
 
|-
==Allow developers to better exploit hardware parallelism==
| style="vertical-align:top;" |
Developers are struggling to get multi-threaded games running efficiently on the Web:<br>
* Testing & Benchmarks
*Standardize, implement and ship SharedArrayBuffer [1,2]<br>
** Collaborate with QA to develop a regular cadence for running benchmarks + analysis
*Add pthreads support to Emscripten [1,2]<br>
** Collaborate with QA to develop a "games test plan" for each release cycle
*Expose performance-sensitive Web APIs to Web Workers: WebGL, WebSockets, IndexedDB, WebAudio, WebRTC, WebVR<br>
** Reporting: create a mechanism for reporting the above to incite action on part of engineering
*Share compiled code (asm.js and WebAssembly) between workers [1] <br>
------ Items above planned to be done throughout 2015 ------
*Developers want to take advantage of SIMD hardware to optimize their code:<br>
* GDC 2015 {{bug|1107589}}
**Standardize, implement and ship SIMD.js [1,2].<br>
** Technical areas of focus include include: Polish & Performance, WebVR, pthreads, SIMD, WebGL2, and possibly Web Audio
**Include SIMD in WebAssembly [1].<br>
** Identify all Demo Content and continue to define technical requirements
**Add SIMD support to Emscripten [1].
** Work with PR to identify campaign messaging, demo deliverables and related schedule
==Improve cold load time of large compiled codebases.==
** Pre-event hardware requirements, training, and attendance logistics
Developers want to see reduced download, compilation and startup time for multi-million line compiled codebases.
------ Items above planned to be done before or during Gecko 39 (Q1) ------
*WebAssembly will provide significant download size reductions (even before native support, through the polyfill) [1].
* Win64: confirm and communicate schedule
*Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [1].
* Emerge from Q1 with a solid plan for triage going forward
*Add a fast WebAssembly/asm.js compiler that allows an app to start quickly while a fully-optimizing compilation proceeds in a background thread [1].
------ Items above planned to be done before or during Gecko 42 (Q2) ------
*Off-main-thread, streaming parsing/compilation [1].
* Heavy emphasis on driving performance across Gecko Platform
*Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression.
* Start planning for GDC 2016
**Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip).
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
==Improve browser storage capabilities.==
| style="vertical-align:top;" |
*Developers seeking to avoid the permission prompt associated with persistent storage hit limitations of temporary storage as currently implemented in browsers.
* Nothing here for now.
*Improve temporary quota limits to take into account factors like frecency.
|}
*Provide more information on quota usage and allowance [1].
*Propose, standardize and implement finer-granularity units of evictable storage [1].
*Allow cross-origin storage usage [1].
*Developers that need persistent storage guarantees hit limitations of persistent storage as currently implemented in browsers.
**Standardize persistent storage so that other browsers implement [1].
**Reduce UI friction associated with the persistent permission prompt [1].
**Improve storage management/eviction UI for browser users.
==Improve browser graphics capabilities.==
*Ship WebGL2 [1].
*Standardize and implement streaming WebGL canvas via WebRTC [1,2].
*Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus).
==Allow developers to better avoid 32-bit browser Out-of-Memory conditions.==
*Ship 64-bit Firefox on 64-bit Windows.
*Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and FileReaderSync to provide synchronous file I/O in workers.
==Continue investment in performance across the platform.==
*Significantly optimize WebAudio performance [1].
*Reduce WebGL shader compile times [1,2].
*Reduce latency and jitter in the browser’s rendering pipeline [1,2,3,4].
*Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc.
==Continue investment in Emscripten.==
*Add support for pthreads, SIMD, and WebAssembly, as mentioned above.
*Further improve compilation speed.
==Continue investment in Firefox developer tooling to better support game developers.==
*Improve Web Worker support [1].==
*Allow developers to break on various asm.js/WebAssembly error conditions [1].


==Events==  
==Events==  

Revision as of 23:17, 1 July 2015

Platform Games

The platform games initiative is made up of a core team whose works is primarily focused on making the Gecko platform, Firefox Desktop, Firefox OS, and Firefox for Android the best it can possibly be at running games. The core team is ready to help coordinate with other groups in the community who are working on features or optimization that are important to game developers and provide assistance when needed. Platform development continues to focus on games and we hope you are as excited as we are to make HTML5 rock on the web!

Mozilla Games Technology Roadmap

There are two levels to this document. The first is the Roadmap section which contains areas that are currently in development and we have a reasonable level of confidence we can address in the next year. For the topics that are listed in the Under Consideration section, we are actively investigating the best way to address them.

Allow developers to better exploit hardware parallelism

Developers are struggling to get multi-threaded games running efficiently on the Web:

  • Standardize, implement and ship SharedArrayBuffer [1,2]
  • Add pthreads support to Emscripten [1,2]
  • Expose performance-sensitive Web APIs to Web Workers: WebGL, WebSockets, IndexedDB, WebAudio, WebRTC, WebVR
  • Share compiled code (asm.js and WebAssembly) between workers [1]
  • Developers want to take advantage of SIMD hardware to optimize their code:
    • Standardize, implement and ship SIMD.js [1,2].
    • Include SIMD in WebAssembly [1].
    • Add SIMD support to Emscripten [1].

Improve cold load time of large compiled codebases.

Developers want to see reduced download, compilation and startup time for multi-million line compiled codebases.

  • WebAssembly will provide significant download size reductions (even before native support, through the polyfill) [1].
  • Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [1].
  • Add a fast WebAssembly/asm.js compiler that allows an app to start quickly while a fully-optimizing compilation proceeds in a background thread [1].
  • Off-main-thread, streaming parsing/compilation [1].
  • Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression.
    • Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip).

Improve browser storage capabilities.

  • Developers seeking to avoid the permission prompt associated with persistent storage hit limitations of temporary storage as currently implemented in browsers.
  • Improve temporary quota limits to take into account factors like frecency.
  • Provide more information on quota usage and allowance [1].
  • Propose, standardize and implement finer-granularity units of evictable storage [1].
  • Allow cross-origin storage usage [1].
  • Developers that need persistent storage guarantees hit limitations of persistent storage as currently implemented in browsers.
    • Standardize persistent storage so that other browsers implement [1].
    • Reduce UI friction associated with the persistent permission prompt [1].
    • Improve storage management/eviction UI for browser users.

Improve browser graphics capabilities.

  • Ship WebGL2 [1].
  • Standardize and implement streaming WebGL canvas via WebRTC [1,2].
  • Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus).

Allow developers to better avoid 32-bit browser Out-of-Memory conditions.

  • Ship 64-bit Firefox on 64-bit Windows.
  • Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and FileReaderSync to provide synchronous file I/O in workers.

Continue investment in performance across the platform.

  • Significantly optimize WebAudio performance [1].
  • Reduce WebGL shader compile times [1,2].
  • Reduce latency and jitter in the browser’s rendering pipeline [1,2,3,4].
  • Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc.

Continue investment in Emscripten.

  • Add support for pthreads, SIMD, and WebAssembly, as mentioned above.
  • Further improve compilation speed.

Continue investment in Firefox developer tooling to better support game developers.

  • Improve Web Worker support [1].==
  • Allow developers to break on various asm.js/WebAssembly error conditions [1].

Events

Often event planning activities will need to be Moco only but we'll be sure to post info ahead of time as much as possible
  • GDC 2015

Project Portfolio

Projects

Related Projects

Tracking

Bugzilla Queries

Priority

Release Targets

Communication

Project Team Meeting Wednesdays at 10:00 AM (PST)/1:00 PM (EST) for 60 mins
  • Vidyo Room: Games's Vidyo Room
  • Invitation: Contact elancaster@mozilla.com (:elan) to get added to the meeting invite list.
  • Meeting Notes: Meeting Notes Etherpad
IRC
  • Server: irc.mozilla.org
  • Channel: #games

People

Games Platform & Research

  • Vladimir Vukicevic - <vladimir@mozilla.com>
  • Martin Best - <mbest@mozill.com>
  • Alan Kligman - <akligman@mozilla.com>
  • Alon Zakai - <azakai@mozilla.com>
  • Jeffrey Gilbert - <jgilbert@mozilla.com>
  • Jukka Jylänki - <jjylanki@mozilla.com>
  • Luke Wagner" <lwagner@mozilla.com>
  • Marco Mucci - <mmucci@mozilla.com>
  • Milan Sreckovic - <msreckovic@mozilla.com>
  • Naveed Ihsanullah - <nihsanullah@mozilla.com>
  • Maire Reavy - <mreavy@mozilla.com>
  • Paul Adenot - <padenot@mozilla.com>
  • Ted Mielczarek - <ted@mozilla.com>
  • Kannan Vijayan - <kvijayan@mozilla.com>
  • Peter Chang - <pchang@mozilla.com>

Games Documentation

  • Christopher Mills - <cmills@mozilla.com>
  • Eric Shepherd - <eshepherd@mozilla.com>

Games Partner Support

  • Bill Walker - <bwalker@mozilla.com>
  • Harald Kirschner - <hkirschner@mozilla.com>
  • Louis Stowasser - <lstowasser@mozilla.com>
  • Nick Desaulniers - <nick@mozilla.com>

Games Public Relationship Team

  • Paul Jarratt - <pjarratt@mozilla.com>


Games QA

  • Anthony Hughes - <ahughes@mozilla.com>
  • Marc Schifer - <mschifer@mozilla.com>

To Be Kept Informed

  • Chloe Varelidi - <chloe@mozillafoundation.org>
  • Dave Herman - <dherman@mozilla.com>
  • Sean Stangl - <sstangl@mozilla.com>
  • Jeff Muizelaar - <jmuizelaar@mozilla.com>
  • Benoit Jacob - <bjacob@mozilla.com>

References