In diesem Buch werden die tatsächlichen Projektentwicklungszeitleiste verwendet, um alle Module einer Game-Engine vollständig einzuführen, von der grundlegendsten OpenGL-Umgebungskonstruktion bis hin zu Skelettanimationen, Multi-Thread-Rendering, Schattenimplementierung usw., und realisiert schließlich eine komplette Spiele-Engine.

Kapitel 1 führt das Spielermotor -Framework ein und nimmt die Einheit als Beispiel für die Einführung der Komposition der Game Engine.
Kapitel 2 führt die Konstruktion der OpenGL -Entwicklungsumgebung vor und schafft ein OpenGL -leeres Fenster, um in die Falle zu gelangen.
Kapitel 3 führt die Verwendung von OpenGL vor, um Dreiecke, Quadrate und Würfel zu zeichnen, um sich mit den grundlegendsten Elementen des Spiels vertraut zu machen.
Kapitel 4 führt das Konzept von Shader, Compile -Links sowie Shader -Format und Schlüsselwörtern vor.
In Kapitel 5 wird das Texturformat vorgestellt, das Rendering von PNG und JPG direkt lesen und dann die von der GPU verwendete komprimierte Textur vorstellt.
Kapitel 6 führt Index- und Pufferobjekte ein. Der Puffer speichert die Vertex -Daten im Videospeicher und muss nicht mehr jeden Frame vom Speicher in die GPU hochladen.
Kapitel 7 führt das angepasste Format und die materielle Zusammensetzung des Motors des Motors vor. Speichern Sie die vertex -Daten, die ursprünglich im Code in eine Netzdatei geschrieben wurden, und speichern Sie die Shader -Parameter, die ursprünglich im Code in das Material geschrieben wurden.
Kapitel 8 führt die Verwendung von Blender vor, um Modelle zu erstellen und Python -Code zu schreiben, um sie als Netzdateien zu exportieren.
Kapitel 9 führt vor, wie der GameObject-Komponentenmodus implementiert wird.
Kapitel 10 führt vor, was eine Kamera ist und wie mehrere Kameras rendern.
Kapitel 11 führt zum Erhalten von Maus- und Tastatureingaben ein.
Kapitel 12 führt vor, wie der Demo -Code in Engine -Quellcode und Projektquellcode aufgeteilt wird.
Kapitel 13 führt die Verwendung von Freetype zum Generieren und Rendern der Textur eines einzelnen Alpha -Kanals für bestimmte Zeichen und die Verwendung von Scheitelpunktfarben zur Implementierung farbiger Text vor.
Kapitel 14 führt die Implementierung grundlegender GUI -Kontrollen vor, einschließlich UIImage, Uimask, Uitext und Uibutton. Mit diesen Grundlagen können andere komplexe Kontrollen implementiert werden.
Kapitel 15 führt die Verwendung von FMOD zum Abspielen von MP3- und WAV -Musik und die Verwendung von FMOD Professional Audio Editor vor, um Soundeffekte zu erstellen und die Wiedergabe zu analysieren.
Kapitel 16 führt Easy_Profiler vor, die C ++ -Bibliothek.
Kapitel 17 führt die Verwendung von Sol2, der Open -Source -Bibliothek, vor, integrieren Sie LUA in die Engine und verwenden anschließend die C ++ - Entwicklungsmotor, und verwenden Sie LUA, um Testcode zu schreiben.
Kapitel 18 führt die Prinzipien der Skelettanimation vor und führt die Verwendung von Mixer ein, um Skelettanimation zu erstellen, in die Datei skeleton_anim zu exportieren und sie in die Engine zu analysieren.
Kapitel 19 führt die Skeletthautanimation vor, erfrischt das Gewicht im Mixer, exportiert in die Gewichtsdatei, analysiert sie in den Motor und macht sie.
Kapitel 20 führt vor, wie man Netz, Skelettanimation und Gewichte aus FBX -Dateien exportiert und alte Mädchen aus dem alten Stil exportiert und sie in den Beispielen rendert.
In Kapitel 21 wird das Multi-Thread-Rendering eingeführt, die OpenGL-API auf einen separaten Rendering-Thread gestellt, Befehle aus dem Haupt-Thread zum Rendering-Thread ausgibt und den Einfluss von Drawcall aufteilt, um die Belastung des Hauptfadens zu verringern.
Kapitel 22 Einführung in das Update von Zeit zu Zeit.
Der Zweck des Schreibens dieses Buches besteht darin, das Grundkenntnis von Spielemotoren und Lesern, die eine gewisse Einheitserfahrung haben und an bestimmten Punkten des Motors interessiert sind, bekannt zu machen.
Die in jedem Kapitel eingeführten Wissenspunkte dienen zum Einführungsverständnis und graben nicht ausführlich.
Einfach, einfach zu beginnen, kurzfristige Ziele und nicht langweilig.
Jeder Artikel ist aus einführender Perspektive geschrieben. Zum Beispiel vergleiche ich Shaders Zusammenstellung mit Link unter Verwendung der C -Sprachkompilation.
| C Sprache | Shader | |
|---|---|---|
| Zielhardware | CPU | GPU |
| Kompilierungsprozess | Ein Projekt erstellen | Erstellen Sie ein GPU -Programm |
| Erstellen und schreiben Sie mehrere C -Code -Dateien | Erstellen und schreiben Sie Shader (Vertex Shader und Fragment Shader) | |
| Senden Sie C -Code an den Compiler | Senden Sie Shader Code an Compiler | |
| C -Code kompilieren | Shader Code kompilieren | |
| Zur Linkliste hinzufügen | Zur Linkliste hinzufügen | |
| Link | Link |
Die Projektadresse dieses Abschnitts wird zu Beginn jedes Abschnitts veröffentlicht und den Ordner in Clion zum Debuggen ziehen. 
Der Code -Snippet beginnt mit der Datei und Anzahl der Zeilen, in denen sich der Code befindet. 
Von der einfachsten Dreieckszeichnung bis zur Rendern von Skelettanimationen, Beleuchtung und Schatten, Multi-Threading, Physik, Pfadfindungs-KI und Audioanalyse werden eingeführt.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Dies sollte das erste Mal sein, wie wir im Enginebuch modellieren und audio bearbeiten.
Ich habe Videos zur Mixermodellierung, FMOD, WIR -Audioproduktion aufgenommen.
Andere Substanzen, Toolbag-Plug-in-Entwicklung, Renderdoc Drawcall-Analyse werden kurz eingeführt.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
Die gerenderte Modellanimation verwendet Schönheiten, gutaussehende Männer und farbenfrohe Objekte, was sie erfüllender macht.
Nach bestimmten Funktionen wird ein kleines Spiel basierend auf den vorhandenen Funktionen entwickelt, sodass die Phased Erfolge für lange Zeit bestehen werden können.
![]() | ![]() | ![]() |
|---|
Lesen Sie online: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Lokale Konstruktion: https://github.com/ThisisGame/thisisgame-web-openresty
Derzeit an Windows und MacOS angepasst.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 Die Buchinstanzen werden unter Verwendung von Clion entwickelt, das Windows und Mac unterstützt, und plattformübergreifende müssen keine zusätzlichen Lernkosten erforderlich sind.
Visualstudio unterstützt CMake -Projekte seit 2019, sodass Sie auch VisualStudio 2019 und höher verwenden können, um das Clion -Projekt mit der Buchinstanz unter Windows zu öffnen.
Weitere Informationen finden Sie unter Visualstudio auf 2.3 Entwicklung
Die Engine wird unter Verwendung von C ++ entwickelt, entspricht den Spezifikationen von Google C ++. Wenn Sie Code beitragen, müssen Sie zuerst mit dem Codestil vertraut sein. 
Wenn Sie den Code beitragen, geben Sie dieses Projekt zuerst zu Ihrem Namen, ändern Sie den Code und senden Sie ihn, indem Sie die Anfrage kombinieren.
Derzeit an Windows und Mac angepasst, können Sie sich auf beiden Systemen entwickeln. Stellen Sie vor der Übermittlung des Codes sicher, dass die Funktionalität in beiden Systemen normal und konsistent ist.
Sie können es direkt online öffnen http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md um es zu lesen
Dieses Buch ist Open Source, Sie können dieses Projekt aufnehmen, dann den Code ändern und dann eine Merge -Anfrage einreichen.
Jeder ist herzlich eingeladen, das Problem und Feedback zu Problemen zu erwähnen. Sie können mich direkt am Intranet kontaktieren. Sie können auch der Q -Gruppe (879187705) beitreten, um das Problem zu erörtern, um die Frage anderer Personen zu erleichtern.
![]() |
|---|
Das Projekt verwendet Clion IDE und dank seiner Open-Source-Lizenz PVS-Studio als Tool für Code-Scananalyse.
![]() | ![]() |
|---|---|
| PVS-Studio | Jetbrains |