Dette er trinene:
- Strin 1: Lær lineær algebra
- Stræk 2: Lær C++ (eller et andet sprog, du ønsker)
- Stræk 3: Udvikl en matematisk motor
- Stræk 4: Lær computergrafik
- Stræk 5: Lær OpenGL og lav en masse projekter
- Stræk 6: Lær designmønstre
- Stræk 7: Udvikl en renderingsmotor
- Stræk 8: Gennemgå Newtons bevægelseslove
- Stræk 9: Lær algoritmer for beregningsgeometri
- Stræk 10: Udvikl en fysikmotor
- Stræk 11: Udvikl et spil, Test & Gentag
- Bøger til at komme i gang
Strin 1: Lær lineær algebra
Først skal du lære lineær algebra. Nej, jeg mener ikke algebra, som man lærer i mellemskolen. Jeg mener lineære algebrabegreber som f.eks. vektorer og matricer. Fokuser på at lære vektor- og matriceoperationer, især punktprodukt, krydsprodukt og rumtransformationer.
Stræk 2: Lær C++ (eller et andet sprog, du ønsker)
Næst skal du lære at programmere. Jeg foreslår, at du lærer C++. På dette tidspunkt behøver du ikke at være ekspert i kodning. Men du skal lære om klasser, metoder, arv, polymorfisme og indkapsling.
Stræk 3: Udvikl en matematisk motor
Så skal du bruge din viden om vektorer, matricer og kodning til at udvikle en matematisk motor. Operationer som punktprodukt, krydsprodukt og rumtransformation anvendes i vid udstrækning i udviklingen af spilmotorer.
Stræk 4: Lær computergrafik
Nu kommer den sjove del. Du skal stifte bekendtskab med computergrafikkoncepter, især Rendering Pipeline og Shaders. Undgå at programmere og bruge OpenGL API’et indtil videre. OpenGL API’et er forvirrende at forstå, hvis du har begrænset viden om computergrafikkoncepter.
Stræk 5: Lær OpenGL og lav en masse projekter
Når du føler dig fortrolig med computergrafikkoncepterne, skal du lære om OpenGL API og OpenGL Shaders. Lav så mange projekter som muligt. Lær, hvordan man renderer tegn, hvordan man roterer og oversætter tegn. Lær, hvordan teksturering og belysning fungerer med OpenGL. Igen, dette er den sjove del, og jeg foreslår, at du laver så mange projekter som muligt.
Stræk 6: Lær designmønstre
Det næste skridt for at blive en spilmotorudvikler er at lære API-arkitektur. En spilmotor er simpelthen et API, en ramme, der tager sig af al rendering, fysik og matematiske operationer. Det er altafgørende, at du udvikler en API, der er modulær, fleksibel, vedligeholdelsesvenlig og tilpasningsdygtig.
For at udvikle et API skal du lære Design Patterns. De mest almindelige designmønstre er bl.a. Singleton, Observer, Strategy, Composite og Factory.
Stræk 7: Udvikl en renderingsmotor
På dette trin er du klar til at kombinere din viden om lineær algebra, computergrafik, OpenGL og designmønstre til at udvikle en renderingsmotor.
Stræk 8: Gennemgå Newtons bevægelseslove
Når du har færdiggjort renderingsmotoren, er det tid til at arbejde på den sværeste del af motoren, dvs, fysikmotoren.
Den gode nyhed er, at du ikke behøver at være fysiker for at udvikle en fysikmotor, men du skal kende Newtons bevægelseslove og vide, hvordan de implementeres ved hjælp af algoritmer som Runge-Kutta-algoritmen.
Stræk 9: Lær algoritmer for beregningsgeometri
En spilmotor er ikke en spilmotor uden kollisionsdetektion. For at udvikle et kollisionsdetektionssystem skal du lære om beregningsgeometrialgoritmer som GJK, BVH og Sutherland-Hodgman. Disse algoritmer bruges til at registrere, om der er sket en kollision, hvor den er sket, og hvilke objekter der er mest sandsynlige for at kollidere.
Stræk 10: Udvikl en fysikmotor
Når du er bekendt med de ovennævnte algoritmer, bør du være i stand til at udvikle en fysikmotor med et kollisionsdetektionssystem.
Stræk 11: Udvikl et spil, Test & Gentag
Godt tillykke, du har nu en spilmotor. Udvikl så mange spil, som du kan, og test spilmotoren så meget som muligt. Ret fejl, implementer nye funktioner, udvikl spil, og gentag. Tro mig; dette er den bedste del af det hele.
Bøger til at komme i gang
Her er en liste over bøger, der kan hjælpe dig i gang:
3D Math
- 3D Math Primer For Graphics and Game Development
Rendering Engine