Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Practical C++ Game Programming with Data Structures and Algorithms
Practical C++ Game Programming with Data Structures and Algorithms

Practical C++ Game Programming with Data Structures and Algorithms: Write high-performance code and solve game development challenges with expert-led C++ solutions

Arrow left icon
Profile Icon Zhenyu George Li Profile Icon Charles Shih-I Yeh
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3 (1 Ratings)
Paperback Jun 2025 408 pages 1st Edition
eBook
€23.99 €26.99
Paperback
€33.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Zhenyu George Li Profile Icon Charles Shih-I Yeh
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3 (1 Ratings)
Paperback Jun 2025 408 pages 1st Edition
eBook
€23.99 €26.99
Paperback
€33.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
€23.99 €26.99
Paperback
€33.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Practical C++ Game Programming with Data Structures and Algorithms

Gearing Up: C++ for Game Development

Game algorithms are essential for creating high-performance, adaptive, and engaging games. While many algorithm books focus on theory and concepts using pseudo-code, they often lack practical examples relevant to game development. This book bridges this gap by offering real-world game development examples that not only explain algorithms but also demonstrate how to apply them effectively. This approach enables you to grasp both the theory and practical implementation of algorithms within the context of game development, fostering a deeper understanding and facilitating their application in creating compelling games.

This chapter serves as the introduction to the book, outlining its purpose, organizational structure, and the tools used to illustrate algorithms in practical game development scenarios. Key topics covered in this chapter include:

  • Why learn algorithms for game development?
  • Why is C++ used in this book?
  • Understanding...

Technical requirements

As a reader of this book, you are expected to have basic computer operational skills. You should also be capable of installing the required applications and setting up your programming environment.

To follow this chapter, you are required to install MS Visual Studio 2022 or a later version along with the C++ compiler. Additionally, download the sample code from this book’s GitHub repository.

Here is the link to the GitHub repository:

https://github.com/PacktPublishing/Practical-C-Game-Programming-with-Data-Structures-and-Algorithms

Additionally, you can access the Demo1 project here: https://github.com/PacktPublishing/Practical-C-Game-Programming-with-Data-Structures-and-Algorithms/tree/main/Knight

The recommended minimum development environment for running the sample projects is as follows:

  • Operating System (OS): Windows 10
  • Central Processing Unit (CPU): Intel 7th generation or equivalent
  • Graphics Processing...

Why learn algorithms for game development?

Algorithms play a crucial role in game development, serving as the backbone for many core functionalities and features. Here are several key points highlighting their importance.

Algorithms can be used to define how game mechanics operate and even provide solutions for solving problems in effective and performative ways, including player interactions, artificial intelligence behavior, physics simulations, and so on. For example, pathfinding algorithms determine how Non-Player Characters (NPCs) navigate through environments, enhancing realism and player engagement.

Efficient algorithms are essential for optimizing game performance, ensuring smooth gameplay experiences. Performance is an important concern for game developers. Appropriate algorithms applied for resource management, rendering, collision detection, and other game operations can contribute significantly to achieving consistent frame rates and reducing latency.

They...

Why is C++ used in this book?

C++ is a versatile programming language renowned for its performance, compatibility, and adaptability, making it an ideal choice for game development. Its efficiency in resource management and speed of execution are critical for high-performance applications such as games. Additionally, C++ is compatible with a wide range of platforms and libraries, providing developers with the flexibility to create complex and interactive gaming experiences.

C++ is widely used in game development because of its performance, versatility, and precise control over system resources. It is supported by many leading game engines, such as Unreal Engine and Unity, as well as proprietary SDKs developed and used by game studios.

This book explains algorithms directly in C++ instead of using pseudo-code, offering fully functional and executable sample code. You can experiment with the code and observe the algorithms in action. Each sample project is based on the covered...

Understanding the structure for introducing algorithms in this book

In this book, we will explore a wide range of algorithms that are essential for game development. Each chapter is structured to provide a comprehensive understanding of an algorithm through several key components. Each algorithm will be introduced and explained following this structure:

  1. Use case and requirement analysis: Each algorithm will begin with some use case examples that address the challenges in game development.
  2. Algorithm explanation: We will delve into the algorithm’s logic and thought process. This section aims to break down the algorithm and introduce the idea and steps, which explain the underlying principles.
  3. C++ implementation: Based on the algorithm’s theory, the book presents key blocks of code of the C++ implementation to help you grasp the core idea of the algorithm. To better understand the source code, you can read into the demo projects’ code, which...

Setting up your development environment

By now, you are aware that we are using C++ and Knight to demonstrate algorithms in this book. In the final section of this chapter, we will provide guidelines for setting up your work environment. This will enable you to explore the sample code and experiment with your own implementations.

Now it’s time to get hands-on by following these steps to set up your working environment.

Install Visual Studio 2022

Microsoft Visual Studio (MSVS) is an Integrated Development Environment (IDE) that can be used to create, edit, debug, and compile your C++ code. You should have a Microsoft account before installation.

To install MSVS, you can visit the official website (http://visualstudio.microsoft.com/vs/) and download the Visual Studio 2022 (VS2022) Community version installation package. This is what the website should look like:

Figure 1.2 – Downloading VS2022 from Microsoft

Figure 1.2 – Downloading VS2022 from Microsoft

When installing VS2022, make sure...

Utilizing the raylib graphics library

raylib is a straightforward and free-to-use open-source programming library written in C, primarily for video game development. It supports the creation of both 2D and 3D games and graphical applications, offering a wide range of functions and utilities for graphics handling, input management, audio integration, and physics simulations.

raylib is lightweight and cross-platform, compatible with Windows, macOS, Linux, and other operating systems. Its simplicity makes it accessible to developers of all levels, supported by clear API documentation and practical examples. While lacking fancy interfaces, visual helpers, and GUI tools, raylib compensates with robust code examples and comprehensive functionality.

The game engine, Knight, and the samples provided in this book are developed based on raylib. raylib is already integrated and well-configured with the downloaded package when you check out the sample projects from this book’s...

Introducing Knight

Knight is an object-oriented programming (OOP) wrapper written in C++ that builds upon raylib. Serving as a higher-level engine layer, Knight offers enhanced game development tools designed to simplify the process for you by abstracting away raylib-specific rendering details. Let’s inspect the new features included in Knight.

What’s new in Knight?

In addition to raylib’s fundamental rendering and low-level operations, Knight introduces higher-level concepts and tools. These include a streamlined game-flow structure centered around Start, Update, DrawFrame, and EndGame functions. Knight also defines key concepts such as Scene, SceneObject, and ObjectComponent to facilitate the creation of hierarchical scenes.

Let’s start understanding the game flow structure next.

Introducing the game flow structure

Knight is designed with a very straightforward structure that encompasses only the most basic game flow elements. Using...

Investigating Demo1.cpp

Demo1 is a project that demonstrates how to use the Knight engine to create a game scene and add scene objects. In this project, eight scene objects are created and added to the scene:

Figure 1.8 – Demo1 scene and the scene objects

Figure 1.8 – Demo1 scene and the scene objects

  1. Main Camera is a perspective camera positioned at coordinates (60, 60, 60) and aimed at the target coordinates (0, 10, 0). Figure 1.8 is a screenshot captured from the camera’s perspective, so the camera itself is not visible in the image.

Note

Coordinates represent positions in 3D space, and each component (X, Y, Z) represents a spatial axis. Here’s a breakdown:

  • X-coordinate (60): Distance along the horizontal axis (left-right)
  • Y-coordinate (60): Distance along the vertical axis (up-down)
  • Z-coordinate (60): Distance along the depth axis (forward-backward)

Coordinate units depend on the scene’s scale, such as meters,...

Summary

This first chapter of the book served as a foundational introduction, aimed at equipping you with the necessary prerequisites for delving into subsequent chapters and mastering game development. It began by elucidating the book’s objectives, outlining how it will empower you to advance as a proficient game developer. Emphasizing the use of C++, the chapter underscored its suitability for illustrating the concepts and implementations discussed throughout the book.

Central to this chapter was the introduction of the format used to present algorithms throughout the book. Following this, we introduced raylib, an open-source graphics library, and Knight, an easy-to-use OOP game engine developed by the author. We discussed the structure and fundamentals of Knight, emphasizing its role in streamlining game development through practical, hands-on examples. This included an in-depth exploration of Demo1, a demo project that showcases the engine’s capabilities and...

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Solve real-world game dev problems with expert C++ data structures and algorithms
  • Learn through practical, executable code instead of abstract theory or pseudocode
  • Build responsive, high-performance games with advanced rendering and AI techniques
  • Print or Kindle purchase includes a free PDF eBook

Description

Game development demands performance-driven solutions—from rendering complex 3D scenes to managing AI behavior and handling animations. This hands-on book guides you in solving these challenges using high-performance C++ data structures and algorithms. The authors distill their decades of combined industry experience to help you apply practical C++ techniques to create smooth, scalable, and intelligent games. Instead of pseudocode or abstract theory, you’ll work with real, executable examples that translate directly to your projects. Demos in this book have been developed based on raylib library, providing accessible and efficient foundations for learning. Opening with a structured overview of algorithmic thinking in C++ game development, the book covers advanced algorithms and their applications in real-world game scenarios. You’ll implement data structures that optimize game functionality, solve algorithmic problems efficiently, and enhance gameplay with robust AI and rendering techniques. In addition, the key focus is collision detection, 2D/3D rendering, animation, camera controls, and machine learning-driven AI, all through practical, executable C++ code. By the end of this book, you’ll be able to confidently apply advanced C++ techniques to develop efficient, scalable, and feature-rich gameplay systems for modern games.

Who is this book for?

This book is for experienced game programmers, technical artists, and developers looking to refine their skills through real-world C++ solutions. A foundational understanding of C++, data structures, and core game development principles will be beneficial. Whether you want to deepen your expertise or are looking for a reliable reference guide, this book will be your trusted companion in building better games.

What you will learn

  • Apply data structures and algorithms to solve real game development problems
  • Apply rendering techniques, such as shader, lighting, soft shadow, particles, and quad-tree terrain
  • Build dynamic camera systems like third-person, rail, top-down, and split-screen views
  • Animate skeletal characters using interpolation and inverse kinematics
  • Implement NPC AI with FSM, behavior tree, A* pathfinding, and steering
  • Explore ML with neural networks in a hands-on AI turret defense project
  • Performance and memory optimization using techniques like object pooling and LOD

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 30, 2025
Length: 408 pages
Edition : 1st
Language : English
ISBN-13 : 9781835889862
Languages :
Concepts :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Jun 30, 2025
Length: 408 pages
Edition : 1st
Language : English
ISBN-13 : 9781835889862
Languages :
Concepts :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Table of Contents

17 Chapters
Part 1: Data Structure and Algorithm Fundamentals Chevron down icon Chevron up icon
Gearing Up: C++ for Game Development Chevron down icon Chevron up icon
Data Structures in Action: Building Game Functionality Chevron down icon Chevron up icon
Algorithms Commonly Utilized in Game Development Chevron down icon Chevron up icon
Part 2: Graphics Algorithms in Practice Chevron down icon Chevron up icon
2D Rendering and Effects Chevron down icon Chevron up icon
The Camera and Camera Controls Chevron down icon Chevron up icon
3D Graphics Rendering Chevron down icon Chevron up icon
Rendering a 3D Game World Chevron down icon Chevron up icon
Part 3: Breathing Life into Your Games Chevron down icon Chevron up icon
Animating Your Characters Chevron down icon Chevron up icon
Building AI Opponents Chevron down icon Chevron up icon
Machine Learning Algorithms for Game AI Chevron down icon Chevron up icon
Part 4: Reflecting and Moving Forward Chevron down icon Chevron up icon
Continuing Your Learning Journey Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
(1 Ratings)
5 star 0%
4 star 0%
3 star 100%
2 star 0%
1 star 0%
Frank Jul 19, 2025
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
Many good explanations and diagrams about how the CPU and GPU cooperate and 2D and 3D concepts. But there is very little about interactivity with the player/user, only simple keyboard commands. Mouse/joy stick/controller input is completely missing. It could also have used at least C++11 concepts without any problem, this is supported by all important platforms nowadays. So the book seems incomplete in relation to the topic in the title.
Subscriber review Packt
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.

Modal Close icon
Modal Close icon