1st Edition

Game Engine Gems 3

Edited By Eric Lengyel Copyright 2016
    324 Pages 101 Color Illustrations
    by A K Peters/CRC Press

    This book, the third volume in the popular Game Engine Gems series, contains 22 new chapters that concisely present particular techniques, describe clever tricks, or offer practical advice within the subject of game engine development. Each chapter is filled with the expert knowledge and wisdom of seasoned professionals from both industry and academia.

    The book is divided into four broad categories pertaining to game engine development:

    • Graphics and rendering
    • Physics
    • General programming
    • Character control and artificial intelligence

    There is also a companion website, gameenginegems.com, where updates and supplementary materials are posted. Many chapters offer downloadable source code, demos, and examples.

    Covering the latest developments and continuing to provide practical methods and tips for game engine development, Game Engine Gems 3 is indeed a new gem in the series. Not only does it aid professionals in their work, but it also shows students and others interested in game development how the pros tackle specific problems that arise during game engine development.

    GRAPHICS AND RENDERING

    The Open Game Engine Exchange Format
    Eric Lengyel
    Introduction
    OpenDDL
    Scene Structure
    Object Data
    Animation
    References

    Realistic Blending of Skies, Water, and Terrain
    Frank Kane
    The Problem
    Blending Terrain with the Sky
    Applying Visibility Effects to Distant Clouds
    Creating Realistic Ocean Horizons
    Putting It All Together
    References

    Fog with a Linear Density Function
    Eric Lengyel
    Introduction
    Fog Factor Calculation
    Visibility Culling
    References

    Vegetation Management in Leadwerks Game Engine 4
    Josh Klint
    Introduction
    The Problem
    The Idea
    Culling
    Rendering
    Level of Detail
    Physics
    Future Development
    References

    Smooth Horizon Mapping
    Eric Lengyel
    Introduction
    Horizon Map Generation
    Rendering with Horizon Maps
    References

    Buffer-Free Generation of Triangle Strip Cube Vertices
    Don Williamson
    Introduction
    Generation Cube Vertices
    Wireframe Cubes

    Edge-Preserving Smoothing Filter for Particle Based Rendering
    Kin-Ming Wong and Tien-Tsin Wong
    Introduction
    Guided Image Filtering
    GLSL Implementation
    Results and Performance
    Acknowledgements
    References

    Variable Precision Pixel Shading for Improved Power Efficiency
    Rahul P. Sathe
    Introduction and Background
    Algorithm
    Results
    Discussion
    Acknowledgements
    References

    A Fast and High-Quality Texture Atlasing Algorithm
    Manny Ko
    Introduction
    Background
    Chart Segmentation
    Atlas Packing
    Atlas-Aware Filtering
    Acknowledgements
    References

    PHYSICS

    Rotational Joint Limits in Quaternion Space
    Gino van den Bergen
    Introduction
    3D Rotations
    Unit Quaternions
    Quaternions vs. Exponential Map
    Swing-Twist Limits
    Volumetric Limits
    References

    Volumetric Hierarchical Approximate Convex Decomposition
    Khaled Mamou
    Introduction
    Convex Approximation
    Volumetric Hierarchical Approximate Convex Decomposition
    References

    Simulating Soft Bodies Using Strain Based Dynamics
    Muhammad Mobeen Movania
    Introduction
    Position Based Dynamics
    Strain Based Dynamics
    Implementation Details
    Implementing Cloth Simulation
    Implementing Tetrahedral Mesh Simulation
    Barycentric Interpolation
    Experimental Evaluation
    Future Work
    References

    GENERAL PROGRAMMING

    Generic, Lightweight, and Fast Delegates in C++
    Stefan Reinalter
    Background
    The Delegate Technique
    Toward a Generic Solution
    Embracing C++11
    Extensions
    Source Code

    Compile–Time String Hashing in C++
    Stefan Reinalter
    Background
    The Hash Technique
    Toward a Generic Hash Function
    Implementation Notes
    Source Code

    Static Reflection in C++ Using Tuples
    Nicolas Guillemot
    Rethinking Composition Using Tuples
    Recursive Member Iteration
    Practical Concerns

    Portable SIMD Programs Using ISPC
    Nicolas Guillemot and Marc Fauconneau Dufresne
    The Problem
    ISPC Basics
    ISPC Example Programs
    Integration in a Game Engine
    Tips & Tricks
    References

    Shared Network Arrays as an Abstraction of Network Code from Game Code Logic
    João Lucas Guberman Raza
    Introduction
    How SNAs Work
    How a Gameplay Programmer Uses SNAs
    How a Network Programmer Uses SNAs
    Further Discussion
    References

    CHARACTER CONTROL AND ARTIFICIAL INTELLIGENCE

    Vision Based Local Collision Avoidance
    Teófilo Bezerra Dutra, Ricardo Marques, Julien Pettré, and Jan Ondřej
    Introduction
    Local Path Planning in Games
    Vision Based Obstacle Avoidance
    Purely Reactive Technique
    Gradient Based Technique
    Final Considerations
    Acknowledgements
    References

    A Programming Framework for Autonomous NPCs
    Artur de Oliveira da Rocha Franco, José Gilvan Rodrigues Maia, and Fernando Antonio de Carvalho Gomes
    Introduction
    CordéIS Overview
    Implementing CordéIS for Electronic RPGs
    About the Demo
    References

    Beyond Smart Objects: Behavior-Oriented Programming for NPCs in Large Open Worlds
    Martin Černý, Tomáš Plch, and Cyril Brom
    Introduction
    A Little Bit of Context
    Behavior Objects
    Integration Within an AI System
    Implementation in Kingdom Come: Deliverance
    Lessons Learned
    Acknowledgements
    References

    A Control System for Enhancing Entity Behavior
    Mike Ramsey
    Controller Basics
    PID Implementation
    Use Cases and Strategies for a PID Controller
    References

    A Control System Based Approach to Entity Behavior
    Mike Ramsey
    A Single Control System
    Hierarchical Control System Basics
    A Hierarchical Control System for Following
    References

    Biography

    Eric Lengyel is a veteran of the games industry with more than 21 years of experience writing game engines. He earned his PhD in computer science from the University of California, Davis, and his MS in mathematics from Virginia Tech. He is the founder of Terathon Software, where he leads ongoing development of the Tombstone Engine. He was the lead programmer for Quest for Glory V at Sierra Online, worked on the OpenGL team for Apple, and was a member of the Advanced Technology Group at Naughty Dog, where he designed graphics driver software used on the PlayStation 3. He is the author of the bestselling book Mathematics for 3D Game Programming and Computer Graphics and has written several chapters in other books, including the Game Programming Gems series. His articles have been published in the Journal of Game Development, the Journal of Graphics Tools, and on Gamasutra.com.