Estes são os passos:
- Passo 1: Aprenda Álgebra Linear
- Passo 2: Aprenda C++ (ou qualquer linguagem que você queira)
- Passo 3: Desenvolver um Motor Matemático
- Passo 4: Aprenda a computação gráfica
- Passo 5: Aprenda OpenGL e faça um monte de projetos
- Passo 6: Aprenda Padrões de Design
- Passo 7: Desenvolva um motor de renderização
- Passo 8: Revise as Leis do Movimento de Newton
- Passo 9: Aprenda Algoritmos de Geometria Computacional
- Passo 10: Desenvolva um motor de física
- Passo 11: Desenvolva um jogo, Teste &Repetição
- Livros para começar
Passo 1: Aprenda Álgebra Linear
Primeiro, aprenda Álgebra Linear. Não, não me refiro à Álgebra ensinada na escola média. Refiro-me aos conceitos de Álgebra Linear, como Vetores e Matrizes. Foco na aprendizagem de operações vetoriais e de matrizes, especialmente produto de ponto, produto transversal, transformações espaciais.
Passo 2: Aprenda C++ (ou qualquer linguagem que você queira)
Próximo, aprenda a programar. Eu sugiro aprender C++. Neste ponto, você não precisa ser um especialista em codificação. Mas aprenda sobre aulas, métodos, herança, polimorfismo e encapsulamento.
Passo 3: Desenvolver um Motor Matemático
Então, use seu conhecimento de vetores, matrizes e codificação para desenvolver um motor matemático. Operações como produto Dot, cross product e transformação espacial são usadas extensivamente no desenvolvimento de motores de jogo.
Passo 4: Aprenda a computação gráfica
Agora vem a parte divertida. Conheça os conceitos de Computação Gráfica, especialmente o Rendering Pipeline e Shaders. Evite codificar e usar a API OpenGL por enquanto. A API do OpenGL é confusa para entender se você tem um conhecimento limitado dos conceitos de computação gráfica.
Passo 5: Aprenda OpenGL e faça um monte de projetos
Pós você se sentir confortável com os conceitos de Computação Gráfica, aprenda sobre a API OpenGL e Shaders OpenGL. Faça o maior número de projetos possível. Aprenda como renderizar caracteres, como rotacionar e traduzir caracteres. Aprenda como a texturização e a iluminação funcionam com OpenGL. Novamente, esta é a parte divertida, e eu sugiro fazer o maior número de projetos que você puder.
Passo 6: Aprenda Padrões de Design
O próximo passo para se tornar um desenvolvedor de engine de jogo é aprender a arquitetura da API. Uma engine de jogos é simplesmente uma API, um framework, que cuida de toda a renderização, física e operações matemáticas. É fundamental que você desenvolva uma API que seja modular, flexível, de fácil manutenção e adaptável.
Para desenvolver uma API, você precisará aprender Padrões de Projeto. Os padrões de design mais comuns são Singleton, Observer, Strategy, Composite, Factory, entre outros.
Passo 7: Desenvolva um motor de renderização
Neste estágio, você está pronto para combinar seus conhecimentos de Álgebra Linear, Computação Gráfica, OpenGL e Padrões de Design para desenvolver um motor de renderização.
Passo 8: Revise as Leis do Movimento de Newton
Após ter completado o motor de renderização, é hora de trabalhar na parte mais difícil do motor, ou seja a Engine de Física.
A boa notícia é que você não precisa ser um físico para desenvolver uma Engine de Física, mas você precisa conhecer as Leis do Movimento de Newton e como elas são implementadas usando algoritmos como o algoritmo Runge-Kutta.
Passo 9: Aprenda Algoritmos de Geometria Computacional
Uma engine de jogo não é uma engine de jogo sem detecção de colisão. Para desenvolver um sistema de detecção de colisão, você precisa aprender sobre algoritmos de Geometria Computacional como GJK, BVH, e Sutherland-Hodgman. Estes algoritmos são usados para detectar se uma colisão ocorreu, onde ela ocorreu e quais objetos têm maior probabilidade de colidir.
Passo 10: Desenvolva um motor de física
Após conhecer os algoritmos mencionados acima, deverá ser capaz de desenvolver um motor de física com um sistema de detecção de colisão.
Passo 11: Desenvolva um jogo, Teste &Repetição
Congratulações, agora você tem uma engine de jogo. Desenvolva o máximo de jogos que puder e teste a engine do jogo o máximo possível. Corrija bugs, implemente novas funcionalidades, desenvolva jogos e repita. Confie em mim; esta é a melhor parte de todas.
Livros para começar
Aqui está uma lista de livros para ajudá-lo a começar:
3D Matemática
- Primer Matemático 3D para Gráficos e Desenvolvimento de Jogos
Máquina de Renderização