HTML5 Game Development Insights
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 suc...
Autores principales: | , , , , , , , , , , , , , , , , , , , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Berkeley, CA :
Apress
2014.
|
Edición: | 1st ed. 2014. |
Colección: | The Expert's Voice in Game Development
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629390806719 |
Tabla de Contenidos:
- 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