W3C

Status update on Web Games technologies

illustration for web gamesThe report from the Workshop on Web Games, held in June 2019, recommended next standardization steps for individual topics discussed at the workshop to enrich the open Web platform for games. Now, less than 6 months after the workshop, thanks to the efforts of workshop participants and a few others, most of these topics have already made significant progress. This seemed to warrant a status update.

The creation of a games activity at W3C, to gather continuous feedback on Web technologies from the games community, track identified needs and steer standardization efforts, is still being investigated. If you’re interested, please reach out to François Daoust.

NB: In the interest of keeping things short, the update below follows the same structure as the next steps section in the workshop report. Please refer to the workshop report for additional background on how these features relate to games.

Technologies in progress

  • Work on WebAssembly has reached an important milestone with the imminent publication of the core WebAssembly specifications (WebAssembly Core Specification, WebAssembly JavaScript interface, and WebAssembly Web API) as W3C standards. Congratulations to the WebAssembly group! Work is far from being over and the group is now progressing on some of the features discussed during the workshop.
  • Among these, the WebAssembly Community Group is refining the Interface Types Proposal, which Luke Wagner presented at the workshop under the name “WebAssembly WebIDL Bindings”. The scope of the proposal has been broadened to address more use cases on top of optimizing calls to Web APIs (hence the rename). Notably, the proposal also aims at enabling shared-nothing linking of WebAssembly modules to allow modules to maintain full encapsulation by having the WebAssembly engine copy data between linear memories of the modules when needed, as well as at defining language-neutral interfaces like the WebAssembly System Interface (WASI).
  • The WebAssembly Community Group is also working on a Garbage Collector extension for WebAssembly, whose JavaScript API would require to introduce the notion of Typed Objects in JavaScript. In turn, Typed Objects could prove a useful basis to share immutable structured objects across workers, provided someone champions this idea within WHATWG.
  • Still in the realm of WebAssembly, the WebAssembly Debugging Subgroup, which incubates the DWARF for WebAssembly proposal to ease debugging of code compiled to WebAssembly, has now resumed its work.
  • The Audio Working Group is looking into rechartering at the end of the year. The proposed charter includes the Audio Device Client proposal that Hongchan Choi presented during the workshop.
  • There was progress on the Gamepad front as well. James Hollyer and Matt Reynolds recently joined Steve Agoston as editors of the specification.
  • Navid Zolghadr integrated the pointerrawupdate event in Pointer Events to decorrelate input events from requestAnimationFrame. Discussions on unaccelerated mouse events are still ongoing.
  • The plan to re-introduce SharedArrayBuffer, which builds on two new HTTP headers (Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy), is making steady progress. Some specification work remains and support on mobile platforms may take longer though. See Anne van Kesteren’s intent to prototype re-enabling SharedArrayBuffer in Firefox for instance.

Exploratory work

  • The GPU for the Web Community Group is developing a draft charter for a possible GPU for the Web Working Group. Discussions on the choice of a shading language for WebGPU are still ongoing.
  • The Input for Workers and Worklets proposal that Navid Zolghadr presented at the workshop has now moved to the Web Platform Incubator Community Group for incubation. Navid organized a breakout session on the topic during TPAC.
  • Similarly, WebCodecs has also moved to the Web Platform Incubator Community Group for incubation. WebCodecs was the focus of various discussions at TPAC, see for instance the minutes of the WebCodecs breakout session that Peter Thatcher organized, or the minutes of the Media Working Group meeting.
  • A simple liaison with the Khronos Group was setup to coordinate on shared areas of interest. The GPU for the Web Community Group is notably discussing possible use of SPIR-V as shading language for WebGPU with the Khronos Group through that liaison.

New technical proposals

Other proposals

Leave a Reply

Your email address will not be published. Required fields are marked *