# thisisgame/cpp-game-engine-book

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/thisisgame-cpp-game-engine-book).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

3,570 stars · 426 forks · C++ · GPL-3.0

## Links

- GitHub: https://github.com/ThisisGame/cpp-game-engine-book
- Homepage: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
- awesome-repositories: https://awesome-repositories.com/repository/thisisgame-cpp-game-engine-book.md

## Topics

`3d-engine` `blender-python` `book` `cpp` `fbx-sdk` `fmod` `freetype` `game-development` `gamedev` `gameengine` `lua` `markdown` `opengl` `renderdoc` `sol2` `stb-image` `toolbag` `wwise`

## Description

This project is a comprehensive educational resource for building a high-performance game engine from the ground up using C++. It serves as a technical guide for developers seeking to understand the low-level architecture of engine systems, providing a structured approach to implementing core components like rendering pipelines, entity-component-system patterns, and multi-threaded task scheduling.

The resource distinguishes itself by focusing on the practical implementation of complex engine subsystems, including graphics API abstraction layers for cross-platform compatibility and data-driven asset pipelines. It covers the integration of high-level scripting for dynamic logic modification and the use of deferred rendering to manage complex scene illumination.

The material spans the full breadth of engine development, from foundational geometric rendering and user input processing to advanced skeletal animation and audio integration. It also addresses performance optimization techniques, such as offloading graphics commands to background threads to maintain consistent frame rates.

The repository provides technical documentation and instructional content designed to guide users through the construction of a functional, modular game engine.

## Tags

### Game Development

- [C++ Game Engines](https://awesome-repositories.com/f/game-development/c-game-engines.md) — Provides a technical foundation for building high-performance game engines from scratch using C++.
- [Entity Component Systems](https://awesome-repositories.com/f/game-development/engine-architecture/entity-component-systems.md) — Implements an entity-component-system architecture to organize game state and logic for high-performance data processing.
- [Cross-Platform](https://awesome-repositories.com/f/game-development/cross-platform.md) — Supports cross-platform game development through hardware abstraction layers and portable build configurations.
- [Game Asset Importers](https://awesome-repositories.com/f/game-development/game-asset-importers.md) — Establishes data-driven pipelines to import and manage 3D models, textures, and audio assets for engine integration.
- [Game Logic Scripting](https://awesome-repositories.com/f/game-development/game-logic-scripting.md) — Enables the definition of custom interactive behaviors and application logic through embedded scripting. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))

### Scientific & Mathematical Computing

- [Engine Construction Frameworks](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/computational-graphs/graph-construction-engines/engine-construction-frameworks.md) — Provides the foundational architecture and modules required to construct a functional game engine from scratch. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))

### Education & Learning Resources

- [Game Development Tutorials](https://awesome-repositories.com/f/education-learning-resources/game-development-tutorials.md) — Offers a structured educational guide for developers learning to build game engines from the ground up.

### Graphics & Multimedia

- [3D Graphics Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines.md) — Provides a comprehensive implementation of 3D graphics pipelines including geometric processing and lighting for custom engines.
- [Graphics API Abstractions](https://awesome-repositories.com/f/graphics-multimedia/graphics-api-abstractions.md) — Provides a unified interface for low-level graphics commands to ensure cross-platform rendering compatibility.
- [Graphics Education Resources](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/graphics-education-resources.md) — Provides educational materials for mastering 3D rendering, skeletal animation, and lighting effects in custom engine environments.
- [Deferred Rendering Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/deferred-rendering-pipelines.md) — Implements a rendering architecture that decouples geometry processing from lighting calculations to handle complex scenes.
- [Graphics Rendering APIs](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis.md) — Integrates graphics APIs to handle high-fidelity visual output and advanced lighting effects. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))

### Part of an Awesome List

- [Engine System Implementations](https://awesome-repositories.com/f/awesome-lists/devops/tasks-and-scheduling/engine-system-implementations.md) — Develops foundational engine systems like physics and pathfinding to power interactive environments. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))

### Data & Databases

- [Asset Build Pipelines](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/processing-pipelines/asset-build-pipelines.md) — Automates the transformation of raw assets into optimized binary formats for efficient engine loading.

### DevOps & Infrastructure

- [Cross-Platform Deployment Targets](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployment-targets.md) — Maintains engine code and configurations across different operating systems to support broad deployment. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))

### Operating Systems & Systems Programming

- [Multi-Core Scheduling](https://awesome-repositories.com/f/operating-systems-systems-programming/multi-architecture-support/multi-core-scheduling.md) — Distributes heavy computational workloads across multiple CPU cores to maintain consistent frame rates.

### Programming Languages & Runtimes

- [Embedded Scripting Engines](https://awesome-repositories.com/f/programming-languages-runtimes/embedded-scripting-engines.md) — Integrates a high-level scripting runtime into the engine core to enable dynamic logic modification.

### Software Engineering & Architecture

- [Game Engine Study Guides](https://awesome-repositories.com/f/software-engineering-architecture/software-engineering-study-guides/game-engine-study-guides.md) — Serves as a technical study guide covering core architectural systems like rendering pipelines and multi-threaded task scheduling.

### Web Development

- [Rendering Performance Optimizations](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-engines/rendering-performance-optimizations.md) — Implements background thread offloading for graphics commands to maintain consistent frame rates during complex rendering tasks. ([source](https://github.com/thisisgame/cpp-game-engine-book#readme))
