Distribution Permission
- Supporting website
Disclosures
Disclaimer
About this Workbook
- Links and References
- Workbook Content
- How to Read & Use this workbook:
- Viewing this eBook:
- Who should use this workbook?
Your newly obtained skills …
Game Design Resources
- Game Studio - Book Series
- Game Studio - Online Courses
- “Making Browser Games” - Books Series
- “Making Browser Games” Series - online Courses
- Programming Courses
- “Walk-Thru Tutorial” Series - Online Courses
- IMaking HTML5 Games
1Introduction to Game Design
- Approaching Game Development
- Focusing Your Game
- 1.1Game Genre Defined
- GG Interactive — Game Design Course
- 1.2Game Tools & Generators
- 1.3References From
2Standard Project Setup
- 2.1Standardized File Structure
- 2.2Barebones Set-up
- 2.3Web Server Required - Batteries not included!
3Starting a Game Project
- 3.1Step 0: Review your competition and their games
- Game Examples
- 3.2Step 1: Create your “front-door”
- 3.3Step 2. Create your “Game Shell” & Phases
- Critical Rendering Path
- Network Impact
- Gamer’s Local Activity
- D.R.Y. Speed Limit - 5 GPH (Games Per Hour)!
- 3.4Select a JS Format
- ES5 Format
- ES6+ Format as “FAT Arrow” Function
- ES6+ Format as “Phaser.Class”
- ES6+ Format as “Phaser.Scene”
- IIPart II: Making “Match-3” Browser Games
4Match-3 — Core Game Construction
- 4.1Game Project Overview
- 4.2Our Goal
- 4.3Match-3 Genre Description
- 4.4Game Mechanics (GM) - Logic & Rules
- 4.5Game Recipe™ Featured Ingredients
- 4.6Design Considerations
- Match 3 (Placed) - Tic-tac-toe
- Match 4 (Placed) - “Connect”
- Match 5 (Placed) - “Go”
- 4.7Match 3+ - “Tracing-a-line”
- 4.8Step 3: Create “Play.js”
- 4.9Step 4: Create Supporting functions.
- 4.10Conclusion
5Phaser v3.16+ Code Review
- 5.1Game Set-up Options
- Phaser III Config and Game Settings - Lines 630 to 718:
- 5.2Game Mechanisms Component - “playGame Class”
- PlayGame.constructor – Lines 73 to 79
- “Preload” Essential Functions – Lines 79 to 152
- “Create” Essential Functions – Lines 97 to 155
- PlayGame.drawGameBoard – Lines 156 to 175
- PlayGame.tileSelect – Lines 177 to 207
- PlayGame.swapTiles – Lines 209 to 236
- PlayGame.handleMatches – Lines 238 to 291
- PlayGame.makeTilesFall – Lines 292 to 345
- PlayGame.endOfMove – Lines 347 to 365
- 5.3Match-3 Game Mechanics Component
- Arrange Board After Match – Lines 397 to 415
- Create and Manage the Gameboard data – Lines 422 to 447
6Phaser v2.x.x Code Review
- Play.js
- 6.1Match-3+ Core Mechanics
- Step 3. Create your core Game logic & supporting functions
- 6.2Game-board set-up
- function
drawField- Lines 57 to 80: - 6.3Input Validation
- Function Tile selection – Lines 81 to 121
- Function Tile De-selection – Lines 122 to 129
- Function Tile Move – Lines 130 to 161
- Function Tile swapping – Lines 162 to 202
- Function Tile Next – Lines 199 to 202
- Function Tile the same – Lines 203 to 206
- Function Tile at – Lines 207 to 214
- 6.4Tile Discovery
- Function Get Tile row – Lines 215 to 218
- Function Get Tile column – Lines 220 to 224
- 6.5Game Rules and logic
- Function Tile Horizontal Match – Lines 225 to 228
- Function Tile Vertical match – Lines 229 to 232
- Function Tile is a Match – Lines 233 to 236
- Function Existing Match in Board – Lines 237 to 248
- Function Match Handling “Workhorse” – Lines 249 to 271
- Function Handle Vertical Matches – a delegation pattern; Line 272 to313
- Function Handle Horizontal Matches – a delegation pattern; Line 314 to 355
- 6.6Game Board Management
- Function Tile Removal – Lines 356 to 382
- Function Tile Falling (visual display management) – Lines 383 to 427
- Function Replenish Tile Field (visual display management) – Lines 428 to 474
- Function Tile Holes Below (visual display management) – Lines 475 to 486
- Function Tile Holes in Columns (visual display management) – Lines 487 to 497
7Game Shell - The CMS!
- 7.1Generic
- 7.2Generic Boot.js
- 7.3Generic Preload.js
- 7.4Generic Splash.js or Language.js
- 7.5Generic Menu.js
- Sample CMS page — Credits.js
- Deeper Dive: Using JAMStack as an SSG …
- Visit JAMStack http://jamstack.org
- Deeper Dive: Static Site Generators (SSG)
- 7.6Inside each Game Phase
8Plug-in Enhancements
9Conclusion
10Bonus Development Content
- IIIWhat’s next?
- 10.1Game Distribution & Marketing
- “How to publish a game on the web??”
- Introduction: 8-Step Deployment Method.
- Shareably (SBLY) looking to rent your Phaser games
- 10.2Book Review Protocol
- 10.3Tell the world about your game!
- Appendix
More Resources
- JavaScript Garden
- Additional Appendices
- Other resources:
- Selling your Game Assets
Appendix: Online Game Development
Appendix: Making WebXR Games!
Appendix: Phaser III Plugins
Appendix: “How to Start a WebSocket”
- Testing Your Browser
- Test sites:
- WebSocket Protocol Handshake
- Deeper Dive: WebSocket API
- Sample Source Code: Client-side WebSocket
- Step #1: Game
indexpage - Step #2: Generate Event handlers
- Appendix: OLOO - Safe JavaScript
- JS Objects: “TL;DR”
- 15.2.2 Inside the body of a class definition
- Deeper Dive: JS Delegation (aka “Inheritance”?)
- The old way
- “Object-Oriented JavaScript Pattern Comparison”
- ECMA-262 7th Edition / June 2016
- Objects Linking to Other Objects (OLOO)
- Compare your code
- Object.create
- Exercise Lesson 9:
- Exercise 1
- Game Singletons
- Deeper Dive: Object Manipulation objects in ES5/6
- Lesson Summary
- Resource References: