Computer Games / Wintersemester 19/20 Foto-Quelle: Getty Images/Last Resort
- Mood-Test
- erster Test für den Unterwasserlook
- Schwebepartikel um Wasser und Raum anzudeuten
- GodRays um Wasseroberfläche / Lichtbrechung zu imitieren
- Shader-Graph Caustics am Meeresgrund um Lichtbrechung zu imitieren
-
Flocking-Tests
- allgemeines Schwarmverhalten mit Kollisionsvermeidung
-
Futtersuche-Tests
- KI findet automatisch das nahe gelegenste Futter
- allgemeines Schwarmverhalten
- Kollisionsvermeidung
- Fluchtverhalten beim Anwesenheit eines Feindes
- Schwarm-Gruppierung die treu dem Spieler-Fisch folgt
- Farbwechsel der zum eigenen Schwarm gehörenden Fische
- Übernahme der Farben aus dem Editor
- Manipulation des Shader-Graphs zur Laufzeit
- Shader-Graph
- Fisch-"Texturierung" (Procedural)
- Shader-basierte Schwimm-Animation
- Dither-Effekt um Vertex-Clipping zu vermeiden
- Shader-Graph mit Sub-Graphs um Wiederverwendbarkeit zu erhöhen
- Procedural generierte Unterwasserwelt (Basic)
- flüssiger Kamerawechsel: hinter dem Spieler / Top-View
- Fische verfügen nun über ein Hungerbedürfnis
- Hunger zu stillen ist wichtiger als der Gruppenzusammenhalt
- ist die Nahrung nah genug, wird die Gruppe kurzzeitig verlassen
- ist die Nahrung zu weit weg, ist der kleine Fisch dennoch hin und her:
- Gruppe oder Essen: Ohne Entscheidung stirbt der kleine Freund :(
- Nahrung wird nach Bedarf generiert
- Größe der Nahrungsquelle repräsentiert die angebotene Nahrungsmenge
- Nahrungsanfragen werden komplett oder zum Teil gedeckt (ja nach Vorrat)
- Fische die nicht "satt" werden, suchen automatisch die nächste Quelle
- Grundlage für die weitere Generierung der Unterwasserwelt
- bestimmen der Platzgebiete per Perlin-Noise-Generierung von Zonen / Bereichen
- animiertes Grass per Shader-Graph (wogt sich sanft in der Strömung)
- zeigt Statistiken über das Unterwasser-Biotop
- Anzahl der Fische
- auch die Anzahl der bereits Verstorbenen :(
- deren Nahrungsbedarf (wenn es nicht schon zu spät ist)
- noch vorhandene Nahrung
- dient dem Balancing der Überlebenschancen
- kann automatisch Futter generieren wenn das Gleichgewicht gefährdet ist
- bei der Entwicklung dieser Erweiterung, sind 3.453.871 Alpha-Tester gestorben
- sie mögen in Frieden ruhen - blubb, blubb
- voll prozedurale Generierung der Unterwasserwelt
- Meeresgrund mit
- Steine, Grass, Alrgen, Steinblöcke
- Wasseroberfläche
- undurchsichtige Begrenzungen
- Meeresgrund mit
- Platzierung aller Elemente unter Berücksichtigung von Save-Areas
- Mesh-Auflösung kann individuell konfiguriert werden
- Verteilung, Gruppierung und Häufung aller Elemente kontrollierbar
- abhängige Platzierung und Skalierung der nötigen Partikelsysteme
- Collider-Berechnung für Fisch-Navigation
- Fressfein für unsere kleinen Fischfreunde
- navigiert eigenständig
- beginnt die Jagt unter einem bestimmen Schwellwert (es fließt Blut)
- Hai bekommt mehr Geschwindigkeit
- Hai folgt einem Fisch bis dieser erlegt ist
- (sometimes food) wird unweigerlich wahr
- Rest-Lebensenergie der Fische geht auf den Hai über
- Jagt endet erst über einem bestimmten Schwellwert (so lange herrscht Panik)
- Hai drosselt das Tempo und schwimmt gemütlich umher
- Fische flüchten aktiv vor dem übermächtigen Feind
- verstorbene Fische treiben mit dem Bauch nach Oben zur Wasseroberfläche
- werden innerhalb von Gras-Elementen neu gespawnt
- neues System verhindert Kollision mit Elementen (Boden, Wände, Steine usw.)
- Player wird automatisch an diesen Elementen vorbei gelenkt
- Ray-Cast-System der Fische übernommen
- Schwimm-Animation passt sich an tatsächliche Geschwindigkeit an
- allgemein Coroutinen für asynchrone Animationen
- z.B. der Futterquellen
- Coroutinen für Futterbedarf um korrektes Timing sicherzustellen
- vier LOD (level of detail) Stufen für das Fishmodell
- automatischer switch je nach Entfernung zur Kamera
- spart bis zu 250.000 Tris
- Boden- und Wasser-Detailstunfen: bis zu 95% weniger Mesh
- Optimierung durch Unterteilung der Welt in 'Cells'
- dymaische Anpassung an Levelgröße möglich
- nur Fische innerhalb der gleichen Cell 'sehen sich'
- reduzierung der Berechnungen von Interaktionen
- Zuordnung innerhalb der Cellen wird nur alle 5 Sekunden neu berechnet
- nur möglich in intervallen zwischen dem Multithreading
- Lastreduzierung durch
- Dynamisches UI mit Spielstatisiken
- Schwarmgrößen aller Spieler (Player und KI)
- eigener Schwarm zusätzlich als konkreter Zahlenwert
- Nahrungsbedarf
- animiert
- blinkt wenn Nahrung lebensbedrohlich knapp wird
- neue Felsen in der gesamten Unterwasserwelt