Confirmed users
228
edits
Line 21: | Line 21: | ||
Initial rough structural plan (nowhere near complete; will need a lot of additions and refining): | Initial rough structural plan (nowhere near complete; will need a lot of additions and refining): | ||
===Intro article=== | |||
* Little bit of history of web gaming | * Little bit of history of web gaming | ||
* Why is the Web a good gaming platform, and how is this possible? | * Why is the Web a good gaming platform, and how is this possible? | ||
Line 28: | Line 29: | ||
* How can traditional games developers adapt | * How can traditional games developers adapt | ||
===Technology reference=== | |||
Teaching and reference material on technology fundamentals in case people need to update their knowledge. This should be links to other parts of MDN, not new articles. | |||
* File API | * File API | ||
Line 50: | Line 51: | ||
* XMLHttpRequest | * XMLHttpRequest | ||
===Tools=== | |||
Fundamentals of tools that are useful for gaming, whether that is 3rd party libraries or whatever | |||
* asm.js basics | |||
* Emscripten basic usage | |||
* Shumway basic usage | |||
* frameworks, tools? | |||
===Gaming techniques articles=== | |||
Isolated coverage of fundamental gaming techniques, assumes knowledge of the underlying technologies. For that, see previous section. Each one of these could be multiple articles, and we should explain fundamentals of complex areas such as graphics layer, as well as showing how frameworks and libraries can make the work easier in each case. | |||
* The anatomy of a video game (the main loop, etc.) | |||
* Collision detection | |||
* Physics | |||
* 2D | |||
* 3D environments and acceleration | |||
* Data storage, offline installation, updates | |||
* Video and audio (<video> and <audio>, gUM, WebRTC, etc. cover basic display, manipulation, looping...) | |||
* Multi-person games (WebRTC, sockets, etc.) | |||
* Graphics for web games - how to export, formats to use, optimization… | |||
* Performance optimization: Main thread vs Worker; ASM.js; WebGL; WebCL | |||
===Workflows=== | |||
Workflows for different audience members/outcomes. These should be very practical step by step sections that assume knowledge of the fundamentals in each case, referring back to the previous sections for those who need more fundamental information on any one step. Each should feature a case study or two that can show deconstruction of a real game, for those who like to learn by deconstructing and looking at inner workings. | |||
===='''Simple step by step tutorial on how to create a game, baby steps for beginners.==== | |||
So if we use breakout as an example: | |||
* Setting up the canvas | |||
* Building the brick field | |||
* Adding a moveable paddle | |||
* Adding the ball motion mechanics | |||
* Adding the breaking bricks | |||
* Adding score keeping and display | |||
* Handling the missing of the ball at the bottom of the play field, and end-game scenario | |||
* Sound effects | |||
After each step is implemented, offer a live sample so the reader can see what the new additions look like. | |||
====Designing your game engine - basic 2D==== | |||
For existing web devs | |||
* Setting up your overall environment, organizing your files, pulling in libraries | |||
* basic requirements such as physics, collisions, | |||
* The game loop, and what is updated in each frame | |||
* Input Support (Gamepad) | |||
* Pointer Lock/Fullscreen API | |||
* Adding multiplayer support | |||
* Performance optimization tips | |||
* Caching your online game | |||
* Offline install and play | |||
====Moving into 3D==== | |||
Similar to the above, but showing how to create a 3D game? My feeling is that a separate tutorial on creating a 3D environment would be helpful. Again, for existing web devs | |||
====Porting from native to web standards==== | |||
For the C++ guys | |||
* Emscripten | |||
* Profiling tools | |||
* Debugging tools | |||
* I don't know what the workflow would look here at all | |||
====Porting from Flash to web standards==== | |||
For the Flash guys | |||
* Shumway | |||
* Middleware | |||
* What else? | |||
==Raw ideas for gaming articles== | |||
* Web RTC | * Web RTC | ||
* Web Audio API | * Web Audio API |