Data Structures and Algorithms for Game Developers

Allen Sherrod





Data structures and algorithms are used in every application written, and with the complexity of 3D virtual worlds and game environments growing every year, the need to manage this data efficiently is critical for programmers of all levels. For game development, the way data is managed, stored, and manipulated is critical to a games performance effectiveness and efficiency. So to be successful as a game programmer, you have to know how to create data structures and write algorithms for maximum performance. Data Structures and Algorithms for Game Developers teaches the fundamentals of the data structures and algorithms used in game development.

This book provides programmers with a detailed reference to what data structures and algorithms are, and why they are so critical in game development. It teaches new game programmers, students, and aspiring game developers how to create data structures and write algorithms using C++. All key features of C++ are also covered, especially those related to game development. The book also presents practical alternative options in C++ where applicable, such as using C++s STL in professional applications instead of implementing custom routines. Additionally, a demo application is included in each chapter focusing on the data structure and/or algorithms presented in that chapter. The book covers many modern topics that game and graphics programmers must know to be successful, including geometry management techniques, and data structures and algorithms such as KD-Trees, Binary Space Partitioning Trees, Sphere Trees, etc

The code written in this book is not dependent on any specific hardware or operating system so it will be useful across different systems, and every chapter ends with questions, exercises, and challenges for the reader to complete in order to help them better understand and apply what they learn.


Table of Contents

Introduction, Chapter 1 Overview; Chapter 2 Arrays; Chapter 3 Recursion; Chapter 4 Simple Sorting; Chapter 5 Link Lists; Chapter 6 Stacks and Queues; Chapter 7 Hash Tables; Chapter 8 Advanced Sorting; Chapter 9 Binary Trees; Chapter 10 Red-Black Trees; Chapter 11 Minimax Trees; Chapter 12 Quad Trees; Chapter 13 Octrees; Chapter 14 Binary Space; Chapter 15 K-D Trees; Chapter 16 Sphere Trees; Chapter 17 Heaps; Chapter 18 Graphs; Chapter 19 Data Compression and Encryption; Appendix A Resources; Appendix B Answers to Chapter Questions; Appendix C Compiling Sample Code; Appendix D OpenGL and GLUT, Appendix E About the CD; Index