Questi sono i passi:
- Passo 1: Imparare l’algebra lineare
- Step 2: Impara il C++ (o qualsiasi altro linguaggio che vuoi)
- Passo 3: Sviluppare un motore matematico
- Step 4: Impara la Computer Grafica
- Passo 5: Impara OpenGL e fai molti progetti
- Passo 6: Imparare i Design Patterns
- Step 7: Sviluppare un motore di rendering
- Step 8: Rivedere le Leggi del Moto di Newton
- Step 9: Imparare gli algoritmi di geometria computazionale
- Step 10: Sviluppare un motore fisico
- Step 11: Sviluppa un gioco, prova & Ripeti
- Libri per iniziare
Passo 1: Imparare l’algebra lineare
Primo, impara l’algebra lineare. No, non intendo l’algebra insegnata alle scuole medie. Intendo concetti di algebra lineare come vettori e matrici. Concentrati sull’apprendimento delle operazioni vettoriali e matriciali, specialmente il prodotto punto, il prodotto incrociato, le trasformazioni spaziali.
Step 2: Impara il C++ (o qualsiasi altro linguaggio che vuoi)
Poi, impara a programmare. Suggerisco di imparare il C++. A questo punto, non devi essere un esperto di codifica. Ma impara le classi, i metodi, l’ereditarietà, il polimorfismo e l’incapsulamento.
Passo 3: Sviluppare un motore matematico
Poi, usa la tua conoscenza di vettori, matrici e codifica per sviluppare un motore matematico. Operazioni come il prodotto puntiforme, il prodotto incrociato e la trasformazione dello spazio sono usati estensivamente nello sviluppo del motore di gioco.
Step 4: Impara la Computer Grafica
Ora arriva la parte divertente. Familiarizzate con i concetti di computer grafica, specialmente con la pipeline di rendering e gli shader. Evita di codificare e usare l’API OpenGL per ora. L’API OpenGL è confusa da capire se avete una conoscenza limitata dei concetti di computer grafica.
Passo 5: Impara OpenGL e fai molti progetti
Una volta che ti senti a tuo agio con i concetti di Computer Graphics, impara le API OpenGL e gli Shaders OpenGL. Fai più progetti possibili. Imparate come renderizzare i personaggi, come ruotare e tradurre i personaggi. Imparate come funziona il texturing e l’illuminazione con OpenGL. Di nuovo, questa è la parte divertente, e suggerisco di fare quanti più progetti possibile.
Passo 6: Imparare i Design Patterns
Il prossimo passo per diventare uno sviluppatore di motori di gioco è imparare l’architettura API. Un motore di gioco è semplicemente un’API, un framework, che si prende cura di tutte le operazioni di rendering, fisiche e matematiche. È fondamentale sviluppare un’API che sia modulare, flessibile, manutenibile e adattabile.
Per sviluppare un’API, è necessario imparare i Design Patterns. I design pattern più comuni sono Singleton, Observer, Strategy, Composite, Factory, tra gli altri.
Step 7: Sviluppare un motore di rendering
A questo punto, sei pronto a combinare le tue conoscenze di Algebra Lineare, Computer Graphics, OpenGL e Design Patterns per sviluppare un motore di rendering.
Step 8: Rivedere le Leggi del Moto di Newton
Una volta completato il motore di rendering, è tempo di lavorare sulla parte più difficile del motore, cioè, il motore fisico.
La buona notizia è che non c’è bisogno di essere un fisico per sviluppare un motore fisico, ma è necessario conoscere le leggi del moto di Newton e come vengono implementate utilizzando algoritmi come quello di Runge-Kutta.
Step 9: Imparare gli algoritmi di geometria computazionale
Un motore di gioco non è un motore di gioco senza il rilevamento delle collisioni. Per sviluppare un sistema di rilevamento delle collisioni, è necessario imparare gli algoritmi di geometria computazionale come GJK, BVH e Sutherland-Hodgman. Questi algoritmi sono usati per rilevare se si è verificata una collisione, dove si è verificata e quali oggetti hanno più probabilità di collidere.
Step 10: Sviluppare un motore fisico
Una volta che hai imparato a conoscere gli algoritmi menzionati sopra, dovresti essere in grado di sviluppare un motore fisico con un sistema di rilevamento delle collisioni.
Step 11: Sviluppa un gioco, prova & Ripeti
Congratulazioni, ora hai un motore di gioco. Sviluppa più giochi che puoi e testa il motore di gioco il più possibile. Correggi i bug, implementa nuove caratteristiche, sviluppa giochi e ripeti. Fidati di me; questa è la parte migliore di tutte.
Libri per iniziare
Ecco una lista di libri per aiutarti ad iniziare:
3D Math
- 3D Math Primer For Graphics and Game Development
Rendering Engine