Game Development 1 Flashcards
Aus welchen 5 Komponenten besteht eine Game Engine?
System, Window, Grafiken, Audio, Netzwerk
Wie könnte die Initialisierung eines Games aussehen?
System überprüfen (genug Speicherplatz, Input, mehrere Instanzen…)
Init Logger
Fenster erstellen und Grafikgerät einrichten
Game Subsysteme einrichten
Ressourcen laden
Gameplay starten
Was ist wichtig zu beachten beim Game Shutdown?
Game Systeme sollten in umgekehrter Reihenfolge abgebaut werden, wie sie erzeugt worden sind
Exit(0) sollte nicht einfach so verwendet werden, weil das richtige Abbauen von Game Ressourcen ein Anzeichen von clean code ist und, dass der Speicher richtig freigegeben worden ist
Wie werden Game States am besten gehandled?
Es gibt eine zentralen Game State Manager, der sich um das Handling von States kümmert. Ebenso kommt es zum Einsatz vom State Design Pattern (ConcreteStates erben vom State und erben die handle Methode) - der GameStateManager nimmt einen String bei SetState entgegen und kümmert sich dann um das richtige Setzen vom State.
Was ist ein Game Object?
Eine Entität in der Spielwelt
Was ist ein hierarchisches Game Object?
Bei einem hierarchischen Game Object erben einzelne Game Objects von der Game Object Klasse und stellen somit neue einzigartige Game Objects dar - hierbei kann es allerdings zum Problem kommen, dass eine neues Game Object (zum Beispiel Mechtank) sowohl von Character als auch Vehicle erbt, wodurch es zu einem Diamond of Death kommt
Was ist ein komponenten-basiertes Game Object?
Ein komponenten-basiertes Game Object ist ein Container für Komponenten, wobei jede Komponente ihre eigene Funktionalität enthält - somit können Game Objects sich einfach bilden, indem verschiedene Komponenten ineinander gestöpselt werden
Wie kommunizieren Komponenten miteinander? Wann sollte welche Kommunikation verwendet werden?
1) Modifizierung von Container Objekt - Transformation
2) Komponente referenzieren sich gegenseitig (tightes coupling) - Animation + Rendering
3) Nachrichten senden - Play Sound, Trigger on collision
Was sind Kontroller Dead Zones?
Zonen bei Kontrollern, die während dem Spiele keine Wirkung haben sollen - Tile-basiertes Bewegen sollte nur 4 Richtungen beim Joystick erlauben, oder kleine Bewegungswerte sollten beim Shooter ignoriert werden
Welche Game Input Methoden gibt es?
Knopf, 1-Axis-Kontroller (Lenkrad), 2-Axis-Kontroller (Joystick, Maus), Motion Kontroller (Wii Remote), Motion Tracking (Playstatino Camera)
Woraus bestehen Motion Controller, um die Bewegung zu messen?
Accelerometer - misst die Beschleunigung
Gyroscope - misst die Rotation und Orientation vom Controller
Welche Herausforderungen treten beim Motion Tracking auf?
Genaue Erkennung von Bewegung (Bewegungs-“noise” macht genaue Erkennung schwer)
Latenz (Player-Prediction hilft)
Synchronisation der Animation (Animation und Spielerbewegung sollen gleich aussehen)
Falsche Fehler (System denkt, Spieler hat Move falsch gemacht, obwohl dieser richtig war - der Spieler hat immer recht)
Welche Arten gibt es Input zu messen?
Über einen Input Manager mithilfe von Polling (konstantes Checken, ob Input betätigt worden ist - Player Controls) oder Callbacks (werden ausgeführt, wenn der Status vom Input Device sich verändert hat - User Interface)
Wie sieht eine Translations-Matrix aus?
1 0 0 t.x
0 1 0 t.y
0 0 1 t.z
0 0 0 1
Wie sieht eine Scale-Matrix aus?
s.x 0 0 0
0 s.y 0 0
0 0 s.z 0
0 0 0 1
Wie sieht eine Rotation-Matrix aus?
x-Achse
1 0 0 0
0 cos(a) -sin(a) 0
0 sin(a) cos(a) 0
0 0 0 1
y-Achse
cos(a) 0 sin(a) 0
0 1 0 0
-sin(a) 0 cos(a) 0
0 0 0 1
z-Achse
cos(a) -sin(a) 0 0
sin(a) cos(a) 0 0
0 0 1 0
0 0 0 1
Was sind Tile Maps?
Eine Map von Welt-Geometrie (2D), wo die Map in einzelne kleine Graphiken unterteilt ist (ebenso wie ein Sprite Sheet) und man sich eine Welt aus den einzelnen Teilen der Tiel Map bauen kann.
Was ist Skinning?
Skinning ist der Prozess, wo man die Geometrie einer Mesh über Weight Values an ein Skelett (and die joints) bindet - Weight Painting ist essentiell für das „richtige“ Aussehen eines korrekt geskinnten Characters
Was sind Forward Kinematics?
= Hierchische Rigging Methode, bei der Joints bewegt und rotiert werden können
Rotiert man zum Beispiel eine Schulter, dann rotiert sich der gesamte Arm mit
Was sind Inverse Kinematics?
Das Gegenteil von Forward Kinematics: Man markiert den Fuß-Joint als IK, die Bewegung dessen hat dann Einfluss auf das gesamte Bein
Fuß wird angehoben, Oberschenkel geht automatisch mit
Beim Bewegen des Fußes wird die Bewegung in der Hierarchie nach oben hin verrechnet (Rigger setzt selbst fest, (bis) welche Joints beeinflusst werden von IK)
Was ist Pixel Basierte Collisionserkennung?
Jeder einzelne Pixel wird auf eine Intersektion geprüft - ist aber sehr langsam und wird nur für Mouse Hit Tests in 2D Spielen verwendet
Welche Kollisionsformen gibt es im 2D-Bereich?
Punkt, Linie, Kreis, Axis-Aligned Bounding Box (AABB), Oriented Bounding Box (OBB), Convex Polygon, Concaves Polygon (ein internet Winkel ist größer als 180°)
Wie funktioniert die Kollisionserkennung bei Kreisen?
Wenn die Distanz zwischen den beiden Kreisen kleiner als der aufaddierte Radius beider Kreise ist, dann handelt es sich um eine Kollision.
Wie kann die Kollisionserkennung über Distanzen performancemäßig optimiert werden?
Indem man im quadrierten Bereich rechnet und sich die Wurzel spart, also wenn der Radius beider Wurzeln zusammenaddiert zum Quadrat kleiner als Distanz zwischen den Kreisen ist.
r = a.radius + b.radius;
return r * r < (a.x - b.x) ² + (a.y - b.y) ²