Ce livre utilise un calendrier de développement de projets réel pour introduire entièrement tous les modules d'un moteur de jeu, de la construction de l'environnement OpenGL la plus basique à l'animation squelettique, un rendu multithread, une implémentation fantôme, etc., et réalise enfin un moteur de jeu complet.

Le chapitre 1 présente le cadre du moteur de jeu et prend l'unité comme exemple pour introduire la composition du moteur de jeu.
Le chapitre 2 présente la construction de l'environnement de développement OpenGL et crée une fenêtre vide OpenGL pour entrer dans le piège.
Le chapitre 3 présente l'utilisation d'OpenGL pour dessiner des triangles, des carrés et des cubes pour se familiariser avec les éléments les plus élémentaires du rendu de jeu.
Le chapitre 4 présente le concept de shader, de liens de compilation, ainsi que du format de shader et des mots clés.
Le chapitre 5 présente le format de texture, lisant directement le rendu PNG et JPG, puis introduit la texture compressée utilisée par le GPU.
Le chapitre 6 introduit les objets index et tampon. Le tampon stocke les données du sommet dans la mémoire vidéo et n'a plus besoin de télécharger chaque trame de la mémoire vers le GPU.
Le chapitre 7 présente le format de fichier de maillage personnalisé du moteur et la composition des matériaux. Stockez les données Vertex à l'origine écrites dans le code dans un fichier de maillage et stockez les paramètres de shader à l'origine écrits dans le code dans le matériel.
Le chapitre 8 présente l'utilisation de Blender pour créer des modèles et écrire du code Python pour les exporter sous forme de fichiers de maillage.
Le chapitre 9 présente comment implémenter le mode GameObject-Component.
Le chapitre 10 présente ce qu'est une caméra et comment rendre plusieurs caméras.
Le chapitre 11 introduit l'obtention de la souris et de l'entrée du clavier.
Le chapitre 12 présente comment diviser le code de démonstration en code source de moteur et code source de projet.
Le chapitre 13 présente l'utilisation de Freetype pour générer et rendre la texture d'un seul canal alpha pour des caractères spécifiés, et l'utilisation de couleurs de sommet pour implémenter du texte coloré.
Le chapitre 14 présente la mise en œuvre des contrôles de base de l'interface graphique, notamment UIImage, UIMask, Uitext et UIbutton. Avec ces bases, d'autres contrôles complexes peuvent être mis en œuvre.
Le chapitre 15 introduit l'utilisation de FMOD pour lire la musique MP3 et WAV, et l'utilisation de l'éditeur audio professionnel FMOD pour créer des effets sonores et analyser la lecture.
Le chapitre 16 présente Easy_Profiler, la bibliothèque d'analyse des performances C ++.
Le chapitre 17 introduit l'utilisation de SOL2, la bibliothèque open source, intègre LUA dans le moteur, puis utilisez le moteur de développement C ++ et utilisez LUA pour écrire le code de test.
Le chapitre 18 présente les principes de l'animation squelette et introduit l'utilisation de Blender pour créer une animation squelette, l'exportation vers le fichier squelette_anim et l'analyser dans le moteur.
Le chapitre 19 présente l'animation de la peau squelette, rafraîchit le poids dans le mélangeur, exporte vers le fichier de poids, l'analyse dans le moteur et le rend.
Le chapitre 20 présente comment exporter le maillage, l'animation squelette et les poids des fichiers FBX, et exporter des filles de style ancienne et les rendre dans les exemples.
Le chapitre 21 introduit le rendu multithread, en mettant l'API OpenGL sur un fil de rendu distinct, en émettant des commandes du fil principal au fil de rendu et en divisant l'influence de DrawCall pour réduire le fardeau sur le fil principal.
Chapitre 22 Introduction à la mise à jour de temps à autre.
Le but de la rédaction de ce livre est de populariser les connaissances de base des moteurs de jeu et des lecteurs qui ont une certaine expérience d'unité et qui sont intéressés par certains points du moteur.
Les points de connaissance introduits dans chaque chapitre sont destinés à la compréhension d'introduction et ne creusent pas en profondeur.
Des objectifs simples, faciles à démarrer, à court terme, et non ennuyeux.
Chaque article est écrit dans une perspective d'introduction. Par exemple, je compare la compilation de Shader avec le lien, en utilisant la compilation du langage C.
| C | Shadmeder | |
|---|---|---|
| Matériel cible | Processeur | GPU |
| Processus de compilation | Créer un projet | Créer un programme GPU |
| Créer et écrire plusieurs fichiers de code C | Créer et écrire un shader (vertex shader et shader de fragment) | |
| Envoyer le code C au compilateur | Envoyer du code shader au compilateur | |
| Compiler le code C | Compiler le code shader | |
| Ajouter à la liste des liens | Ajouter à la liste des liens | |
| Lien | Lien |
L'adresse du projet de cette section est publiée au début de chaque section et faites glisser le dossier dans Clion pour déboguer immédiatement. 
L'extrait de code commence par le fichier et le nombre de lignes dans lesquelles le code est situé. 
Du dessin du triangle le plus simple au rendu de l'animation squelettique, à l'éclairage et à l'observation, au multi-threading, à la physique, à l'analyse de l'IA de l'orientation de la voie et audio sera introduit.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Cela devrait être la première fois que nous enseignons comment modéliser et modifier audio dans le livre du moteur.
J'ai enregistré des vidéos pour la modélisation Blender, FMOD, la production audio.
Autres substances, développement plug-in à toolbag, analyse de calcul de drawing de rendu sont brièvement introduites.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
L'animation du modèle rendu utilise des beautés, de beaux hommes et des objets colorés, ce qui le rend plus épanouissant.
Après avoir eu certaines fonctions, un petit jeu sera développé sur la base des fonctions existantes, afin que les réalisations progressives puissent être persistées pendant longtemps.
![]() | ![]() | ![]() |
|---|
Lire en ligne: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Construction locale: https://github.com/ThisisGame/thisisgame-web-openresty
Actuellement adapté à Windows et MacOS.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 Les instances de livre sont développées à l'aide de Clion, qui prend en charge Windows et Mac, et la plate-forme multipliée ne nécessite pas de coûts d'apprentissage supplémentaires.
VisualStudio prend en charge les projets CMake depuis 2019, vous pouvez donc également utiliser VisualStudio 2019 et supérieur pour ouvrir le projet Clion avec l'instance de livre sur Windows.
Pour plus de détails, veuillez consulter le développement 2.3 à l'aide de VisualStudio
Le moteur est développé à l'aide de C ++, se conforme aux spécifications Google C ++, et lorsque vous contribuez au code, vous devez d'abord familiariser avec le style de code. 
Lorsque vous contribuez le code, veuillez d'abord fourchez ce projet à votre nom, puis modifiez le code et soumettez-le en combinant la demande.
Actuellement adapté à Windows et Mac, vous pouvez développer sur les deux systèmes. Avant de soumettre le code, assurez-vous que la fonctionnalité est normale et cohérente sur les deux systèmes.
Vous pouvez l'ouvrir directement en ligne pour lire: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Ce livre est open source, vous pouvez déborder ce projet, puis modifier le code, puis soumettre une demande de fusion.
Tout le monde est invité à mentionner le problème et les commentaires sur les problèmes rencontrés. Vous pouvez me contacter directement sur l'intranet. Vous pouvez également rejoindre le groupe Q (879187705) pour discuter.
![]() |
|---|
Le projet utilise Clion IDE et utilise PVS-Studio comme outil d'analyse de balayage de code, grâce à sa licence open source.
![]() | ![]() |
|---|---|
| PVS-studio | Brains de jet |