Platform/Games: Difference between revisions

1,842 bytes removed ,  27 October 2016
 
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=Platform Games=
=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!
The platform games initiative is made up of a core team whose work is primarily focused on making the Gecko platform, Firefox Desktop, 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=
==Games Platform High-Level Status==
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.


==Roadmap==
Please visit this [https://wiki.mozilla.org/Platform/Games/StatusUpdate page] to view the high-level status of the web games program.
 
==Mozilla Games Technology MVP Requirements==


===Allow developers to better exploit hardware parallelism===
===Allow developers to better exploit hardware parallelism===
Developers are struggling to get multi-threaded games running efficiently on the Web:<br>
Developers are struggling to get multi-threaded games running efficiently on the Web:<br>
*Standardize, implement and ship SharedArrayBuffer [https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1054841 2]<br>
*Standardize, implement and ship SharedArrayBuffer [https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1054841 2]<br>
*Add pthreads support to Emscripten [https://groups.google.com/forum/#!msg/emscripten-discuss/gQQRjajQ6iY/DcYQpQyPQmIJ 1],[https://github.com/kripken/emscripten/blob/incoming/site/source/docs/porting/pthreads.rst 2]<br>
*DONE - Add pthreads support to Emscripten [https://groups.google.com/forum/#!msg/emscripten-discuss/gQQRjajQ6iY/DcYQpQyPQmIJ 1],[https://github.com/kripken/emscripten/blob/incoming/site/source/docs/porting/pthreads.rst 2]<br>
*Expose performance-sensitive Web APIs to Web Workers: [https://bugzilla.mozilla.org/show_bug.cgi?id=709490 WebGL], [https://bugzilla.mozilla.org/show_bug.cgi?id=1121406 WebSockets], [https://bugzilla.mozilla.org/show_bug.cgi?id=701634 IndexedDB], [https://bugzilla.mozilla.org/show_bug.cgi?id=1062849 WebAudio], [https://bugzilla.mozilla.org/show_bug.cgi?id=922363 WebRTC], [https://bugzilla.mozilla.org/show_bug.cgi?id=WebVR WebVR]<br>
*Expose performance-sensitive Web APIs to Web Workers: [https://bugzilla.mozilla.org/show_bug.cgi?id=709490 WebGL], [https://bugzilla.mozilla.org/show_bug.cgi?id=1121406 WebSockets], [https://bugzilla.mozilla.org/show_bug.cgi?id=701634 IndexedDB], [https://bugzilla.mozilla.org/show_bug.cgi?id=1062849 WebAudio], [https://bugzilla.mozilla.org/show_bug.cgi?id=922363 WebRTC], [https://bugzilla.mozilla.org/show_bug.cgi?id=1036600 WebVR]<br>
*Share compiled code (asm.js and WebAssembly) between workers [https://bugzilla.mozilla.org/show_bug.cgi?id=1168981 1] <br>
*Share compiled code (asm.js and WebAssembly) between workers [https://bugzilla.mozilla.org/show_bug.cgi?id=1168981 1] <br>
*Developers want to take advantage of SIMD hardware to optimize their code:<br>
*Developers want to take advantage of SIMD hardware to optimize their code:<br>
**Standardize, implement and ship SIMD.js [https://hacks.mozilla.org/2014/10/introducing-simd-js/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=894105 2].<br>
**Standardize, implement and ship SIMD.js [https://hacks.mozilla.org/2014/10/introducing-simd-js/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=894105 2].<br>
**Include SIMD in WebAssembly [https://github.com/WebAssembly/design/blob/master/PostMVP.md#fixed-width-simd 1].<br>
**Include SIMD in WebAssembly [https://github.com/WebAssembly/design/blob/master/PostMVP.md#fixed-width-simd 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1188259 2].<br>
**Add SIMD support to Emscripten [https://github.com/kripken/emscripten/labels/SIMD 1].
**DONE - Add SIMD support to Emscripten [https://github.com/kripken/emscripten/labels/SIMD 1].


===Improve cold load time of large compiled codebases.===
<bugzilla>
{
    "bug_id":"1054841,709490,1121406,701634,1062849,922363,1036600,894105",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
===Improve cold load time of large compiled codebases===
Developers want to see reduced download, compilation and startup time for multi-million line 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) [https://github.com/WebAssembly/design/blob/master/FAQ.md#can-the-polyfill-really-be-efficient 1].
*WebAssembly will provide significant download size reductions (even before native support, through the polyfill) [https://github.com/WebAssembly/design/blob/master/FAQ.md#can-the-polyfill-really-be-efficient 1].
*Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#why-a-binary-encoding-instead-of-a-text-only-representation 1].
*Natively decoding WebAssembly will be significantly faster than parsing JavaScript/asm.js [https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#why-a-binary-encoding-instead-of-a-text-only-representation 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 [https://bugzilla.mozilla.org/show_bug.cgi?id=1169167 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 [https://bugzilla.mozilla.org/show_bug.cgi?id=1232205 1].
*Off-main-thread, streaming parsing/compilation [https://bugzilla.mozilla.org/show_bug.cgi?id=1154987 1].
*Off-main-thread, streaming parsing/compilation [https://bugzilla.mozilla.org/show_bug.cgi?id=1154987 1].
*Developers want to avoid depending on HTTP Content-Encoding:gzip for generic compression.
*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).
**Add Emscripten support to perform decompression in asm.js / WebAssembly while downloading (allowing more aggressive algorithms than gzip).


===Improve browser storage capabilities.===
<bugzilla>
{
    "f1": "blocked",
    "o1": "anywords",
    "v1": "1188259",
    "resolution": "---",
 
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
===Improve browser storage capabilities===
*Developers seeking to avoid the [https://storage.spec.whatwg.org/#dom-storagemanager-requestpersistent permission prompt] associated with persistent storage hit limitations of temporary storage as currently implemented in browsers.
*Developers seeking to avoid the [https://storage.spec.whatwg.org/#dom-storagemanager-requestpersistent 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 [https://en.wikipedia.org/wiki/Frecency frecency].
*Improve temporary quota limits to take into account factors like [https://en.wikipedia.org/wiki/Frecency frecency].
Line 39: Line 58:
**Improve storage management/eviction UI for browser users.
**Improve storage management/eviction UI for browser users.


===Improve browser graphics capabilities.===
<bugzilla>
{
    "bug_id":"933398,1202067,1202072,1182987,1147821,1212882",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
===Improve browser graphics capabilities===
*Ship WebGL2 [https://bugzilla.mozilla.org/show_bug.cgi?id=889977 1].
*Ship WebGL2 [https://bugzilla.mozilla.org/show_bug.cgi?id=889977 1].
*Standardize and implement streaming WebGL canvas via WebRTC [https://w3c.github.io/mediacapture-fromelement/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1161913 2].
*Standardize and implement streaming WebGL canvas via WebRTC [https://w3c.github.io/mediacapture-fromelement/ 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=1161913 2].
*Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus).
*Run WebGL on discrete hardware for systems with integrated+discrete (e.g. nVidia Optimus).
<bugzilla>
{
    "bug_id":"1281250,1161913,1271478,1136734,1169000,1184283,863316",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>


===Allow developers to better avoid 32-bit browser Out-of-Memory conditions.===
===Allow developers to better avoid 32-bit browser Out-of-Memory conditions.===
Line 48: Line 83:
*Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and [https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync FileReaderSync] to provide synchronous file I/O in workers.
*Avoid Emscripten in-memory Virtual File System for asset storage by leveraging pthreads and [https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync FileReaderSync] to provide synchronous file I/O in workers.


===Continue investment in performance across the platform.===
===Continue investment in performance across the platform===
*Significantly optimize WebAudio performance [https://bugzilla.mozilla.org/show_bug.cgi?id=webaudioperf 1].
*Significantly optimize WebAudio performance [https://bugzilla.mozilla.org/show_bug.cgi?id=webaudioperf 1].
*Reduce WebGL shader compile times [https://bugzilla.mozilla.org/show_bug.cgi?id=918941 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=863316 2].
*Reduce WebGL shader compile times [https://bugzilla.mozilla.org/show_bug.cgi?id=918941 1],[https://bugzilla.mozilla.org/show_bug.cgi?id=863316 2].
Line 54: Line 89:
*Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc.
*Continue investments in the performance of JS, DOM, WebGL, WebRTC, codec, layout, rendering, compositing, animation, etc.


===Continue investment in Emscripten.===
<bugzilla>
{
    "bug_id":"1169293,918941,863316,1071275,1057530,1136734,1169000",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
===Continue investment in Emscripten===
*Add support for pthreads, SIMD, and WebAssembly, as mentioned above.
*Add support for pthreads, SIMD, and WebAssembly, as mentioned above.
*Further improve compilation speed.
*Further improve compilation speed.
===Continue investment in Firefox developer tooling to better support game developers.===
 
===Continue investment in Firefox developer tooling to better support game developers===
*Improve Web Worker support [https://bugzilla.mozilla.org/show_bug.cgi?id=1003097 1].
*Improve Web Worker support [https://bugzilla.mozilla.org/show_bug.cgi?id=1003097 1].
*Allow developers to break on various asm.js/WebAssembly error conditions [https://bugzilla.mozilla.org/show_bug.cgi?id=1088655 1].
*Allow developers to break on various asm.js/WebAssembly error conditions [https://bugzilla.mozilla.org/show_bug.cgi?id=1088655 1].


===Continue implementation of Service Workers to support offline.===
<bugzilla>
*Service workers has been and will continue to be a focus to better support game developers [https://bugzilla.mozilla.org/show_bug.cgi?id=903441 1].
{
    "bug_id":"1003097,1088655,1008453,1241485,912562",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
 
===Continue implementation of Service Workers to support offline===
*Ship Service Workers and dependent features [https://bugzilla.mozilla.org/show_bug.cgi?id=903441 1].


== Under Consideration==  
<bugzilla>
{
    "f1": "blocked",
    "o1": "anywords",
    "v1": "903441",
 
    "resolution": "---",
    "include_fields":"id, summary, status, component, assigned_to, target_milestone",
    "order": "bug_status"
}
</bugzilla>
 
== Under Consideration==
*Developers are having trouble identifying how many Web Workers they should create to distribute their workload.  Benchmarking methods often prove unreliable.
*Developers are having trouble identifying how many Web Workers they should create to distribute their workload.  Benchmarking methods often prove unreliable.
*Developers are hitting the 20-per-origin limit on web workers in Firefox and are requesting a much higher limit.
*Developers are hitting the 20-per-origin limit on web workers in Firefox and are requesting a much higher limit.
Line 105: Line 168:
* [http://bit.ly/UuUlyf P2] [games:p2]
* [http://bit.ly/UuUlyf P2] [games:p2]
* [http://bit.ly/QdDOQE P3] [games:p3]
* [http://bit.ly/QdDOQE P3] [games:p3]
====Release Targets====
* [https://bugzilla.mozilla.org/buglist.cgi?type0-1-0=substring&field0-1-0=blocked&type0-1-3=substring&field0-0-0=target_milestone&value0-1-3=games%3Ap3&value0-1-0=710398&value0-1-2=games%3Ap2&type0-0-0=equals&field0-1-3=status_whiteboard&value0-0-0=mozilla20&type0-1-2=substring&type0-1-1=substring&field0-1-2=status_whiteboard&query_format=advanced&value0-1-1=games%3Ap1&field0-1-1=status_whiteboard&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&list_id=6613203 Bugs Landed in Mozilla 20]
* [https://bugzilla.mozilla.org/buglist.cgi?o5=substring&f10=CP&f1=OP&v6=games&o7=substring&list_id=6540204&f0=OP&f8=status_whiteboard&v11=games&o11=substring&o2=equals&o6=substring&f9=CP&f4=OP&v5=710398&query_format=advanced&j1=OR&f3=CP&f2=target_milestone&f11=status_whiteboard&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&j4=OR&f5=blocked&f6=status_whiteboard&v2=mozilla21&f7=status_whiteboard&o8=substring Bugs Landed in Mozilla 21]
* [https://bugzilla.mozilla.org/buglist.cgi?o5=substring&f10=CP&f1=OP&v6=games&o7=substring&list_id=6540216&f0=OP&f8=status_whiteboard&v11=games&o11=substring&o2=equals&o6=substring&f9=CP&f4=OP&v5=710398&query_format=advanced&j1=OR&f3=CP&f2=target_milestone&f11=status_whiteboard&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&j4=OR&f5=blocked&f6=status_whiteboard&v2=mozilla22&f7=status_whiteboard&o8=substring Bugs Landed in Mozilla 22]
* [https://bugzilla.mozilla.org/buglist.cgi?f10=CP&o5=substring&f1=OP&o7=substring&v6=games&list_id=6540233&f8=status_whiteboard&f0=OP&o6=substring&o2=equals&f9=CP&f4=OP&v5=710398&query_format=advanced&j1=OR&f3=CP&f2=target_milestone&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&j4=OR&f5=blocked&f6=status_whiteboard&v2=mozilla23&o8=substring Bugs Landed in Mozilla 23]
* [https://bugzilla.mozilla.org/buglist.cgi?f10=CP&o5=substring&f1=OP&o7=substring&v6=games&list_id=6540233&f8=status_whiteboard&f0=OP&o6=substring&o2=equals&f9=CP&f4=OP&v5=710398&query_format=advanced&j1=OR&f3=CP&f2=target_milestone&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&j4=OR&f5=blocked&f6=status_whiteboard&v2=mozilla24&o8=substring Bugs Landed in Mozilla 24]


==Communication==
==Communication==
Line 117: Line 173:
{| class="wikitable fullwidth-table"
{| class="wikitable fullwidth-table"
  | Project Team Meeting
  | Project Team Meeting
|| Wednesdays at 10:00 AM (PST)/1:00 PM (EST) for 60 mins
|| Thursdays at 9:00 AM Pacific for 60 mins
* Vidyo Room:  Games's Vidyo Room
* Vidyo Room:  Games's Vidyo Room
* Invitation: Contact elancaster@mozilla.com (:elan) to get added to the meeting invite list.
* Invitation: Contact avaughn@mozilla.com (:avaughn) to get added to the meeting invite list.
* Meeting Notes: [https://games.etherpad.mozilla.org/55 Meeting Notes Etherpad]
|-
|-
| IRC
| IRC
||  
||  
Line 131: Line 186:


'''Games Platform & Research'''  
'''Games Platform & Research'''  
* Vladimir Vukicevic - <vladimir@mozilla.com>  
* Andre Vrignaud - <avrignaud@mozilla.com>
* Martin Best - <mbest@mozill.com>
* Martin Best - <mbest@mozilla.com>
* Alan Kligman - <akligman@mozilla.com>  
* Alon Zakai - <azakai@mozilla.com>  
* Alon Zakai - <azakai@mozilla.com>  
* Jeffrey Gilbert - <jgilbert@mozilla.com>  
* Jeffrey Gilbert - <jgilbert@mozilla.com>  
* Jukka Jylänki - <jjylanki@mozilla.com>  
* Jukka Jylänki - <jjylanki@mozilla.com>  
* Luke Wagner" <lwagner@mozilla.com>  
* Luke Wagner - <lwagner@mozilla.com>  
* Marco Mucci - <mmucci@mozilla.com>  
* Naveed Ihsanullah - <nihsanullah@mozilla.com>  
* Milan Sreckovic - <msreckovic@mozilla.com>  
* Milan Sreckovic - <msreckovic@mozilla.com>  
* Naveed Ihsanullah - <nihsanullah@mozilla.com>  
* Vladimir Vukicevic - <vladimir@mozilla.com>  
* Maire Reavy - <mreavy@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>  
* 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==
==References==
18

edits