HTML5 Game Development Insights [electronic resource] /
McAnlis, Colt.author.
Lubbers, Peter.author.
Jones, Brandon.author.
Mazur, Andrzej.author.
Bennett, Sean.author.
Garcia, Bruno.author.
Lin, Shun.author.
Popelyshev, Ivan.author.
Howard, Jon.author.
Ballantyne, Ian.author.
Kihira, Takuo.author.
Freeman, Jesse.author.
Smith, Tyler.author.
Olmstead, Don.author.
Gauci, Jason.author.
McCutchan, John.author.
Austin, Chad.author.
Pagella, Mario Andres.author.
dErfurth, Florian.author.
Tebbs, Duncan.author.
HTML5 Game Development Insights is a from-the-trenches collection of tips, tricks, hacks, and advice straight from professional HTML5 game developers. The 24 chapters here include unique, cutting edge, and essential techniques for creating and optimizing modern HTML5 games. You will learn things such as using the Gamepad API, real-time networking, getting 60fps full screen HTML5 games on mobile, using languages such as Dart and TypeScript, and tips for streamlining and automating your workflow. Game development is a complex topic, but you don't need to reinvent the wheel. HTML5 Game Development Insights will teach you how the pros do it. The book is comprised of six main sections: Performance; Game Media: Sound and Rendering; Networking, Load Times, and Assets; Mobile Techniques and Advice; Cross-Language JavaScript; Tools and Useful Libraries. Within each of these sections, you will find tips that will help you work faster and more efficiently and achieve better results. Presented as a series of short chapters from various professionals in the HTML5 gaming industry, all of the source code for each article is included and can be used by advanced programmers immediately.
Contents at a Glance; Introduction; Chapter 1: JavaScript Is Not the Language You Think It Is; Variables and Scoping Rules; Declaration Scoping; Declaration Hoisting; JavaScript Typing and Equality; Base Types; Numbers; Strings; Booleans; Objects; Arrays; null; undefined; The typeof Operator; The instanceof Operator; Type Coercion; Equality Checking; Truthiness; Inheritance the JavaScript Way; Prototypical Inheritance; this; Conclusion; Chapter 2: Optimal Asset Loading; Caching Data; HTTP Caching; HTTP Caching Example; Loading HTTP Cached Assets; Client-Side Storage; Memory Caching
Data FormatsTexture Formats; Audio Formats; Other Formats; Asset Hosting; Server Compression; Geolocating Assets; Using a Content Distribution Network; Effective Asset Grouping; Grouping Using Tar Files; Conclusion; Acknowledgements; Chapter 3: High-Performance JavaScript; About the Demo; Object Pools; How to Make an Object Pool; Pool Structure; Recyclable Objects; Requesting a Free Object from the Pool; Returning Objects to the Pool; Iterating on a Pool; Using an Object Pool; Updating Only What's Important; Culling for Simulation; Culling for Rendering; Warming Up the Virtual Machine
Your Code Will Be Compiled and Optimized on the FlyDeoptimizations; Rev Up the Engine; Benchmarking; Digging Deeper; Conclusion; Chapter 4: Efficient JavaScript Data Structures; The Importance of Data Structures; Object Hierarchies; Arrays; Performance Data; ArrayBuffers and ArrayBufferViews; Complex Structures as Single ArrayBufferViews; Late Unpacking; Best Practices; Conclusion; Chapter 5: Faster Canvas Picking; Creating Pickable Objects; Defining a Sprite Prototype; Representing Objects; Basic Picking with Bounding Boxes; Caveats; Faster Picking via Bucketing; Caveats
Pixel Perfect PickingLoading Pixel Data; Testing a Mouse Click; Results and Caveats; Convex Hull Picking; Generating the Convex Hull; Doing Picking Against the Convex Hull; Caveats; Moving Forward; Chapter 6: Autotiles; Shadows; The Abyss; Smooth Transitions; Chapter 7: Importing Flash Assets; Bruno Garcia, co-founder, 2DKit; Sprite Sheets; Vectorization; Cutout Animation; New Tools; Other Assets; Conclusion; Chapter 8: Applying Old-School Video Game Techniques in Modern Web Games; High-Performance Update Loops; Calling requestAnimationFrame; Bottlenecks in an Update Loop; Dirty Rectangles
Rendering Massive GridsDisplaying Animations in Extremely Large Viewports; Color Cycling; Conclusion; Chapter 9: Optimizing WebGL Usage; The Anatomy of a WebGL Call; How WebGL Works; Building the Renderer; Debugging WebGL Usage; Using Extensions; Vertex Array Objects; Draw Buffers; Instanced Arrays; WebGL 2; Rendering the Scene; Frustum Culling; Rendering Order; Batching; Conclusion; Chapter 10: Playing Around with the Gamepad API; Draft Stage; Browser Support; Supported Devices; Gamepad API Implementation; Project Setup; Connecting the Gamepad; Prefixes; Detecting Disconnection
Detecting Button Presses
Includes index.
"Take your HTML5 game development to the next level with tips and advice, right from the pros!"--Cover.
HTML5 Game Development Insights is a from-the-trenches collection of tips, tricks, hacks, and advice straight from professional HTML5 game developers. The 24 chapters here include unique, cutting edge, and essential techniques for creating and optimizing modern HTML5 games. You will learn things such as using the Gamepad API, real-time networking, getting 60fps full screen HTML5 games on mobile, using languages such as Dart and TypeScript, and tips for streamlining and automating your workflow. Game development is a complex topic, but you don't need to reinvent the wheel. HTML5 Game Development Insights will teach you how the pros do it. The book is comprised of six main sections: Performance; Game Media: Sound and Rendering; Networking, Load Times, and Assets; Mobile Techniques and Advice; Cross-Language JavaScript; Tools and Useful Libraries. Within each of these sections, you will find tips that will help you work faster and more efficiently and achieve better results. Presented as a series of short chapters from various professionals in the HTML5 gaming industry, all of the source code for each article is included and can be used by advanced programmers immediately.
Computer games-Programming.
Software engineering.
Game Development.
Software Engineering/Programming and Operating Systems.