Detta är stegen:
- Steg 1: Lär dig linjär algebra
- Steg 2: Lär dig C++ (eller vilket språk du vill)
- Steg 3: Utveckla en matematisk motor
- Steg 4: Lär dig datorgrafik
- Steg 5: Lär dig OpenGL och gör många projekt
- Steg 6: Lär dig designmönster
- Steg 7: Utveckla en renderingsmotor
- Steg 8: Gå igenom Newtons rörelselagar
- Steg 9: Lär dig algoritmer för beräkningsgeometri
- Steg 10: Utveckla en fysikmotor
- Steg 11: Utveckla ett spel, testa & Upprepa
- Böcker för att komma igång
Steg 1: Lär dig linjär algebra
Först ska du lära dig linjär algebra. Nej, jag menar inte algebra som lärs ut i mellanstadiet. Jag menar begrepp inom linjär algebra som t.ex. vektorer och matriser. Fokusera på att lära dig vektor- och matrisoperationer, särskilt punktprodukt, korsprodukt och rumstransformationer.
Steg 2: Lär dig C++ (eller vilket språk du vill)
Nästan ska du lära dig att programmera. Jag föreslår att du lär dig C++. Vid det här laget behöver du inte vara expert på kodning. Men lär dig om klasser, metoder, arv, polymorfism och inkapsling.
Steg 3: Utveckla en matematisk motor
Använd sedan dina kunskaper om vektorer, matriser och kodning för att utveckla en matematisk motor. Operationer som punktprodukt, korsprodukt och rumstransformation används flitigt i utvecklingen av spelmotorer.
Steg 4: Lär dig datorgrafik
Nu kommer den roliga delen. Bekanta dig med datorgrafikkoncept, särskilt Rendering Pipeline och Shaders. Undvik att koda och använda OpenGL API för tillfället. OpenGL API är förvirrande att förstå om du har begränsade kunskaper om datorgrafikkoncept.
Steg 5: Lär dig OpenGL och gör många projekt
När du känner dig bekväm med datorgrafikbegreppen kan du lära dig mer om OpenGL API och OpenGL Shaders. Gör så många projekt som möjligt. Lär dig hur man renderar tecken, hur man roterar och översätter tecken. Lär dig hur texturering och belysning fungerar med OpenGL. Återigen, detta är den roliga delen, och jag föreslår att du gör så många projekt som möjligt.
Steg 6: Lär dig designmönster
Nästa steg för att bli en spelmotorutvecklare är att lära sig API-arkitektur. En spelmotor är helt enkelt ett API, ett ramverk, som tar hand om all rendering, fysik och matematiska operationer. Det är av största vikt att du utvecklar ett API som är modulärt, flexibelt, underhållbart och anpassningsbart.
För att utveckla ett API måste du lära dig designmönster. De vanligaste designmönstren är bland annat Singleton, Observer, Strategy, Composite och Factory.
Steg 7: Utveckla en renderingsmotor
I det här skedet är du redo att kombinera dina kunskaper i linjär algebra, datorgrafik, OpenGL och designmönster för att utveckla en renderingsmotor.
Steg 8: Gå igenom Newtons rörelselagar
När du har färdigställt renderingsmotorn är det dags att arbeta med den svåraste delen av motorn, dvs, Fysikmotorn.
Den goda nyheten är att du inte behöver vara fysiker för att utveckla en fysikmotor, men du måste känna till Newtons rörelselagar och hur de implementeras med hjälp av algoritmer som Runge-Kutta-algoritmen.
Steg 9: Lär dig algoritmer för beräkningsgeometri
En spelmotor är inte en spelmotor utan kollisionsdetektering. För att utveckla ett system för kollisionsdetektering måste du lära dig algoritmer för beräkningsgeometri som GJK, BVH och Sutherland-Hodgman. Dessa algoritmer används för att upptäcka om en kollision inträffade, var den inträffade och vilka objekt som är mest sannolika att kollidera.
Steg 10: Utveckla en fysikmotor
När du väl känner till de algoritmer som nämns ovan bör du kunna utveckla en fysikmotor med ett system för kollisionsdetektering.
Steg 11: Utveckla ett spel, testa & Upprepa
Grattis, du har nu en spelmotor. Utveckla så många spel som möjligt och testa spelmotorn så mycket som möjligt. Rätta buggar, implementera nya funktioner, utveckla spel och upprepa. Lita på mig; detta är den bästa delen av allt.
Böcker för att komma igång
Här är en lista över böcker som hjälper dig att komma igång:
3D Math
- 3D Math Primer For Graphics and Game Development
Rendering Engine