
Practical Game Programming
No ratings
Harris Wang, Athabasca University
Walter Ridgewell, Athabasca University
Copyright Year:
ISBN 13: 9781998944224
Publisher: Athabasca University Press
Language: English
Formats Available
Conditions of Use
Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
Table of Contents
- Acknowledgements
- 1. Introduction
- 1.1. Introduction to Video Games and Game Programming
- 1.2. History of Video Games
- 1.3. Types of Video Games
- 1.4. Road Map of Game Development
- 1.5. Set Up Game Development IDE
- 1.6. The Allegro 5 Game Library
- Exercises, Homework Questions, and Projects
- 2. Essentials of Game Programming with Allegro
- 2.1. Common Structure of a C/C++ Program with Allegro 5
- 2.2. Handling User Input
- 2.3. Collision Detection
- 2.4. Adding Sound Effects to Games
- 2.5. Timers and Game Timing
- 2.6. Using Files for Games
- Exercises, Homework Questions, and Projects
- 3. Using Graphics in Games
- 3.1. Bitmap Fundamentals
- 3.2. Bitmaps Creation and Use in Allegro 5
- 3.3. Utilizing Bitmaps in a Program
- 3.4. Scaling and Rotating Bitmaps
- 3.5. Displaying a Section of a Bitmap and the Concept of a Viewport
- 3.6. Advanced Graphics Techniques in Allegro 5
- 3.7. How Transformations Help with Resolution Independence
- 3.8. Antialiasing and Texture Smoothing
- 3.9. Shaders
- 3.10. Using Premultiplied Alpha in Allegro 5
- Exercises, Homework Questions, and Projects
- 4. Programming Sprites in Allegro 5
- 4.1. The Fundamentals
- 4.2. Additional Sprite Handling Routines
- 4.3. Allegro Blending Function and Sprites
- 4.4. Advanced Sprite Use in Allegro 5
- Exercises, Homework Questions, and Projects
- 5. Programming Backgrounds for Video Games
- 5.1. Types of Backgrounds
- 5.2. Creating and Using Static Backgrounds
- 5.3. Creating and Using Scrolling Backgrounds
- 5.4. Creating and Using Dynamic Backgrounds
- 5.5. Creating and Using 3D Backgrounds
- Exercises, Homework Questions, and Projects
- 6. Game Design and Development Fundamentals
- 6.1. Conceive an Amazing Game
- 6.2. Transforming a Billion-Dollar Idea into a Detailed Game Design
- 6.3. Implement the Game
- Exercises, Homework Questions, and Projects
- 7. Advanced Topics in Practical Game Programming
- 7.1. Multithreading
- 7.2. Custom Shaders
- 7.3. Networking for Multiplayer Games
- 7.4. AI Programming
- 7.5. Optimization Techniques
- 7.6. Custom GUI Systems
- 7.7. Advanced Audio
- Exercises, Homework Questions, and Projects
- 8. Game Development Projects
- 8.1. Action Game: Space Shooter
- 8.2. Platform Game: Tank War
- 8.3. Adventure Game
- 8.4. Arcade Game
- 8.5. Board Game
- 8.6. Emulator Game
- 8.7. Puzzle Game
- 8.8. Role-Playing Game
- 8.9. Sports Game
- 8.10. Strategy Game
- 8.11. Utilities Game
- References and Resources
About the Book
Practical Game Programming provides a structured, accessible introduction to game development using C++ and the Allegro 5 library. Designed for upper-level undergraduate learners, it guides students through the complete development pipeline—from programming fundamentals and user input to graphics, audio, file management, and game timing. Advanced topics such as collision detection, multithreading, optimization, custom shaders, and networking are covered in depth.
This OER emphasizes both technical skills and design principles, including game conception, prototyping, UI/UX, testing, and quality assurance. Each chapter includes exercises and projects, culminating in genre-based development challenges across action, platformer, adventure, arcade, puzzle, role-playing, strategy, and more. With a focus on applied learning and creative exploration, this text equips students to build professional-quality games and prepares them for real-world development environments.
Accessibility
As a publication from Athabasca University Press - a Benetech Global Certified Accessible (GCA) publisher - the downloadable EPUB edition of Practical Game Programming complies with EPUB Accessibility 1.1 and WCAG 2.2 Level AA standards. Features include a logical reading order, structured headings, and alternative text for all 28 figures and diagrams. The text supports screen readers, refreshable braille displays, adjustable font sizes, high-contrast display modes, and full keyboard navigation. Additionally, the web-accessible version and downloadable PDF offer flexible reading options across multiple devices.
About the Contributors
Authors
Dr. Hongxue (Harris) Wang is a computer scientist whose research focuses on the theoretical foundations of intelligence and the modelling, implementation, simulation, integration and security of complex intelligent systems. He earned his bachelor’s and master’s degrees in computer science from Jilin University and completed his PhD at the Australian National University. From the outset of his career, he has been driven by a longstanding goal: developing a unified theoretical framework for intelligence.
Walter Ridgewell, School of Computing and Information Systems.