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: Network Concepts and Design
1Business Considerations
- 1.1Formal Business Launch Required?
- 1.2Common Marketing Sense
- If You’re Only Going to Read One Thing in This Book, Read This …
- Building Desk-Tops or Web-apps? (Business Philosophy)
- Find Similar Games (Competitors)
- Key Features (Matching the Competition)
- Key Differentiation & Unique Features (Setting Us Apart)
- Understanding the Block-chain Business Model in Gaming
- 1.3New Dog, Old Tricks?
- Story to remember for later chapters…
- 1.4Generating Game Ideas & Mechanics
- 1.5Copyrights & EULA
- 1.6Chapter Summary
- 1.7Chapter Foot Notes
2Building a Game Studio Workshop
- 2.1Workstation Set-up Environment
- Deeper Dive: Testing MMoGs Locally
- 2.2Development Tools
- Text Editor
- IntelXDK (deprecated)
- 2.3Project File Structure
- My Project Recommendations
- 2.4Summary
3Networking Basics
- 3.1Network Foundation Inventory
- 3.2Deeper Dive: Testing MMoGs Locally??
- Hot-seat MMoG Demos
- 3.3Network Relationships
- 3.4Network Concerns
- 3.5Network Transport Protocols Overview
- Protocols Defined
- Layer 4 UDP vs. TCP
- The Way We Were . . .
- New Kid on the Block
- Deeper Dive: WebSocket Frame
- WebSocket Frame Masking
- 3.6Chapter Summary
- 3.7Chapter Foot Notes
- IIPart II: MMoG Architecture
4MMoG Engine Analysis
- 4.1What is a Game Engine?
- 4.2To “B”uild or not to “B”uild, that’s the question!
- Remember this story for later!
- 4.3Purpose of XML and JSON
- 4.4MMoG engine Criteria:
- Here’s my list and chart: (not in order of preference)
- 4.5Server-side Research
- 4.6Vetting our candidates
- 4.7Node.js vs. WebSockets vs. Socket.io
- Socket.IO bloated overhead!
- 4.8Final Analysis
- 4.9Server-less Alternatives
- When to use the microservice architecture?
- Online Development — Single Provider Option
- Jelastic and SmartFoxServer 2X for free in a click!
- Deploy Using Various Cloud Microservices
- Build a Vertical
- 4.10Chapter Summary
- 4.11Chapter Foot Notes:
5MMoG Application Architecture
- 5.1Comparing Single- to Multi-Player Games
- API as abstraction layer
- API design
- Deeper Dive: Using Web Workers
- Deeper Dive: Await and Promises
- 5.2Differences in MMoG Games?
- Web MVC - Web Application Programming
- Player Interactions
- Quoted from Fast-Paced Multi-Player (Part I): Client-Server Game Architecture
- Technology Architecture
- Deeper Dive: Ethereum Distributed App (DApp) Games
- Live testing of MMoGs!
- 5.3Technical Aspects
- Writing Source Code Differently: “How vs What!”
- Imperative vs Declarative
- So, why is this interesting?
- Construction Sequence and Regimen
- 5.4Encoding Formats for Game Turns
- QUOTE: Message Oriented Middleware (MOM) Asynchronicity
- Qpid Proton — The AMQP messaging toolkit
- MMoG App API - RPC or MOM?
- 5.5Deployment Concerns
- 5.6Persistent Data structures
- Deeper Dive: 3rd Option for Real-time MMoG
- What is RethinkDB?
- Distributed Database (sharding)
- MMoG Database Examples
- Deeper Dive: Learn from the Best — UnReal Engine
- Implement Networking from the beginning!
- Deeper Dive: Learn from the Best — Unity Multiplayer Networking
- Deeper Dive: Learn from the Best — IBM Microservices
- Additional Information
- Deeper Dive: Learn from the Best — Google GRITS
- Deeper Dive: Learn from the Best — Rob Hawkes
- 5.7New Tricks
- 5.8Managing Network Transports
- Skipping Rope! (Fixed Time Intervals)
- Review from Part I — Lag and Latency
- Adobe RTMP and RTMFP
- 5.9Availability
- 5.10PBM³ Technology
- Managing Time-line Models
- 5.11Too Hot, Too Cold, Just right! … where & what
- Deployment Options
- 5.12Chapter Summary
- 5.13Chapter Foot Notes
- IIIPart III: Production & Development
- Game Recipe™
- Development:
- Design:
- Encoding:
- Creating Prototype Mechanisms — 4-Step method
6Client-side Foundation
- 6.1Testing Your Browser
- Test sites:
- 6.2WebSocket Protocol Handshake
- Deeper Dive: WebSocket API
- 6.3Sample Source Code: Client-side WebSocket
- Step #1: Game
indexpage - Step #2: Generate Event handlers
- 6.4Security Concerns
- MMoG Protection
- Deeper Dive: WebSocket Security
- Adding a cookie notice — NEW Mandate 25 May 2018!
- Do you also run a WordPress store-attached blog?
- Deeper Dive: “Sticky Load Balancing”
- The Myth of Long Polling by Jonathan Gros-Dubois
- Use of <iframe>
- 6.5One Last thing
- Smart (thick) vs. Dumb (thin)
- 6.6Chapter Summary
- 6.7Chapter Foot Notes
7Server-side Foundation
- Mobile app server vs. application servers vs. web servers
- 7.1Building a Socket Server
- History Lesson:
- Thin Server
- Thick Server
- Thick Stateless Server
- Server Requirement Considerations
- Deeper Dive: Measure Network Latency
- 7.2Server Pages
- Code Review
index.php - Review
demo/server.phpContent - 7.3Where’s Phaser!?
- 7.4Extending Our Operations
- Deeper Dive: The CMS Game Shell
- Deeper Dive: When to use the game shell model
- 7.5CMS — Server-side Frameworks
- Game Flow
- Index Page (Non-Traditional Method)
- 7.6CodeIgniter / Phaser Integrated CMS
- Phil Sturgeon, author of “Build APIs You Won’t Hate” states,
- High Score Services
- Membership Login
- 7.7Back-end Administration
- 7.8Chapter Summary
- 7.9Chapter References
8MMoG App API Engine
- 8.1Building a MMoG App APIs
- 8.2Game Turn Orders
- Creating MMoG API Prototypes — 4-Step method
- C2S GTOs Samples
- Deeper Dive: JSON Microdata Format
- Client-side Proxy Server
- 8.3Game Turn Responses
- Deeper Dive: Real-time MMoG Design
- S2C GTRs Samples
- 8.4Using Horizontal Micro-services
- 8.5Modeling from Others MMoG Contributors
- Lessons Learned the “Hard-way”
- 8.6Chapter Summary
- 8.7Chapter References
- IVPart IV: Step-by-Step Tutorials
- 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