Distribution Permission
- Supporting website
Disclosures
Disclaimer
Forwards
About this Workbook
- Links and References
Workbook Content
- How to Read & Use this workbook:
- Viewing the eBook’s Source Code:
- Who should use this workbook?
Your newly obtained skills…
Game Design System™
- 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
- IPart I - Introduction
1Introduction
- 1.1Game Component Perspectives
- 1.2Game Delivery Modes
- 1.2.1Game Mode - Single-Player Flowchart
- 1.2.2Game Mode - Multi-Player Flowchart
- 1.3Game Genres
- GG Interactive — Game Design Course
- 1.3.1Action Games
- 1.3.2Adventure Games
- 1.3.3Casino Games
- 1.3.4Educational Games
- 1.3.5Fighting Games
- 1.3.6Platform Games
- 1.3.7Puzzle Games
- 1.3.8Racing Games
- 1.3.9Rhythm / Music Game
- 1.3.10Role-Playing Games (RPG)
- 1.3.11Shooter Games
- 1.3.12Simulations
- 1.3.13Sports Games
- 1.3.14Strategy Games
- 1.3.15Tower Defense™ — USPTO awarded to COM2US
- 1.4Mind The Gap
- 1.5Game Tools & Generators
- 1.6Standard Project Setup
- 1.6.1Standardized File Structure
- 1.7Game Recipe™
- 1.7.1Development:
- 1.7.2Design:
- 1.7.3Encoding:
- 1.8Creating Prototype Mechanisms — “4-step method”
- 1.8.1Standard Game Index Page (formal method)
- 1.8.2Mobile Apps: Game.js (aka Main.js)
- 1.9Game Shell and Logic Flow
- 1.9.1Network Impact
- 1.9.2Gamer’s Local Activity
- 1.9.3Generic
- 1.9.4Generic Boot.js
- 1.9.5Generic Preload.js
- 1.9.6Generic Splash.js or Language.js
- 1.9.7Generic Menu.js
- 1.9.8Sample CMS page — Credits.js
- 1.9.9Play.js
- 1.9.10Inside each Game Phase
- 1.10Plug-in Enhancements
- 1.11Introduction References
- IIPart II - Game Mechanics
2Action-Arcade Mechanics
- 2.1Reference From
- 2.2Overview
- 2.3Our Goal
- 2.4Game Mechanics
- The Six Seven Laws Of “Attention”
- 2.4.1Historical background
- 2.5Game Examples
- 2.5.1Official Phaser Examples
- 2.6Game Recipe™ Featured Ingredients
- 2.7Starting an Action-Arcade Game Project
- 2.7.1Step 0: Review Game demonstrations
- 2.7.2Step 1: Create your “front-door”
- 2.8Action-Arcade — Core Game Phases
- 2.8.1Step 2. Create Your Standard Game Shell Phases.
- 2.8.2Main.js
- 2.8.3Boot.js
- 2.8.4Preload.js
- 2.8.5Splash.js or Language.js
- 2.8.6Menu.js
- 2.9Action-Arcade Core Mechanics
- 2.10Design Considerations
- 2.10.1Gameboard Development
- 2.10.2Right or Left-handed?
- 2.10.3Cursor Keys: Timing vs. Movement
- 2.11Rhythm Game Logic & Supporting Functions
- 2.11.1Play.js
- 2.12Rhythm Core Game Mechanics
- 2.12.1Step 3. Create your core game logic & supporting functions
- 2.12.2
hud.jsModifications - 2.12.3
billboard.jsModifications - © Copyright 2010, Stephen Gose LLC
- 2.12.4
constants.jsModifications - 2.12.5
game.jsModifications - Design Option #1:
- Cheating Prevention added
- 2.12.6
notes.jsModifications - Recycling Sprites References
- 2.12.7
banjostringsModifications - 2.13Prototype (Stage 1)
- 2.14Conclusion
3Adventure & RPG Game Mechanics
- 3.1Reference From:
- 3.2Overview
- 3.3Our Goal
- 3.4Game Mechanics
- 3.4.1Historical Background Reviewed
- 3.4.2Game Genre Components
- 3.5Game Examples
- 3.6Game Recipe™ Featured Ingredients
- 3.7Starting the Adventure project
- 3.7.1Step 0: Review your competition and game demonstrations:
- 3.7.2Step 1. Create your standard index file.
- 3.7.3Step 2. Create Your Standard Game Shell Phases.
- 3.7.4Main.js
- 3.7.5Boot.js
- 3.7.6Preload.js
- 3.7.7Splash.js or Language.js
- 3.7.8Menu.js
- 3.7.9Play.js
- 3.8Adventures & Mazes Core Mechanics
- 3.8.1Story Plot Generation
- 3.8.2Story Generation Tools
- 3.8.3Labyrinth Generation Methods
- 3.8.4Fixed Generation
- 3.8.5Fixed Generation with dynamic content
- 3.8.6Pure Linear labyrinths
- 3.8.7Rules for Creating the Perfect Maze
- 3.8.8Depth-First Search (DFS)
- 3.8.9Open-path Worlds
- 3.9Conclusion
4Collapsing Blocks Games Mechanics
- 4.1Reference From:
- 4.2Overview
- 4.3Our Goal
- 4.4Game Mechanics
- 4.5Game Examples
- 4.6Game Recipe™ Featured Ingredients
- 4.7Starting the Collapsing Blocks project
- 4.7.1Step 0: Review your competition and game demonstrations:
- 4.7.2Step 1. Create your standard index file.
- 4.8Collapsing Blocks Core Game Phases
- 4.8.1Step 2. Create Your Standard Game Shell Phases.
- 4.8.2Main.js
- 4.8.3Boot.js
- 4.8.4Preload.js
- 4.8.5Splash.js or Language.js
- 4.8.6Menu.js
- 4.8.7Play.js
- 4.9Collapsing Blocks Core Mechanics
- 4.9.1Step 3. Create your core game logic & supporting functions.
- 4.10Main.js
- 4.10.1flood fill function — Line 86 to 106
- 4.10.2Refill Game Board — Lines 110 to 128
- 4.10.3Insert Blocks — Lines 132 to 150
- 4.10.4Fill holes — Lines 153 to 163
- 4.10.5Tile selection — Lines 166 to 191
- 4.11Game-board set-up
- 4.11.1demo.js - Lines 23 to 43:
- 4.12Conclusion
5“Connect-4” & “Go” Game Mechanics
- 5.1Reference From
- 5.2Overview
- 5.3Our Goal
- 5.4Game Mechanics
- 5.4.1Historical background
- 5.5Game Examples
- 5.6Game Recipe™ Featured Ingredients
- 5.6.1Game Genre Components
- 5.6.2Rule Variations
- 5.7Starting a Connect 4 AI Game Project
- 5.7.1Step 0: Review Game demonstrations
- 5.7.2Step 1: Create your “front-door”
- 5.8Connect 4 AI — Core Game Phases
- 5.8.1Step 2. Create Your Standard Game Shell Phases.
- 5.8.2Main.js
- 5.8.3Boot.js
- 5.8.4Preload.js
- 5.8.5Splash.js or Language.js
- 5.8.6Menu.js
- 5.9Design Considerations
- 5.9.1Gameboard Development
- 5.9.2Game Disc-Tokens
- 5.9.32-player and AI-bot
- 5.10Connect 4 Game logic & supporting functions
- 5.10.1Play.js
- 5.11Connect 4+ Core Game Mechanics
- 5.11.1Step 3. Create your core game logic & supporting functions
- 5.11.2Play.js Deconstruction
- 5.11.3
Play.createEssential Function - Line 43 to 130 - 5.11.4
Play.selectCol()- Lines 144 to 191 - 5.11.5HUD Mouse functions
- 5.11.6Validate “4-in-a-row” Winning Conditions
- 5.11.7Declaring a Winner
- 5.12Anticipation of Change - Play.js version 2
- 5.12.1Other problems for your bespoke solution?
- 5.13Doing the AI-thing!
- 5.13.1Sample Resources
- 5.13.2Deeper Dive: A.I. in Connect4 & Go
- 5.13.3Conversion Process
- 5.14Conclusion
6Dress-Up Game Mechanics
- 6.1Reference From:
- 6.2Overview
- 6.3Our Goal
- 6.4Game Mechanics
- 6.5Game Logic and Construction Considerations
- 6.5.1Step #1 Find the avatar(s).
- 6.5.2Step #2 Create the wardrobe
- 6.5.3Step #3 Messy or tidy?
- 6.5.4Step #4 Layout Arrangement
- 6.5.5Step #5 Asset Download Considerations
- 6.6Game Examples
- 6.7Current Demand for Dress-UP Games
- 6.8Game Recipe™ Featured Ingredients
- 6.9Starting the Dress-Up project
- 6.9.1Step 0: Review game demonstrations:
- 6.9.2Step 1. Create your standard index file.
- 6.10Dress-UP Core Game Phases
- 6.10.1Step 2. Create your standard game shell scenes.
- 6.10.2Main.js
- 6.10.3Boot.js
- 6.10.4Preload.js
- 6.10.5Splash.js or Language.js
- 6.10.6Menu.js
- 6.10.7Play.js — Overview
- 6.11Dog.js – a gentle introduction to standard Dress-UP games
- 6.11.1Dog.js Create function – Lines 51 to 130
- 6.11.2Dog.js Create function – Lines 131 to 170
- 6.12Mark.js – adding clothes and toggles
- 6.13Miyoko.js – adding data structures and multiple spritesheets management
- 6.13.1Managing Hair and “split-ends”
- 6.13.2What’s a Girl to Wear? Clothes management
- 6.14Zoe.js – the full Monty
- 6.15Common Menu HUD
- 6.16Printing
- 6.17Saving
- 6.18Camera snap-shots
- 6.19Conclusion
7Hidden Objects Game Mechanics
- 7.1Reference From
- 7.2Overview
- 7.3Our Goal
- 7.4Game Mechanics
- 7.4.1Historical background
- 7.4.2General Construction Advice?
- 7.4.3Deeper Dive: Replayability
- Opinion: Expanding The “Replay Value” Of Games
- 7.5Game Examples
- 7.6Game Recipe™ Featured Ingredients
- 7.7Starting a “Hidden Objects” Project
- 7.7.1Step 0: Review your competition and game demonstrations:
- 7.7.2Step 1: Create your “front-door”
- 7.8Hidden Objects Core Game Phases
- 7.8.1Step 2: Create your standard game shell scenes
- 7.8.2Main.js
- 7.8.3Boot.js
- 7.8.4Preload.js
- 7.8.5Splash.js or Language.js
- 7.8.6Menu.js
- 7.8.7Play.js
- 7.9Creation Methods for Hidden Objects Games
- 7.9.1Step 3. Create your core game logic & supporting functions
- 7.10Method #1: HTML5 Conversion into Phaser Framework.
- 7.10.1Step 1: Project Preparation
- 7.10.2Step 2: Project Refactoring
- 7.10.3Step 3: Project Plan
- 7.10.4Deeper Dive: Better Location Selections
- 7.10.5Deeper Dive: Making Phaser v2.x.x Graphics “clickable”
- 7.11Method #2: ActionScript into Phaser Framework.
- 7.11.1D.R.Y. Speed Limit - 5 GPH (Games Per Hour)!
- 7.11.2Cashing In with Hidden Object Games
- 7.12Method #3: Winx Quests.
- Winx Quests Concert Disaster Deployment
- Product History:
- Market Saturation: (as of 20150501)
- 7.12.1Flash Demo
- Game Features:
- 7.13Method #3 for Adults: “Find My Flaws”
- 7.13.1Flash Demos
- 7.13.2Microsoft Office to the Rescue!
- 7.14Method #5 - “Find the Difference” Construction
- 7.14.1Why not do what others are doing?
- 7.14.2Step 1: Project Preparation
- 7.14.3Deeper Dive: Project Preparations
- 7.14.4Step 2: Create your standard game shell scenes
- 7.14.5Step 3: Project Plan & flowchart
- 7.14.6Phaser v2.x.x Resources
- 7.15Conclusion
8“Jump to Capture” Games Mechanics
- 8.1Reference From:
- 8.2Overview
- 8.3Our Goal
- 8.4Game Mechanics
- 8.5Game Logic and Rules
- 8.6Game Data structure
- 8.7Game Examples
- 8.8Game Recipe™ Featured Ingredients
- 8.9Starting the game project
- 8.9.1Step 0: Review game demonstrations
- 8.9.2Step 1. Create your standard index file.
- 8.10Peg Solitaire Core Game Phases
- 8.10.1Step 2. Create your standard game shell scenes.
- 8.10.2Main.js
- 8.10.3Boot.js
- 8.10.4Preload.js
- 8.10.5Splash.js or Language.js
- 8.10.6Menu.js
- 8.10.7Play.js
- 8.11Peg Solitaire Core Mechanics
- 8.11.1Step 3. Create your core game logic & supporting functions.
- 8.11.2Overview
- 8.11.3Game Data structures — Lines 26 to 30
- 8.11.4hole selected — Lines 332 to 340
- 8.11.5peg selected — Lines 341 to 348
- 8.11.6validateMove — Lines 358 to 613
- 8.12Conclusion
9MahJong Game Mechanics
- 9.1References From:
- 9.2Overview
- 9.3The Goal
- 9.4MahJong Game Mechanics & Historical background
- 9.5MahJong - “Matching Open Pairs”
- 9.5.1General Game Procedures
- 9.5.2MahJong Rule Variations
- 9.5.3“52 Card Pick-up”
- 9.6Game Recipe™ Featured Ingredients
- 9.7Starting a MahJong Game Project
- 9.7.1Step 0: Review Game demonstrations
- 9.7.2Game Competitor Examples
- 9.7.3Step 1: Create your “front-door”
- 9.8MahJong — Core Game Phases
- 9.8.1step 2: Create your standard game shell scenes
- 9.8.2Main.js
- 9.8.3Boot.js
- 9.8.4Preload.js
- 9.8.5Splash.js or Language.js
- 9.8.6Menu.js
- 9.9MahJong Game logic & supporting functions
- 9.9.1Play.js
- 9.10MahJong Core Game Mechanics
- 9.11Step 3. Create game logic & supporting functions
- 9.11.1Booting and Loading
- 9.11.2Main.js
- 9.11.3Defining Tile Metadata
- 9.12Play.js
- 9.12.1Shuffling & Randomized Deployment
- 9.12.2Creating Tiles
- 9.12.3Selecting Tiles
- 9.12.4Tile Selection & Validation
- 9.133D Layout Prototype
10Match-3 Game Mechanics
- 10.1References From:
- 10.2Overview
- 10.3Our Goal
- 10.4Game Mechanics
- 10.5Game Examples
- 10.6Game Recipe™ Featured Ingredients
- 10.7Starting the Match-3 project
- 10.7.1Step 0: Review game demonstrations
- 10.7.2Step 1. Create your standard index file.
- 10.8Match-3+ Core Game Phases
- 10.8.1Step 2. Create Your Standard Game Shell Phases.
- 10.8.2Main.js (or Game.js)
- 10.8.3Boot.js
- 10.8.4Preload.js
- 10.8.5Splash.js or Language.js
- 10.8.6Menu.js
- 10.8.7Play.js
- 10.9Match-3+ Core Mechanics
- 10.9.1Step 3. Create your core Game logic & supporting functions
- 10.10Game-board set-up
- 10.10.1function drawField - Lines 57 to 80:
- 10.11Input Validation
- 10.11.1Function Tile selection – Lines 81 to 121
- 10.11.2Function Tile De-selection – Lines 122 to 129
- 10.11.3Function Tile Move – Lines 130 to 161
- 10.11.4Function Tile swapping – Lines 162 to 202
- 10.11.5Function Tile Next – Lines 199 to 202
- 10.11.6Function Tile the same – Lines 203 to 206
- 10.11.7Function Tile at – Lines 207 to 214
- 10.12Tile Discovery
- 10.12.1Function Get Tile row – Lines 215 to 218
- 10.12.2Function Get Tile column – Lines 220 to 224
- 10.13Game Rules and logic
- 10.13.1Function Tile Horizontal Match – Lines 225 to 228
- 10.13.2Function Tile Vertical match – Lines 229 to 232
- 10.13.3Function Tile is a Match – Lines 233 to 236
- 10.13.4Function Existing Match in Board – Lines 237 to 248
- 10.13.5Function Match Handling “Workhorse” – Lines 249 to 271
- 10.13.6Function Handle Vertical Matches – a delegation pattern; Line 272 to313
- 10.13.7Function Handle Horizontal Matches – a delegation pattern; Line 314 to 355
- 10.14Game Board Management
- 10.14.1Function Tile Removal – Lines 356 to 382
- 10.14.2Function Tile Falling (visual display management) – Lines 383 to 427
- 10.14.3Function Replenish Tile Field (visual display management) – Lines 428 to 474
- 10.14.4Function Tile Holes Below (visual display management) – Lines 475 to 486
- 10.14.5Function Tile Holes in Columns (visual display management) – Lines 487 to 497
- 10.15Match 3 (Placed) - Tic-tac-toe
- 10.16Match 4 (Placed) - “Connect”
- 10.17Match 5 (Placed) - “Go”
- 10.18Match 3+ - “Tracing-a-line”
- 10.19Conclusion
11Memory Match Game Mechanics
- 11.1References From:
- 11.2Overview
- 11.3Our Goal
- 11.4Memory Match Game Mechanics
- 11.5Game Examples
- 11.5.1Memory Match
- 11.6Game Recipe™ Featured Ingredients
- 11.7Starting Memory Match project
- 11.7.1Step 0: Review your competition and game demonstrations:
- 11.7.2Step 1. Create your “front-door” index file.
- 11.8Memory Match (Pairs) Core Game Phases
- 11.8.1Step 2. Create Your Standard Game Shell Phases.
- 11.8.2Main.js
- 11.8.3Boot.js
- 11.8.4Preload.js
- 11.8.5Splash.js or Language.js
- 11.8.6Menu.js
- 11.8.7Play.js
- 11.9Memory Pairs Match game logic & supporting functions
- 11.10Memory Match (Sequence) game logic & supporting functions
- 11.10.1Main.js
- 11.10.2Boot.js
- 11.10.3PreLoad.js
- 11.10.4Credit.js
- 11.10.5Menu.js
- 11.11Memory Match sequence game logic & supporting functions
- 11.11.1Play.js — Overview
- 11.11.2Play.js – Lines 36 to 203 Create Function:
- 11.11.3Play.js – Lines 205 to 224 Update function
- 11.11.4Play.js – Lines 230 to 400 supporting Functions
- 11.11.5Play.js – Lines 240 to 243 deselectBox function
- 11.11.6Play.js – Lines 244 to 306 playBoxes function
- 11.11.7Play.js – Lines 307 to 324 restart function
- 11.11.8Play.js – Lines 325 to 360 selectBoxes function
- 11.11.9Play.js – Lines 361 to 382 startCountDown function
- 11.12Conclusion
12Music & Rhythm Games Mechanics
- 12.1Overview
- 12.2Our Goal
- 12.3Game Mechanics
- 12.4Game Examples
- 12.5Game Recipe™ Featured Ingredients
- 12.6Starting a Music & Rhythm Game Project
- 12.6.1step 0: Review Game demonstrations
- 12.6.2step 1: Create your “front-door”
- 12.7Music & Rhythm — Core Game Phases
- 12.7.1Step 2. Create Your Standard Game Shell Phases.
- 12.7.2Main.js
- 12.7.3Boot.js
- 12.7.4Preload.js
- 12.7.5Splash.js or Language.js
- 12.7.6Menu.js
- 12.8Play.js - Overview
- 12.9Phaser Essential Functions
- 12.9.1Play.js — Management variables — Lines 1 to 80
- 12.9.2Play.js — preload — Lines 91 to 95
- 12.9.3Play.js — create — Lines 96 to 454
- “Callbacks and Events” (Reminder!)
- 12.9.4Play.js — Internal Supporting Functions
- 12.10Optional v2 Code Design — External Functions
- 12.10.1Game Mechanisms as Functions
13Puzzle Game Mechanics
- 13.1References From:
- 13.2Overview
- 13.3Our Goal
- 13.4Game Mechanics
- 13.4.1Background History
- 13.5Game Examples
- 13.6Current Demand for Puzzle Games
- 13.7Game Recipe™ Featured Ingredients
- 13.8Starting a Puzzle project
- 13.8.1Step 0: Review demonstration games:
- 13.8.2Step 1. Create your “front-door” index file.
- 13.9Jigsaw & Slider Puzzle — Core Game Phases
- 13.9.1step 2. Create your standard game scenes.
- 13.9.2Main.js
- 13.9.3Boot.js
- 13.9.4Preload.js
- 13.9.5Splash.js or Language.js
- 13.9.6Menu.js
- 13.9.7Play.js
- 13.10Slider Puzzle Mechanics & supporting functions
- 13.10.1Step 3. Create your core game logic & supporting functions.
- 13.10.2Slider Puzzle Code Review:
- 13.11Jigsaw Puzzle Mechanics & supporting functions
- 13.11.1Step 3. Create your core game logic & supporting functions.
- 13.12Jigsaw Game Components
- 13.12.1Creating Image Shards
- 13.12.2Cropping the pieces
- 13.12.3Bezier Curves
- 13.13New Jigsaw Design Consideration
- 13.14Jigsaw Puzzle Code Review:
- 13.14.1Jigsaw Work-Horse: Puzzle.js
- 13.14.2Jigsaw Work-Horse: Puzzle_Piece.js
- 13.15Plugins
- 13.16Conclusion
14Trivia Quiz & Dating Games Mechanics
- 14.1References From:
- 14.2Overview
- 14.3Our Goal
- 14.4Game Mechanics
- 14.5Game Examples
- 14.6Game Recipe™ Featured Ingredients
- 14.7Starting a Quiz & Trivia Project
- 14.7.1Step 0: Review demonstration games:
- 14.7.2Step 1. Create your standard index file.
- 14.8Quizzing Core Game Phases
- 14.8.1Step 2. Create Your Standard Game Shell Phases.
- 14.8.2Main.js (or Game.js)
- 14.8.3Boot.js
- 14.8.4Preload.js
- 14.8.5Splash.js or Language.js
- 14.8.6Menu.js
- 14.8.7Sample CMS Phaser page — Credits.js
- 14.8.8Play.js
- 14.93 Quiz & Trivia games logic & supporting functions
- 14.10Game #1 — Mensa Mental Math™ — a math tutor game.
- 14.10.1Design Notes:
- 14.10.2Code Review:
- 14.10.3preload function – Lines 138 to 162
- 14.10.4create function – Lines 163 to 233
- 14.10.5update function – Lines 234 to 281
- 14.11Game #1 supporting Functions
- 14.11.1answeredQ function – Lines 282 to 299
- 14.11.2btnOver function – Lines 300 to 327
- 14.11.3checkAnswer function – Lines 330 to 351
- 14.11.4gameOver function – Lines 352 to 362
- 14.11.5nextQuestion function – Lines 363 to 395
- 14.12Game #2 — Tomfoolery Trivia Topics™ — a simple trivia game.
- 14.12.1Design Notes:
- 14.12.2Database Construction Tools
- 14.12.3Remote Question Pool Using AppML
- 14.12.4Building an AppML application
- 14.12.5Remote Question Pool Using JSON
- 14.12.6Creating various Languages
- 14.13Game #2 Code Review
- 14.13.1Init function — Lines 90 to 115
- 14.13.2preload function — Lines 116 to 120
- 14.13.3create function — Lines 121 to 193
- 14.13.4update function — Lines 194 to 241
- 14.14Game #2 supporting Functions
- 14.14.1answeredQ function — Lines 242 to 259
- 14.14.2btnOver function — Lines 260 to 287
- 14.14.3checkAnswer function — Lines 288 to 311
- 14.14.4gameOver function — Lines 312 to 318
- 14.14.5nextQuestion function – Lines 319 to 352
- 14.15Game #3 — Dating Veronica Darlene™ — a simple dating game.
- 14.15.1Design Notes:
- 14.15.2New conversation dialog format
- 14.15.3Conversation Dialog sequence
- 14.15.4Creating various Languages
- 14.15.5Game #3 updated question format
- 14.15.6Game #3 JSON format skeleton
- 14.15.7Game Pool Technology
- 14.15.8Art Resources
- 14.15.9Facial Expressions
- 14.16Game #3 Code Review
- 14.16.1Init function — Lines 100 to 254
- 14.16.2preload function — Lines 255 to 282
- 14.16.3create function — Lines 285 to 421
- 14.16.4update function — Lines 422 to 467
- 14.17Game #3 supporting Functions
- 14.17.1checkAnswer function — Lines 516 to 544
- 14.17.2clickContinue function — Lines 546 to 746
- 14.17.3gameOver function — Lines 749 to 753
- 14.17.4nextQuestion function — Lines 756 to 788
- 14.18Plugins
- 14.19Conclusion
15Role-Playing Game Mechanics (Draft)
- 15.1Our Goal
- 15.2Game Mechanics
- 15.3Game Components & Design Considerations
- 15.4Avatar’s Customized Creation
- 15.5Other Components
- 15.6Game Recipe™ Featured Ingredients
- 15.7Starting a RPG Game Project
- 15.7.1Step 0: Review your competition and game demonstrations:
- 15.7.2Game Examples
- 15.7.3Step 1: Create your “front-door”
- 15.8RPG — Core Game Phases
- 15.8.1Step 2. Create Your Standard “Game Shell” Phases.
- 15.9Step 3. Create your RPG Core Mechanics
- 15.9.1RPG Story “Chapter 1 of 3”
- 15.9.2Demo.js — Stage 1 Development
- 15.10Play.js — Stage 2 Overview
- Excerpt Phaser Game Prototyping (6th Edition).
- References from Mozilla Developers:
- 15.10.1Environment Maps
- 15.10.2Deeper Dive: Hexagonal Grids
- Red Blob games
- 15.10.3Separation of Concerns (SoC)
- 15.10.4Rogue Prince Starting Position
- 15.10.5Deeper Dive: Callbacks & Events
- “Callbacks and Events”
- 15.11HUD Panels as Scenes
- 15.11.1The Game Settings & Options HUD
- 15.11.2“Rogue Prince” HUD Panel
- 15.11.3Settlements HUD Panel
- 15.11.4“Non-Player Character” (NPC) Garrison HUD Panel
- 15.11.5Quest & Adventure Records
- 15.11.6Privileged Access to Bonus Content
- 15.11.7Conflict Resolution System
- 15.12Selling RPG Comics
- 15.13Quest Editors
- 15.13.1Game Development Tools & Generators
- 15.143D & 1st person games
- 15.14.1Deeper Dive: gITF™ Asset Generations
- 15.15Conclusion
16Strategy Game Mechanics
- 16.1Overview
- 16.2Core “Strategy” Game Construction
- 16.3The Goal
- 16.4Game Mechanics
- Digital Strategy Games Are Broken!
- 16.4.1Historical background
- 16.4.2Strategy Game Characteristics
- Advantages and Disadvantages of Decision Trees
- Disadvantages of decision trees:
- 16.4.3Types of Strategy Games
- 16.4.4Game Mechanics (GM): Logic & Rules
- 16.4.5Game Mechanics (GM): Data Structures
- 16.5Design Considerations
- 16.5.1Deeper Dive: Putting Stories in the Wrong Place
- Seven Deadly Sins of strategy game design
- 16.5.2Pre-Battle Preparations
- 16.5.3Terrain and Unit Symbols
- Historical Military Symbols Usage
- 16.5.4Battle Narratives
- 16.5.5Deeper Dive: Multi-Player versions
- 16.5.6Following the herd? - Using expected “Convention”
- 16.6Game Examples
- 16.7Game Recipe™ Featured Ingredients
- 16.8Starting a Strategy Game Project
- 16.8.1Step 0: Review Game demonstrations
- 16.8.2Step 1: Create your “front-door”
- 16.9Strategy — Core Game Phases
- 16.10“p2a” Main.js: Stages 1 & 2 consolidated
- 16.11“p2a” Boot.js & Load.js: Stages 1 & 2 consolidated
- 16.11.1Cross-Origin Requests
- 16.12“p2a” story.js: Stages 1 & 2 consolidated
- 16.13“p2a” menu.js: Stages 1 & 2 consolidated
- When to use “switch” versus “if-else” statements.
- 16.14“p2a” demo.js: Tutorial Game
- 16.14.1“p2a” demo.js Overview
- 16.15“p2a Battle Plans” with sprinkles
- 16.15.1“p2a” play.js Overview
- 16.15.2“p2a” play.js Battle Plan UI
- 16.15.3“p2a” play.js Drop Zones
- 16.15.4“p2a” play.js “btnOver” function
- 16.15.5“p2a” play.js “
doUnitDrop” function - 16.15.6“p2a” play.js “
doAssignReset” function - 16.16“p2a Pre-Battle Intelligence” with sprinkles
- 16.17“p2a Conduct the Battle” with sprinkles
17Tower Defenses Mechanics
- 17.1Game Project Overview
- 17.2Our Goal
- 17.3Game Recipe™ Featured Ingredients
- 17.4Historical background
- Com2US listed on KOSDAQ
- 17.4.1Game Examples
- 17.5Game Mechanics (GM) - Logic & Rules
- 17.5.1Feature Recommendations
- 17.6Game Mechanics (GM) - Data Structure
- 17.6.1Game Framework Mechanisms Elements
- 17.7Game Recipe™ Featured Ingredients
- 17.8Design Considerations
- 17.8.1Gameboard Development
- Phaser PathFollowers
- 17.8.2Deeper Dive: Path Follower Resources
- 17.9TD Game Modes
- 17.10Conclusion: “What vs. How”
- 17.11Game #1: “p2a” prototype
- 17.12Initial Project files (Phaser v2.0.6):
- 17.13Step #1: Front Door Analysis
- Change Summary of the original files:
- 17.14“p2a” Game Mechanics (GM) Overview
- 17.14.1GM: main.js
- 17.15Step #2: Game Shell & Game Phases
- 17.15.1Boot.js Modifications
- 17.15.2Menu.js prototype (No Modifications)
- 17.16Step #3 Game Framework Mechanisms (GFM) Overview
- 17.17Step #4: Supporting Functions: Lines 217 to 557
- 17.17.1
btnOut: Lines 226 to 257 - 17.17.2
btnOver: Lines 259 to 310 - 17.17.3
vpFSM: Lines 312 to 343 - 17.17.4
doUpgradeReturn: Lines 344 TO 417 - 17.17.5
doAssignReset: Lines 418 to 518 - 17.17.6
doSelect: Lines 518 to 553 - 17.18Game #1 Stage 2: “Beta” Pre-release
- 17.19Conclusion
- IIIPart III - ActionScript (ES4) into JS
18Transpiling AS2 or AS3 into JS
- 18.1Introduction and official statements
- Differences between ActionScript and JavaScript
- 18.2Flash Platform Basics
- 18.3HTML5 Platform Basics
- Quote from Phaser Game Design Workbook
- 18.4Difference between JS and AS
- 18.5Converting from Flash ActionScript to JavaScript
- 18.5.1Conversion Tools
- 18.6Why TypeScript? Phaser 4 coming!
- A language of its own vs. a JavaScript super-set
19AS3 to JavaScript
- 19.1References:
- 19.2Language similarities
- Richard Davey AS3 to Typescript
- 19.3Getting Started
- 19.4Tools
- 19.5Conversion Practicum
20AS2 to JavaScript
- 20.1References:
21322+ AS Games Available for Conversion!
- 21.1Reference:
- 21.2Some important notes:
- 21.3Questions and Answers
- 21.3.1AS2
- 21.3.2AS3
- 21.4Flash Game University — 36+ games!
- 21.5About GameScene
- 21.6MacroMedia 150+ Flash Game Collection
- 21.7Stephen Gose Game Studio (SGGS) - 127+ more!
- 21.81,746+ Games from the “Internet Arcade”
- IVPart IV - MMOG (Excerpt)
22Hot-seat MMoG?
- 22.1Network Foundation Inventory
- 22.2Deeper Dive: Testing MMoGs Locally??
- 22.3Hot-seat MMoG Demos
232-Player Remote Games
- 23.1MMoG engine Criteria:
24Massive Multi-Player Games
- 24.1MMoG Application Architecture
- 24.2Comparing Single- to Multi-Player Games
- 24.2.1Deeper Dive: Using Web Workers
- 24.2.2Deeper Dive: Await and Promises
- 24.3Differences in MMoG Games?
- Web MVC - Web Application Programming
25MMoG Hosting Options
- 25.1Server-side Research
- VSimulations & “A.I.” Mechanics
26Foreign Exchange, Bit-Coin & Commodities Trading
- 26.1Reference and Excerpts From
- 26.2Overview
- 26.3Our Goal
- 26.4Simulation Mechanics
- 26.5Simulation Game Examples
- 26.6Simulation Charting
27“Vo4X Shepherd Shell”™
- 27.1“Vo4X Shepherd Shell”™ Construction
- 27.2Cashing In with Your Expert Advisor(s)
- How to Earn from MQL5.community
- 27.3EA Protection
- 27.4VoFX Collection
- 27.5Chapter Summary
- 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: