Course Overview
Have you ever dreamed of creating your own game engine — not just using Unity or Unreal, but actually building one yourself?
This course takes you on a complete journey from a blank C++ project to a fully functional 3D game engine capable of rendering real-time graphics, handling physics, audio, animation, and UI — all designed and coded from scratch.
You’ll start by building the foundation: creating windows, initializing OpenGL, and rendering your first triangles. Then, step by step, you’ll evolve your framework into a full-fledged engine — complete with scene management, materials and shaders, component systems, and object hierarchies.
As the course progresses, you’ll implement real gameplay features such as lighting, textures, camera control, physics simulation, audio playback, UI buttons, menus, and even 3D model animation using the glTF format. By the end, you’ll have a working engine that supports both 2D and 3D rendering, interactive gameplay logic, and data-driven content loading from JSON files.
This is not a “toy” example — it’s a professional, modern C++ architecture, inspired by the structure of Unity and Unreal, but simplified and built from the ground up for learning and full understanding.
Whether you’re a game developer, graphics programmer, or engine enthusiast, this course will teach you how game engines really work — under the hood.
FAQ
FAQ area empty
Course curriculum
-
1.0. Preparation
Xem trước -
1.1. First window
285 Xem trước -
1.2. OpenGL Initialization
415 Xem trước -
1.3. Vertices
247 Xem trước -
1.4. Graphics Pipeline
161 -
1.5. Shaders
990 -
1.6. Vertex Buffers and Rendering (First Triangle)
574 Xem trước -
1.7. Vertex Color
868 Xem trước -
1.8. Basic Input and Uniforms
489 -
1.9. First Game (Snake)
561 -
OpenGL Foundations Challenge
-
2.1. Engine Basics
530 -
2.2. Implementing Core Classes
659 -
2.3. Basic Project Integration
430 -
2.4. Window within Engine
367 -
2.5. Input Manager
853 -
2.6. Graphics API and Shader Program
1196 -
2.7. Material
683 -
2.8. Mesh
1284 -
2.9. Mesh Creation
399 -
2.10. Rendering
745 -
2.11. Keyboard Input
472 -
Engine Architecture Challenge
-
3.1. Scene and Game Object
1008 -
3.2. Set Parent Implementation
721 -
3.3. Test Object
414 -
3.4. Introduction to Transforms
324 -
3.5. Transform Implementation
935 -
3.6. Components
1003 -
3.7. Camera
872 -
3.8. Camera Integration
1275 -
3.9. Player Controller
1479 -
3.10. Moving to 3D
632 -
3.11. Quaternions
786 -
3D Scene & Free-Fly Camera Challenge
-
4.1. File System
1348 -
4.2. Textures
1770 -
4.3. Textures and Shader Loading
895 -
4.4. Material Loading
871 -
4.5. Mesh Loading
1831 -
4.6. Diffuse Lighting
1987 -
4.7. Full GLTF Loading
1843 -
4.8. Gun and Specular Lighting
1072 -
4.9. Animations
1841 -
4.10. Physics
2984 -
4.11. Player Controller Capsule
1728 -
4.12. Scene Loading. Part 1
1837 -
4.13. Scene Loading. Part 2
2119 -
4.14. Audio
1793 -
4.15. Bullets
1254 -
4.16. Ambient, Materials, Direct Light
855 -
4.17. Jump Platform
1546 -
Full-Stack Mini-Level Challenge (Assets, Physics, Audio, Scene Loading)
Requirment
-
Basic to intermediate knowledge of C++ (OOP, pointers, STL)
-
Understanding of 3D math concepts like vectors and matrices
-
Familiarity with an IDE such as Visual Studio or CLion
-
A computer capable of running OpenGL applications
-
Curiosity and motivation to build complex systems from scratch
-
No prior game engine experience required — everything is explained step by step
Outcomes
-
Build a complete 3D game engine in C++ and OpenGL from scratch
-
Implement rendering, shaders, and real-time lighting systems
-
Create physics, audio, and animation subsystems using modern libraries
-
Design a data-driven scene system with JSON-based loading
-
Build a modular component-based architecture for GameObjects
-
Develop a full UI framework with buttons, text, and responsive layouts
-
Integrate input handling for player control and interactive gameplay
-
Combine all systems into a working 3D game prototype inside your own engine
0 Student
1 Course
0 review