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
Welche Faktoren tragen zu gutem Memory Management bei Runtime bei?
Keine Heap-Allokationen im Game Loop
Garbage Collection vermeiden im Game Loop
Alle Ressourcen ins Game reinladen, bevor das Game überhaupt geladen hat
Alle Objekte Instanziieren, bevor der Gameloop gestartet hat
Objekt-Pooling verwenden
Was ist ein Singleton?
Ein Software-Design Pattern, bei dem von einer Klasse garantiert wird, dass diese nur eine Instanz hat und auf diese global Zugegriffen werden kann - findet oft Verwendung bei Manager Klassen
Ein privater Konstruktor wird benötigt, damit nicht mehrere Instanzen dieser Klasse entstehen können
Was sind Cel Animationen?
= Sprite Animationen
Man rendered von einem großen Spritesheet einzelne Bereiche, damit diese aussehen wie eine Animation.
Was sind Vorteile von Sprite Sheets?
Kompaktes und effizientes Speichern von Daten
Mehrere Animationen in einem Spritesheet möglich
Was sind die Ziele von Animationen?
Timing
Slow In / Slow Out (Beschleunigung bei Animationen)
Arcs (Dinge im echten Leben bewegen sich in Arcs)
Follow-Through und Overlapping Actions
Was sind Nachteile von Sprite Animationen?
Sprite Sheets können sehr schnell riesige Blöcke an Data werden
Framen können nicht interpoliert werden
Keine smoothen Übergänge von einen Animation State in den anderen
Vergleiche Frame (Sprite) Animationen mit 2D Skelett-Animationen!
Implementierung: Simple vs. Komplex
Performance: Sehr schnell vs. schnell
Data: Sehr viel vs. wenig
Produktion: Einfach vs. benötigt mehr setup
Smoothness: Limitiert zum Frame-Count vs. Smooth
Animationsübergänge: Hard vs. Smooth
Charakter Variation: Schwierig vs. Flexibel
Animationsanhänge: Keine vs. Objekte können an Bones attached werden
Welche UI Komponenten Klassen gibt es? Beschreibe diese.
Non-Diegetic - Außerhalb vom Spiel (Stats, Zeit)
Diegetic - Innerhalb und Teil vom Spiel (Geschwindigkeitsanzeige in Auto)
Spatial - Nicht in der Spielstory, aber in der Spielwelt (Selection Auras, Texte, Pointer)
Meta - In der Spielstory, aber nicht in der Spielwelt (Filter, Schmutz am Bildschirm)
Was ist Lokalisierung? Wie wird diese standardmäßig implementiert?
Lokalisierung ist der Prozess, wo man ein Spiel (oder Software allgemein) für verschiedene Sprachen zur Verfügung stellt.
Implementierung:
Alle UI-Strings in einem strukturierten Format abspeichern
Token für dynamische Dialoge verwenden
Während der Laufzeit dann nur den richtigen String-Container auswählen (Sprache), auf die zugegriffen werden soll
Was ist Ludologie?
Ist die Studie von Spielen, der Akt diese zu spielen und die Spieler und Kulturen um diese herum
Was ist ein iterativer Game Design Prozess?
Design-Entscheidungen werden durch das Spielen des Prototypen getroffen, während das Spiel in Entwicklung ist - es ist ein spiel-basierter Designprozess
Was sind die 4 Grundlagen eines Spiels?
Mechaniken, Story, Ästhetik und Technologie (ob Keyboard oder Maus, oder Papier und Zettel…)
Was ist Flow?
Flow ist der Zustand, indem eine “komplette Immersion in einer Aktivität” herrscht
Was ist Presence and Immersion?
Immersive Spielen sind Spiele, die die Spieler in eine Alternativwelt befördern - sie leben sich in diese Welt ein
Presence hingegen ist sehr ähnlich definiert, allerdings ist dies das Gefühl, dass man im Spiel existiert
Was ist Engagement?
Engagement ist das Commitment, was ein Spieler bei einer Aktivität hat - Spieler die sehr viel Engagement bei einer Aktivität aufweisen, nehmen die Außenwelt weniger wahr
Welche Faktoren beeinflussen Spieler Engagement am meisten?
Objectives, Challenge, Reward
Was ist Gamification?
Systeme und Software so aufzubereiten, dass sie “spielerisch” sind