Skip to content

The game Fish Are Friends (sometimes food) is a fish adventure game for young and old. It impresses with its realistic swarm simulation in combination with the unique underwater world.

Notifications You must be signed in to change notification settings

foxytocin/FishAreFriends

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Master Angewandte Informatik

Computer Games / Wintersemester 19/20 Fish Are Friends Foto-Quelle: Getty Images/Last Resort

18.12.2019: Erster Mood-Test

Fish Are Friends

  • 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

19.12.2019: Flocking-Tests / Futtersuche-Tests

Fish Are Friends

  • Flocking-Tests

    • allgemeines Schwarmverhalten mit Kollisionsvermeidung
  • Futtersuche-Tests

    • KI findet automatisch das nahe gelegenste Futter

21.12.2019: Flocking-Simulation & Shader Graphs / Unterwasserwelt

Fish Are Friends

Flocking-Simulation

  • 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-Graphs / Optik der Unterwasserwelt

  • 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

22.12.2019: Grass-Planting, Food-Chasing & EcoSystemManager

Fish Are Friends

Food-Chasing

  • 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

Fish Are Friends

Grass-Planting

  • 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)

EcoSystemManager

  • 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

28.12.2019: Voll prozeduraler Map-Generator, Predator (Hai), Player-Controller

Fish Are Friends

Full Procedural Map-Generator

  • voll prozedurale Generierung der Unterwasserwelt
    • Meeresgrund mit
      • Steine, Grass, Alrgen, Steinblöcke
    • Wasseroberfläche
    • undurchsichtige Begrenzungen
  • 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

Fish Are Friends

Predator (Hai)

  • 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

Dead-Animation

  • verstorbene Fische treiben mit dem Bauch nach Oben zur Wasseroberfläche
  • werden innerhalb von Gras-Elementen neu gespawnt

Player-Controller

  • 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

Optimierungen

  • 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

31.12.2019: Peformance-Optimierungen durch Cells

Fish Are Friends

Full Procedural Map-Generator

  • 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

06.02.2020: Interface & Rocks

Interface

Fish Are Friends

  • 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

Rocks

Fish Are Friends

  • neue Felsen in der gesamten Unterwasserwelt

About

The game Fish Are Friends (sometimes food) is a fish adventure game for young and old. It impresses with its realistic swarm simulation in combination with the unique underwater world.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published