Dit zijn de stappen:
- Stap 1: Leer Lineaire Algebra
- Stap 2: Leer C++ (of een andere taal die je wilt)
- Stap 3: Ontwikkel een Math Engine
- Step 4: Leer Computer Graphics
- Stap 5: Leer OpenGL en doe veel projecten
- Stap 6: Leer Design Patterns
- Stap 7: Ontwikkel een Rendering Engine
- Stap 8: Herzie Newton’s Wetten van Beweging
- Stap 9: Leer Computationele Geometrie Algoritmen
- Stap 10: Ontwikkel een Physics Engine
- Stap 11: Ontwikkel een spel, Test & Herhaal
- Boeken om mee te beginnen
Stap 1: Leer Lineaire Algebra
Voreerst, leer Lineaire Algebra. Nee, ik bedoel niet de algebra die je op de middelbare school leert. Ik bedoel Lineaire Algebra-concepten zoals Vectoren en Matrices. Concentreer je op het leren van vector en matrix operaties, vooral dot product, cross product, ruimte transformaties.
Stap 2: Leer C++ (of een andere taal die je wilt)
Volgende stap: leer programmeren. Ik stel voor C++ te leren. Op dit punt hoeft u nog geen expert in coderen te zijn. Maar leer wel over klassen, methoden, overerving, polymorfisme en inkapseling.
Stap 3: Ontwikkel een Math Engine
Gebruik vervolgens uw kennis van vectoren, matrices, en codering om een math engine te ontwikkelen. Bewerkingen zoals Dot product, cross product en ruimte transformatie worden veelvuldig gebruikt in game engine development.
Step 4: Leer Computer Graphics
Nu komt het leuke gedeelte. Maak kennis met Computer Graphics concepten, vooral de Rendering Pipeline en Shaders. Vermijd coderen en het gebruik van de OpenGL API voor nu. De OpenGL API is verwarrend om te begrijpen als je beperkte kennis hebt van computer graphics concepten.
Stap 5: Leer OpenGL en doe veel projecten
Wanneer u zich vertrouwd voelt met Computer Graphics concepten, leer dan over de OpenGL API en OpenGL Shaders. Doe zo veel mogelijk projecten. Leer hoe je karakters moet renderen, hoe je karakters moet roteren en vertalen. Leer hoe texturing en belichting werkt met OpenGL. Nogmaals, dit is het leuke gedeelte, en ik stel voor dat je zoveel mogelijk projecten doet.
Stap 6: Leer Design Patterns
De volgende stap om een game-engine ontwikkelaar te worden is het leren van API architectuur. Een game engine is simpelweg een API, een framework, dat zorgt voor alle rendering, physics en mathematische operaties. Het is van het grootste belang dat je een API ontwikkelt die modulair, flexibel, onderhoudbaar en aanpasbaar is.
Om een API te ontwikkelen, zul je Design Patterns moeten leren. De meest voorkomende design patterns zijn Singleton, Observer, Strategy, Composite, Factory onder anderen.
Stap 7: Ontwikkel een Rendering Engine
In dit stadium ben je klaar om je kennis van Lineaire Algebra, Computer Graphics, OpenGL en Design Patterns te combineren om een rendering engine te ontwikkelen.
Stap 8: Herzie Newton’s Wetten van Beweging
Als je de rendering engine hebt voltooid, is het tijd om aan het moeilijkste deel van de engine te werken, nl, de Physics Engine.
Het goede nieuws is dat u geen natuurkundige hoeft te zijn om een Physics Engine te ontwikkelen, maar u moet wel de Bewegingswetten van Newton kennen en weten hoe deze worden geïmplementeerd met algoritmen zoals het Runge-Kutta algoritme.
Stap 9: Leer Computationele Geometrie Algoritmen
Een game engine is geen game engine zonder botsingsdetectie. Om een botsingsdetectie systeem te ontwikkelen, moet je leren over Computationele Geometrie algoritmen, zoals GJK, BVH, en Sutherland-Hodgman. Deze algoritmen worden gebruikt om te detecteren of een botsing heeft plaatsgevonden, waar dat is gebeurd en welke objecten de meeste kans hebben om te botsen.
Stap 10: Ontwikkel een Physics Engine
Als je eenmaal bekend bent met de hierboven genoemde algoritmen, zou je in staat moeten zijn om een physics engine te ontwikkelen met een botsingsdetectiesysteem.
Stap 11: Ontwikkel een spel, Test & Herhaal
Gefeliciteerd, je hebt nu een Game Engine. Ontwikkel zoveel spellen als je kunt en test de game engine zo veel mogelijk. Repareer bugs, implementeer nieuwe functies, ontwikkel spellen en herhaal. Geloof me; dit is het beste deel van allemaal.
Boeken om mee te beginnen
Hier is een lijst van boeken om je op weg te helpen:
3D Math
- 3D Math Primer For Graphics and Game Development
Rendering Engine