Overview
Explore game engine API design in C++ through this comprehensive conference talk from C++Now 2018. Delve into the challenges of creating approachable and intuitive APIs for game engines using modern C++ features. Examine design choices made by major players in the game engine industry, understand industry trends, and learn how to implement similar interfaces in C++. Discover how recent C++ standards can be leveraged to create even better interfaces, potentially rivaling the perceived ease of use of other popular game development tools. Gain insights into platform abstraction, content creation collaboration, common technical functionality, and core game engine architecture. Investigate various approaches such as inheritance hierarchies, entity-component systems, and data-oriented design. Learn about specific implementation techniques like detection idioms, type traits, and reflection. Analyze real-world examples from popular engines and games, including Unity and Overwatch, to understand practical applications of these concepts in the game development industry.
Syllabus
Intro
Agenda
Disclaimer
What is a Game Engine
Platform Abstraction
Content Creation Collaboration
Common Technical Functionality
Core Functionality
Terminology
Game Logic
Entity
Components
Systems
Game Engine Architecture
Inheritance Hierarchy
Entity Components
Model and Collider
Human
Wizard
Data Oriented Design
DataOriented Design
Unity
Unity Component
Detection idiom
Detection meta function
Type trait
Unity macro
Unity in reflection
Messaging
GUI frontend
GetComponent
Transform Parenting
The Triple A Industry
Overwatch
Component tuples
Taught by
CppNow