Este libro utiliza la línea de tiempo de desarrollo de proyectos real para introducir completamente todos los módulos de un motor de juego, desde la construcción del entorno OpenGL más básico hasta la animación esquelética, la representación múltiple, la implementación de la sombra, etc., y finalmente se da cuenta de un motor de juego completo.

El Capítulo 1 presenta el marco del motor del juego y toma a Unity como un ejemplo para introducir la composición del motor del juego.
El Capítulo 2 presenta la construcción del entorno de desarrollo OpenGL y crea una ventana vacía de OpenGL para entrar en la trampa.
El Capítulo 3 presenta el uso de OpenGL para dibujar triángulos, cuadrados y cubos para familiarizarse con los elementos más básicos de la representación del juego.
El Capítulo 4 presenta el concepto de sombreador, enlaces de compilación, así como formato de sombreador y palabras clave.
El Capítulo 5 presenta el formato de textura, lea directamente la representación PNG y JPG, y luego presenta la textura comprimida utilizada por la GPU.
El Capítulo 6 introduce los objetos de índice y búfer. El búfer almacena los datos del vértice en la memoria de video, y ya no necesita cargar cada cuadro desde la memoria hasta la GPU.
El Capítulo 7 presenta el formato de archivo de malla personalizado del motor y la composición del material. Almacene los datos del vértice originalmente escritos en el código en un archivo de malla y almacene los parámetros del sombreador originalmente escritos en el código en el material.
El Capítulo 8 presenta el uso de Blender para crear modelos y escribir el código Python para exportarlos como archivos de malla.
El Capítulo 9 presenta cómo implementar el modo de componente GameObject.
El Capítulo 10 presenta lo que es una cámara y cómo representar múltiples cámaras.
El Capítulo 11 presenta la obtención de la entrada del mouse y el teclado.
El Capítulo 12 presenta cómo dividir el código de demostración en el código fuente del motor y el código fuente del proyecto.
El Capítulo 13 presenta el uso de Tipo de FreeTye para generar y representar la textura de un solo canal alfa para caracteres especificados, y el uso de colores de vértice para implementar texto coloreado.
El Capítulo 14 presenta la implementación de controles de GUI básicos, incluidos UiImage, UiMask, UIText y Uibutton. Con estos conceptos básicos, se pueden implementar otros controles complejos.
El Capítulo 15 presenta el uso de FMOD para reproducir música MP3 y WAV, y usar FMOD Professional Audio Editor para crear efectos de sonido y analizar la reproducción.
El Capítulo 16 presenta Easy_Profiler, la biblioteca de análisis de rendimiento C ++.
El Capítulo 17 introduce el uso de SOL2, la biblioteca de código abierto, integra LUA en el motor y, posteriormente, usa el motor de desarrollo C ++ y use LUA para escribir el código de prueba.
El Capítulo 18 presenta los principios de la animación de esqueletos e introduce el uso de la licuadora para crear animación de esqueleto, exportar al archivo Skeleton_anim y analizarlo en el motor.
El Capítulo 19 presenta la animación de la piel del esqueleto, actualiza el peso en la licuadora, exporta al archivo de peso, lo analiza en el motor y lo convierte en.
El Capítulo 20 presenta cómo exportar malla, animación de esqueletos y pesos de archivos FBX, y exportar niñas de estilo antiguo y representarlas en los ejemplos.
El Capítulo 21 presenta la representación de múltiples subprocesos, colocando la API OpenGL en un hilo de representación separado, emitiendo comandos desde el hilo principal al hilo de representación y dividiendo la influencia de Drawcall para reducir la carga en el hilo principal.
Capítulo 22 Introducción a la actualización de vez en cuando.
El propósito de escribir este libro es popularizar el conocimiento básico de los motores de juego y para los lectores que tienen cierta experiencia de unidad y están interesados en ciertos puntos del motor.
Los puntos de conocimiento introducidos en cada capítulo son para la comprensión introductoria y no están cavando en profundidad.
Simple, fácil de comenzar, objetivos a corto plazo, y no aburrido.
Cada artículo está escrito desde una perspectiva introductoria. Por ejemplo, comparo la compilación de Shader con Link, utilizando la compilación de lenguaje C.
| Lenguaje c | Sombreador | |
|---|---|---|
| Hardware objetivo | UPC | GPU |
| Proceso de compilación | Crea un proyecto | Crear un programa de GPU |
| Crear y escribir múltiples archivos de código C | Crear y escribir sombreador (sombreador de vértice y sombreador de fragmento) | |
| Enviar código C al compilador | Enviar código de sombreador al compilador | |
| Compilar código C | Compilar código de sombreador | |
| Agregar a la lista de enlaces | Agregar a la lista de enlaces | |
| Enlace | Enlace |
La dirección del proyecto de esta sección se publica al comienzo de cada sección y arrastre la carpeta a Clion para depurar de inmediato. 
El fragmento de código comienza con el archivo y el número de líneas en las que se encuentra el código. 
Desde el dibujo del triángulo más simple hasta la representación de animación esquelética, la iluminación y la sombra, se introducirán múltiples subprocesos, física, IA de caminos y análisis de audio.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Esta debería ser la primera vez que enseñamos cómo modelar y editar audio en el libro del motor.
Grabé videos para el modelado de licuador, FMOD, la producción de audio de Wwise.
Otras sustancias, desarrollo de complementos de bolsas de herramientas, análisis RenderDoc Drawcall se introducen brevemente.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
La animación del modelo renderizado utiliza bellezas, hombres guapos y objetos coloridos, lo que lo hace más satisfactorio.
Después de tener ciertas funciones, se desarrollará un juego pequeño en función de las funciones existentes, de modo que los logros graduales se puedan persistir durante mucho tiempo.
![]() | ![]() | ![]() |
|---|
Lea en línea: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Construcción local: https://github.com/ThisisGame/thisisgame-web-openresty
Actualmente adaptado a Windows y MacOS.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 Las instancias de libros se desarrollan utilizando Clion, que admite Windows y Mac, y la plataforma cruzada no requiere costos de aprendizaje adicionales.
VisualStudio admite proyectos CMake desde 2019, por lo que también puede usar VisualStudio 2019 y superior para abrir el Proyecto Clion con la instancia del libro en Windows.
Para más detalles, consulte 2.3 Desarrollo utilizando VisualStudio
El motor se desarrolla utilizando C ++, cumple con las especificaciones de Google C ++, y al contribuir con código, primero debe estar familiarizado con el estilo del código. 
Al contribuir con el código, primero desembolse este proyecto a su nombre, luego modifique el código y envíelo combinando la solicitud.
Actualmente adaptado a Windows y Mac, puede desarrollarse en ambos sistemas. Antes de enviar el código, asegúrese de que la funcionalidad sea normal y consistente en ambos sistemas.
Puede abrirlo directamente en línea para leer: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Este libro es de código abierto, puede desembolsar este proyecto, luego modificar el código y luego enviar una solicitud de fusión.
Todos son bienvenidos para mencionar el problema y los comentarios sobre cualquier problema encontrado. Puedes contactarme directamente en la intranet. También puede unirse al grupo Q (879187705) para discutir.
![]() |
|---|
El proyecto utiliza Clion IDE y usa PVS-Studio como una herramienta de análisis de escaneo de código, gracias a su licencia de código abierto.
![]() | ![]() |
|---|---|
| Studio de PVS | Rejilla |