MDN/Projects/Content/Game Developer Zone: Difference between revisions

Jump to navigation Jump to search
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'''
===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'''
===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.
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
===Tools===
** asm.js basics
 
** Emscripten basic usage
Fundamentals of tools that are useful for gaming, whether that is 3rd party libraries or whatever
** Shumway basic usage
 
** frameworks, tools?
* asm.js basics
* '''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.
* Emscripten basic usage
** The anatomy of a video game (the main loop, etc.)
* Shumway basic usage
** Collision detection
* frameworks, tools?
** Physics
 
** 2D
===Gaming techniques articles===
** 3D environments and acceleration
 
** Data storage, offline installation, updates
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.
** Video and audio (<video> and <audio>, gUM, WebRTC, etc. cover basic display, manipulation, looping...)
 
** Multi-person games (WebRTC, sockets, etc.)
* The anatomy of a video game (the main loop, etc.)
** Graphics for web games - how to export, formats to use, optimization…
* Collision detection
** Performance optimization: Main thread vs Worker; ASM.js; WebGL; WebCL
* Physics
* '''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.
* 2D
** '''Simple step by step tutorial on how to create a game, baby steps for beginners.''' So if we use breakout as an example:
* 3D environments and acceleration
*** Setting up the canvas
* Data storage, offline installation, updates
*** Building the brick field
* Video and audio (<video> and <audio>, gUM, WebRTC, etc. cover basic display, manipulation, looping...)
*** Adding a moveable paddle
* Multi-person games (WebRTC, sockets, etc.)
*** Adding the ball motion mechanics
* Graphics for web games - how to export, formats to use, optimization…
*** Adding the breaking bricks
* Performance optimization: Main thread vs Worker; ASM.js; WebGL; WebCL
*** Adding score keeping and display
 
*** Handling the missing of the ball at the bottom of the play field, and end-game scenario
===Workflows===
*** Sound effects
 
*** After each step is implemented, offer a live sample so the reader can see what the new additions look like.
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.
** '''Designing your game engine - basic 2D''', for existing web devs
 
*** Setting up your overall environment, organizing your files, pulling in libraries
===='''Simple step by step tutorial on how to create a game, baby steps for beginners.====
*** basic requirements such as physics, collisions,  
 
*** The game loop, and what is updated in each frame
So if we use breakout as an example:
*** Input Support (Gamepad)
 
*** Pointer Lock/Fullscreen API
* Setting up the canvas
*** Adding multiplayer support
* Building the brick field
*** Performance optimization tips
* Adding a moveable paddle
*** Caching your online game
* Adding the ball motion mechanics
*** Offline install and play
* Adding the breaking bricks
** '''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
* Adding score keeping and display
** '''Porting from native to web standards.''' For the C++ guys
* Handling the missing of the ball at the bottom of the play field, and end-game scenario
*** Emscripten
* Sound effects
*** Profiling tools
 
*** Debugging tools
After each step is implemented, offer a live sample so the reader can see what the new additions look like.
*** I don't know what the workflow would look here at all
 
** '''Porting from Flash to web standards.''' For the Flash guys
====Designing your game engine - basic 2D====
*** Shumway
 
*** Middleware
For existing web devs
*** What else?
 
===Raw ideas for gaming articles===
* 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
Confirmed users
228

edits

Navigation menu