MDN/Projects/Content/Game Developer Zone
Project statement
Games are a really big deal.
Everyone loves games, but in addition games are a big statement for, and testimony to, the scope and power of open web standards. A constant criticism leveled at the open web is that it doesn't have the performance available to support complex applications such as 3D immersive games, as compared to native platforms. However, Mozilla's work on technologies such as ASM.js, Emscripten and WebGL has shown that open standards have got what it takes, and playing such games in a web browser is perfectly possible.
At the moment, MDN has a few bits of games development documentation, but nothing comprehensive or complete. This project is aimed at creating a kick ass games documentation center, which will serve the needs of:
- Experienced game developers who want to create for the open web
- Experienced web programmers who want to know what their platform is capable of.
- Hobbyists
- Porters of existing games
Where will this project live?
Ideally we should eventually aim to put this content in its own dedicated zone. The existing location at
https://developer.mozilla.org/en-US/docs/Games
Works for me, as our games effort isn't really a Mozilla product, and not really a standard topic under the Web umbrella.
However, for the moment we think it is best that it goes under the App Center, which already has an existing Games page. If we put it here at first, it won't look so bad that we've not got much content initially, plus we can also move the content later on. I think we should move the games content to the App Center for now.
What content should it have?
Initial rough structural plan (nowhere near complete; will need a lot of additions and refining):
- Intro articles
- Little bit of history of web gaming
- How is this possible
- What tools do we have available
- What does the toolchain look like (from <canvas>/JS to asm.js and Emscripten)
- How can traditional games developers adapt
- Links to basic teaching material in case people need to update their knowledge (although we should assume a decent amount of prior knowledge for readers of this course - we can't be expected to teach the basics of <canvas>, etc.)
- Techniques articles
- Collision detection
- Physics
- 3D environments
- Data storage
- Video and audio
- multi-person games (WebRTC, sockets, etc.)
- Examples/case studies
- Deconstructing real games to show how they work, for those who like to learn by deconstructing.
Raw ideas for gaming articles:
- Web RTC
- Web Audio API
- Web Sockets
- PointerLock API
- IndexedDB for storing files locally
- File API
- Typed arrays
- WebGL
- Web Workers
- Shumway
- asm.js/Emscripten, performance, toolchains, making it production worthy
- BananaBread
- Offline - WebRT
- Cloud Apps
Jean-Yves said: documentation is needed for techs like WebRTC. We need basic guides to using WebRTC in the context of games, for people writing their first game. But then we need WebRTC reference docs in place for people who are more experienced, as well as more advanced WebRTC for gaming tutorials. We need to sync the publication of the tutorial and reference docs as much as possible.
We need to think about multiple devices, in two different senses:
- We need to cover what can be run on different platforms due to performance and support reasons, for example the difference between a desktop computer and a Firefox OS device.
- We need to look at connecting multiple devices/clients to a single game instance, for multiplayer games.
Who should we talk to ?
- The games engineering effort is led by Martin Best; he can point us in the direction of other Mozilla devs who can help
- Maire Reavy is also really interested in the gaming side of things, and she leads the WebRTC engineering efforts
- Mark Giffin said: There are lots of Mozilla devs interested in gaming. James Long has done game apps, for example. We should talk to interested devs inside the company, as well as our passionate community.
- We also have a few other community members who are really interested in helping, for example Scott Michaud and Sébastien Barbieri.
- Remember that Sheppy is an ex-game developer, so has lots of interest and knowledge in this area.
- Marketplace game developers. What were the pain points? what are the interesting tips?
- Community sites like creative JS. Rob Hawkes?