Este livro usa a linha do tempo real do desenvolvimento do projeto para introduzir totalmente todos os módulos de um mecanismo de jogo, desde a construção mais básica do ambiente OpenGL até a animação esquelética, a renderização com vários threads, a implementação das sombras etc. e, finalmente, realiza um mecanismo de jogo completo.

O capítulo 1 apresenta a estrutura do motor do jogo e toma a unidade como um exemplo para introduzir a composição do mecanismo de jogo.
O capítulo 2 apresenta a construção do ambiente de desenvolvimento do OpenGL e cria uma janela vazia do OpenGL para entrar na armadilha.
O capítulo 3 apresenta o uso do OpenGL para desenhar triângulos, quadrados e cubos para se familiarizar com os elementos mais básicos da renderização de jogos.
O capítulo 4 apresenta o conceito de shader, links de compilação, bem como formato de shader e palavras -chave.
O capítulo 5 apresenta o formato de textura, leia diretamente a renderização PNG e JPG e, em seguida, apresenta a textura compactada usada pela GPU.
O capítulo 6 apresenta objetos de índice e buffer. O buffer armazena os dados do vértice na memória de vídeo e não precisa mais fazer upload de todos os quadros da memória para a GPU.
O capítulo 7 apresenta o formato de arquivo de malha personalizado do motor e a composição do material. Armazene os dados do vértice originalmente escritos no código em um arquivo de malha e armazene os parâmetros do shader originalmente escritos no código no material.
O capítulo 8 apresenta o uso do Blender para criar modelos e escrever código Python para exportá -los como arquivos de malha.
O capítulo 9 apresenta como implementar o modo GameObject-Component.
O capítulo 10 apresenta o que é uma câmera e como renderizar várias câmeras.
O capítulo 11 apresenta a obtenção de entrada do mouse e do teclado.
O capítulo 12 introduz como dividir o código de demonstração no código -fonte do motor e no código -fonte do projeto.
O capítulo 13 apresenta o uso do Freetype para gerar e renderizar a textura de um único canal alfa para caracteres especificados e o uso de cores de vértices para implementar texto colorido.
O capítulo 14 apresenta a implementação de controles básicos da GUI, incluindo UIImage, Uimask, UITEXT e UIBUTTON. Com esses princípios básicos, outros controles complexos podem ser implementados.
O capítulo 15 apresenta o uso do FMOD para tocar MP3 e WAV Music e usar o FMOD Professional Audio Editor para criar efeitos sonoros e analisar a reprodução.
O capítulo 16 apresenta easy_profiler, a biblioteca de análise de desempenho C ++.
O capítulo 17 apresenta o uso do SOL2, a biblioteca de código aberto, integra o Lua no motor e use posteriormente o mecanismo de desenvolvimento C ++ e use o Lua para gravar o código de teste.
O capítulo 18 apresenta os princípios da animação do esqueleto e apresenta o uso do Blender para criar animação de esqueletos, exportar para o arquivo Skeleton_anim e analisá -lo no mecanismo.
O capítulo 19 apresenta a animação da pele do esqueleto, refresca o peso no liquidificador, exporta para o arquivo de peso, o analisa no motor e o renderiza.
O capítulo 20 introduz como exportar malha, animação de esqueletos e pesos de arquivos FBX, exportar garotas de estilo antigo e renderizar -as nos exemplos.
O capítulo 21 apresenta a renderização com vários threads, colocando a API OpenGL em um encadeamento de renderização separado, emitindo comandos do encadeamento principal para o fio de renderização e dividindo a influência do drawcall para reduzir a carga no encadeamento principal.
Capítulo 22 Introdução à atualização periodicamente.
O objetivo de escrever este livro é popularizar o conhecimento básico dos mecanismos de jogo e para os leitores que têm certa experiência na unidade e estão interessados em certos pontos do motor.
Os pontos de conhecimento introduzidos em cada capítulo são para entendimento introdutório e não estão cavando profundidade.
Simples, fácil de começar, objetivos de curto prazo e não chatos.
Cada artigo é escrito de uma perspectiva introdutória. Por exemplo, comparo a compilação do Shader com o Link, usando a compilação da linguagem C.
| C Linguagem | Shader | |
|---|---|---|
| Hardware alvo | CPU | GPU |
| Processo de compilação | Criar um projeto | Crie um programa de GPU |
| Crie e escreva vários arquivos de código C | Crie e escreva shader (shader e shader de fragmento) | |
| Enviar código C para o compilador | Envie o código do shader para o compilador | |
| Compilar código C. | Compile o código do shader | |
| Adicionar à lista de links | Adicionar à lista de links | |
| Link | Link |
O endereço do projeto desta seção é publicado no início de cada seção e arraste a pasta para Clion para depurar imediatamente. 
O snippet de código começa com o arquivo e o número de linhas nas quais o código está localizado. 
Do desenho do triângulo mais simples à renderização esquelética da animação, iluminação e sombreamento, multi-threading, física, IA de busca de caminho e análise de áudio será introduzida.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Esta deve ser a primeira vez que ensinamos a modelar e editar áudio no livro de motores.
Eu gravei vídeos para modelagem do Blender, FMOD, WWise Audio Production.
Outras substâncias, desenvolvimento de plug-in de bolsas de ferramentas, renderdoc drawcall Analysis são introduzidas brevemente.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
A animação modelo renderizada usa belezas, homens bonitos e objetos coloridos, o que a torna mais gratificante.
Depois de ter certas funções, um pequeno jogo será desenvolvido com base nas funções existentes, para que as realizações em fases possam ser persistidas por um longo tempo.
![]() | ![]() | ![]() |
|---|
Leia online: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Construção local: https://github.com/ThisisGame/thisisgame-web-openresty
Atualmente adaptado ao Windows e MacOS.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 As instâncias do livro são desenvolvidas usando o Clion, que suporta Windows e Mac, e a plataforma cruzada não requer custos de aprendizagem adicionais.
O VisualStudio suporta projetos de CMake desde 2019, para que você também possa usar o VisualStudio 2019 e acima para abrir o projeto Clion com a instância do livro no Windows.
Para detalhes, consulte o 2.3 Desenvolvimento usando o VisualStudio
O mecanismo é desenvolvido usando o C ++, cumpre as especificações do Google C ++ e, ao contribuir com código, você precisa estar familiarizado com o estilo de código primeiro. 
Ao contribuir com o código, inicie primeiro este projeto para o seu nome e modifique o código e envie -o combinando a solicitação.
Atualmente adaptado ao Windows e Mac, você pode desenvolver em ambos os sistemas. Antes de enviar o código, verifique se a funcionalidade é normal e consistente nos dois sistemas.
Você pode abrir diretamente on-line para ler: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Este livro é de código aberto, você pode bifurcar este projeto, depois modificar o código e enviar uma solicitação de mesclagem.
Todos são convidados a mencionar a questão e o feedback sobre quaisquer problemas encontrados. Você pode entrar em contato comigo diretamente na intranet. Você também pode participar do Q Group (879187705) para discutir.
![]() |
|---|
O projeto usa o Clion IDE e usa o PVS-Studio como uma ferramenta de análise de varredura de código, graças à sua licença de código aberto.
![]() | ![]() |
|---|---|
| PVS-STUDIO | Jetbrains |