Distribution Permission
- Supporting website
Forwards
Disclosures
Disclaimer
About this Workbook:
- Viewing the Source Code
- Links and References
- 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 - Concept & Design
1Game Studio & Project Setups
- ACTUALLY START THE DAMN GAME …
- 1.1Workstation Setup
- Batteries not included … Web Server Required
- Deeper Dive: Testing MMoGs Locally
- Development Tools
- 1.2Project Setup
- Project Structure
- And its name shall be called …
- Project Directories & Files
- 1.3Game Project Preparations
- What makes a “Good” Game?
- Quoted Recommendations from Modd.io
- Game Copyrights
- Quoted from: http://www.copyright.gov/fls/fl108.pdf
- 1.4Game Design System™
- How it works
- 1.5Game Genres
- Deeper Dive: Game Genres
- GGInteractive — Game Design Course
- Deeper Dive: Game Modes
- 1.6Game Recipe™ Summarized:
- Development:
- Design:
- Encoding:
- 1.7Summary
- 1.8Chapter References:
2Building a Game Prototype
- How to Succeed at Making One Game a Month
- 2.1Example: Using Box Graphics
- 2.23D Prototypes
- 2.3“ToTo, … we’re not in Kansas anymore” — Dorothy
- 2.4Creating Prototype Mechanisms — 4-Step method
- Step 0) Preparation and Research
- Step 1) Generate Game Phases (as needed).
- Step 2) Generate code for triggering events.
- Step 3) Generate transition
- Step 4) Create your Game’s Core & auxiliary functions
- Deeper Dive: Writing D.R.Y. JS code
3Making a “Game Recipe”™
- 3.1Step #1) the Front-Door
- Task #1-1 Instructions:
- Compare your code
- Mobile “Single Web Page Applications” (SWPA)
- Cocoon.js Cloud Alternatives
- 3.2Task #2: Launching a Game
- Launching the Game.
- Game
Config - 3.3Deeper Dive: To Infinity and Beyond!
- 3.4Summary
- 3.5Chapter References:
4Game Phases, Scenes & Roses.
- You Don’t Know JS- How We Organize in JS by Kyle Simpson
- 4.1Bare-Bones Prototypes
- 4.2Using a Phaser Scene as a “Game Phase”
- 4.39 Essential Functions of a Phaser “Scene”
- 4.4Game Phases as Modules
- “Phaser.Game” — One File to Rule them all …
- Yes, Gandalf got it wrong!
- Main.js (aka “launch” or index.js)
- Boot.js
- Preload.js
- Deeper Dive: Artwork & Resources Security
- Deeper Dive: Phaser
Cache - Working with the Phaser Cache:
- Deeper Dive: Loader Examples
- Splash.js or Language.js?
- Main Menu.js
- Play.js
- Deeper Dive: JS Modules
- You Don’t Know JS Get Started - 2nd Edition by Kyle Simpson (Quote)
- 4.5Step #1 of 4: Generate Game Phases
- Dynamically Including Game Phases
- Deeper Dive: D.R.Y. Stand-alone
- Step #2 of 4: Game Phase Transitions
- Deeper Dive: The CMS “Game Shell”
- Deeper Dive: When to use a game shell
- 4.6Encoding Phaser Scenes as a “Game Phase”
- Vanilla, Chocolate, or Strawberry Creme-filled?
- Overriding Essential Functions inside Phaser.Scene
- Creating Scenes using ES5 Prototypes
- Creating Scenes using Phaser.Class
- Creating Scenes by extending Phaser.Class
- ES6 Considerations: “Strawberry”
- Creating Scene Configuration files
- Deeper Dive: Defining Other Scene Properties
- Deeper Dive: ES9 Modules
- 4.7Summary
- 4.8Chapter References:
5Game Recipe™ Automation Tool
- 5.1Deeper Dive: Database Protection Considerations
- 5.2Database Schema Construction (Copyright-able!!)
- Database Record Construction
- Database structure
- 5.3Remote Codebase Using AppML
- 5.4Building an AppML application
- 5.5Sample AppML codebase (Public Access)
- 5.6Remote codebase Using JSON
- Per-user storage
- 5.7Chapter Source Code & Demo
- 5.8Summary
- 5.9Chapter References
- IIPart II - Mechanisms & Mechanics Production
6Building Game Prototypes, Mechanisms & Tools
- 6.1Task #3: Mini-Me
- Creating an Avatar - “visual display”
- Deeper Dive: Display selected frames from a sprite-sheet.
- Displaying a particular sprite from sprite-sheet
- Deeper Dive: Using Base64 Images
- Creating an Avatar’s metadata
- Deeper Dive 3.19+ Tweens
- 6.2Task #4: Moving Game Elements
- Deeper Dive: Phaser III Input Manager
- Quoted from Dev Log 90 & Dev Log 133!
- Callbacks and Events
- 6.3NEW in v3.16.x (JAN 2019!)
- Deeper Dive: Future Proofing your source code.
- Deeper Dive: Configuring the Keyboard (Phaser v3.16+ updated)
- 6.4Task #5: Things that go bump …
- Walls and Camera boundaries
- Interior Decoration
- Deeper Dive on Game Objects hit areas.
- Doors, Knobs, and Buttons
- Deeper Dive: Writing Optimized Code
- Deeper Dive: Buttons as a “Class” or “Scenes”?!!?
- Deeper Dive: Button size considerations
- Deeper Dive: Adding Buttons & Mobile Touch
- 6.5Task #6: When Worlds Collide …
- 6.6Task #7: It’s curtains for you …
- 6.7Other Game Mechanics Categories
- 6.8The Finish Line: You’re AWESOME … Gloat, Gloat …
- 6.9Chapter Source Code & Demo
- 6.10Summary
- 6.11Chapter References
7Game Mechanics Systems
- 7.1Game-Play vs Game Mechanics vs Game Mechanism
- 7.2Game Mechanics (GM) Overview
- Game Mechanics Suggested by Schell
- Game Mechanics: “Actions”
- Game Mechanics as: Attributes, Objects, & States
- Deeper Dive: Game Phases Revisited
- Apple’s
GameplayKit - Deeper Dive:
StateManager - Deeper Dive: Object Manipulation in ES5/6/7/8/9/10+
- Game Mechanics: “Chance”
- Game Mechanics: Rules
- Deeper Dive: Rules
- Deeper Dive: Rule Categories
- Game Mechanics: “Skills”
- Game Mechanics: “Space”
- 7.3Phaser III API Relation to Game Mechanics
- Deeper Dive: Input Manager Event Horizon
- Quote Phaser Newsletter #118
- 7.4Summary
8Dem’s fightin’ words
- 8.1Launching Web Sockets
- 8.2Dynamic Combat Menus
- 8.3So, Give Me Some Space …
- “The Four Virtues of a good tactical turn-based combat system”
- Melee Weapons
- Ranged Weapons
- Is your game ‘juicy’ enough?
- 8.4OO!, OW! AH!, OW! Stayin’ alive! Stayin’ alive!
- Grid-less Combat
- Grid-ed Combat
- 8.5Tactical Tiled-Maps
- 8.6Squares and Checkered Grids
- References from Mozilla Developers:
- Deeper Dive: Phaser III Grids
- Grid Plugin
- Hexagonal Grids
- Red Blob Games
- Deeper Dive: Real hexagonal grids
- Squishes
- 8.7Rules of Engagement: Take 5 paces, turn, and …
- Been there … done that …
- 8.8“Where’s the beef?”
- Click-fest
- Guitar hero - Time to get it Right!
- Days of our Lives - Drama Theater
- SCA Virtual “Fighter Practice” by Steve Echos
- En Guard method
- Yeap! Ya betcha’ ‘ur life!
- 8.9Story narrative
- 8.10Frisking, Fondling, or Groping
- 8.11Chapter Source Code
- 8.12Complete Combat Prototypes
- 8.13Summary
- 8.14Footnotes
9Phaser III Game Mechanism Components
- 9.1“ToTo, we’re not in Kansas …” — Dorothy
- Index page inline script - Reviewed
- Adding Display objects
- Adding Control Mechanisms
- Adding Buttons & Mobile Touch
- Phaser III “Actions”
- Components
- What’s the Difference Between Class & Prototypal Inheritance?
- DOM
- Game Objects
- System Components
- 9.2Tile Map
- Tilemap Rendering - new Dynamic method
- Tilemap Rendering - new Static method
- Quote from Devlog 82:
- 9.3Phaser III Systems
- v3 Boot
- v3 Cache
- v3 Device Manager
- v3 Events
- v3 Input Manager
- Callbacks and Events
- Deeper Dive: v3.16+ New Keyboard rewrite!
- Keyboard Input - New Features
- v3 Loader
- v3 Sound
- v3 Scene Manager
- From v2.x.x States to Scenes
- v3 Texture Manager
- v3 Tween Manager
- Deeper Dive 3.19+ Tweens
- 9.4Phaser3 Finish Line: You’re AWESOME … Gloat!, Gloat!
- Phaser v3 Source Code & Demos
- Quote from Devlog 85
- 9.5v3 Animations
- Deeper Dive: History of Animation
- Animation Today
- Animation Recommendations
- Frame Rates Recommendations
- Tweens
- 9.6Camera & Viewports
- 9.7Summary
- 9.8Chapter Footnotes:
10Whazzz-sUP! …. HUD Development
- 10.1HUD Housing Development
- Quote Newsletter 146
- 10.2HUD as Panels
- 10.3HUD Panels outside the Canvas?!?
- 10.4HUD Demos
- 10.5Summary
- 10.6Footnotes
11Don’t make me think or “Artificial Intelligence for Dummies”
- 11.1The “6 of 9”
- 11.2Chasing
- 11.3Evading
- 11.4Patterns
- 11.5Fuzzy logic
- 11.6Finite State Machines (FSM)
- FSM Resolving Combat Outcomes
- FSM Resolving AI behaviors
- 11.7Recursive World Feedback
- Probability Data Tables
- 11.8Complete AI Prototypes
- 11.9Chapter Source Code
- 11.10Summary
- 11.11Footnotes
- IIIPart III: Distribution!
12Game Distribution
- “How to publish a game on the web??”
- 12.1Introduction: 8-Step Deployment Method.
- 12.2Distribution Preparation
- Development vs. Production
- 12.3Create A Game Pipeline
- 12.4Preparing for WebXR Deployment
- Does mobile gaming still need publishers?
13Marketing Channels
- 13.1Channel Selection
- 13.2What do I need?
- Advertising
- Quoted from Pocket Gamer.biz JAN 2020
- Deeper Dive: “Playable” Ads
- Partnerships & Sponsors
- Retail
- Billing
- Data
- Player Interactions
- Paraphernalia Merchandising
- 13.3Chapter Reference
- IVPart IV - Resources & “Walk-thru” Tutorials
14Phaser III Game Prototype Library
- 14.1Walk-through Tutorial Series
- Difficulty Rating #1: Introductory
- Difficulty Rating #2 to #3: Intermediate
- Difficulty Rating #4: Advanced - “The Full Monty!”
15What’s next?
- 15.1Game Distribution & Marketing
- “How to publish a game on the web??”
- Introduction: 8-Step Deployment Method.
- Shareably (SBLY) looking to rent your Phaser games
- 15.2Book Review Protocol
- 15.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
Common Pitfalls
- Lacking Debugging Tools?
- Deeper Dive: Console Commands
- Same “Name-spaces”
- Callbacks
- Missing Documentation
- Deeper Dive: What is Dragon Speak
Phaser III Book Examples & Samples
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: