Game Engine Gems 3: 1st Edition (Hardback) book cover

Game Engine Gems 3

1st Edition

Edited by Eric Lengyel

A K Peters/CRC Press

308 pages | 101 Color Illus.

Purchasing Options:$ = USD
Hardback: 9781498755658
pub: 2016-04-11
SAVE ~$19.39
$96.95
$77.56
x
eBook (VitalSource) : 9780429183911
pub: 2016-02-24
from $48.48


FREE Standard Shipping!

Description

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.

Table of Contents

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

About the Editor

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.

Subject Categories

BISAC Subject Codes/Headings:
COM012040
COMPUTERS / Programming / Games