Game Development Basics Flashcards
Was sind die 7 Stages von Game Development?
Planning, Pre-Production, Production, Testing, Pre-launch, Launch, Post-Production
Wie kann man die Komplexität einer Game Engine Architektur reduzieren?
Divide and Conquer
Viele Subsysteme und Layer um ein großes komplexes System zu erstellen (Leichter zum Testen, Debuggen und Wiederverwenden)
Benenne alle Schichten einer Game Engine Architektur.
System, 3rd Party SDK, Support Layer, Engine Subsysteme, Applikation, Gameplay
Wofür ist der System Layer bei einer Game Engine zuständig?
Für das Betriebssystem, Hardware, Treiber am PC
Wofür ist der 3rd Party SDK Layer bei einer Game Engine zuständig?
Enthält Libraries:
Box2D - Physics Library
FMod - Audio Library
SFML - Media Library
Wofür ist der Support Layer bei einer Game Engine zuständig?
Enthält Debugging Tools, Abstrakte Betriebssysteme (Input, Threads, FileSystem…) und Utility Funktionen
Wofür ist der Engine Subsystems Layer bei einer Game Engine zuständig?
GUI, Renderer, Physics, AI…
Wofür ist der Applikation Layer bei einer Game Engine zuständig?
Input lesen, Init, Main Loop des Spiels, Shutdown, Ressourcen - enthält auch die Game Logik
Wofür ist der Gameplay Layer bei einer Game Engine zuständig?
Gameplay, Levels, Entities, GameObjects… –> das was Spieler sehen (Game View)
Wie sieht eine Simple Game Loop aus?
Init
Player Input
Game Logik
Rendering
Shutdown
(2 - 4 loopt)
Wie sieht eine Multithreaded Game Loop aus?
Init
Player Input | Rendering
Game Logik | Rendering
Shutdown
(Die Mitte loopt parallel und nicht mehr sequentiell)
In welcher Reihenfolge wird das Spiel normalerweise gerendered?
2D / 3D Szene
UI
Debug-Draw / Gizmos
Ist eine Translation linear?
Nein
Was sind affine Transformationen?
Eine Kombination aus linearen Transformationen und einer Translation
Wofür sind affine Transformationen wichtig?
Um Geometrie zu transformieren und zu verändern (da nur die vertex-Positionen verändert werden müssen)
Was ist die richtige Reihenfolge bei Transformationen?
RST - Rotation, Scale, Translation
Was sind homogene Koordinaten?
Wenn man bei einer Matrixmultiplikation eine Reihe und Spalte dazumacht, verändert sich das Resultat der Berechnung nicht - mit der hinzugefügten Zeile kann man eine Translation beschreiben
Was ist der Unterschied zwischen einem Positions- und einem Richtungsvektor?
Ein Positionsvektor wird beeinflusst von einer Translation, ein Richtungsvektor allerdings nicht
Der Unterschied liegt darin, ob w = 1 (Positionsvektor) oder w = 0 (Richtungsvektor) ist
Wie bringt man Vertices vom Objektspace in den Screen Space?
Object Space –> Model Matrix –> World Space
World Space –> View Matrix –> Camera Space
Camera Space –> Projection Matrix –> Screen Space
Wie werden UV-Koordinaten bei Texturen gelesen? Wo befindet sich der Punkt [1, 1]?
UV-Koordinaten beginnen im oberen linken Eck der Textur und wachsen nach unten rechts hin –> [1,1] ist also das untere rechte Eck.
Wofür steht MVP?
Model-View-Projectionmatrix
Was sind Mipmaps?
Mipmaps sind vorkalkulierte Reihen von Bildern, wo jedes Level die Auflösung halbiert - man kann sich diese wie bei einer umgedrehten Pyramide vorstellen - man verwendet Mipmaps um hochauflösende Texturen nicht in der Ferne verwenden zu müssen, da diese dort eh nicht sichtbar sind.
Wie sieht eine Simple Render Pipeline aus?
Vertex –> Vertex Shader –> Primitive Assembly –> Rasterisierung –> Fragment Shader –> Tiefentest (Depth Test) –> Color Buffer Blend –> Frame Buffer
Was ist ein Texel?
Texel = Texture Pixel - Texturen werden als ein Array von Texeln in die CPU geladen