1 Punkte von GN⁺ 2024-11-09 | 1 Kommentare | Auf WhatsApp teilen
  • TIGSource-Forum

    • TIGSource hat einen offiziellen Discord-Server eröffnet.
    • Im Forum gibt es verschiedene Themen und Diskussionen, an denen viele Mitglieder teilnehmen.
  • Return of the Obra Dinn

    • Es läuft eine Diskussion über den Grafikstil des Spiels und Probleme mit dem Dithering.
    • Es gibt Versuche, das Flimmern zu beheben, indem zunächst in hoher Auflösung gerendert und anschließend herunterskaliert wird.
    • Es wird darüber diskutiert, wie sich dem Dithering-Muster durch Fixierung mehr Stabilität bei Bewegungen verleihen lässt.
  • Dithering-Prozess

    • Obra Dinn wird in 8-Bit-Graustufen gerendert und anschließend in 1-Bit umgewandelt.
    • Es werden zwei Dithering-Muster verwendet, um unterschiedliche visuelle Effekte zu erzeugen.
    • Bei bewegten Bildern können die Dithering-Muster Probleme verursachen.
  • Stabilisierung des Ditherings

    • Es wird untersucht, wie sich die Stabilität erhöhen lässt, indem das Dithering-Muster an die Geometrie gebunden wird.
    • Es werden verschiedene Mapping-Methoden ausprobiert, um das bestmögliche Ergebnis zu finden.
  • Fazit

    • Die Lösung des Dithering-Problems hat viel Zeit gekostet, letztlich wurde das Problem jedoch gelöst, ohne den visuellen Stil des Spiels zu beeinträchtigen.
    • Das fertige Spiel soll zwei Anzeigemodi bieten.

1 Kommentare

 
GN⁺ 2024-11-09
Meinungen auf Hacker News
  • Obwohl ich seit über 10 Jahren Grafikprogrammierung mache, ist mir das beim Spielen nicht aufgefallen. Wenn man die gesamte visuelle Sprache des Spiels bedenkt, waren die 100 Stunden wirklich gut investiert.
    Das hätte man meiner Meinung nach sogar bei der SIGGRAPH zum Thema zeitliche Kohärenz im nicht-fotorealistischen Rendering einreichen können.

    • Die Stabilität des Ditherings beim Umschauen in der Szene ist mir definitiv aufgefallen, aber ich hatte keine Ahnung, dass dafür so viel Arbeit nötig war. Nachdem ich diesen Beitrag gelesen habe, werde ich das künftig noch viel mehr bewundern.
  • Für alle, die es nicht wissen: Return of the Obra Dinn und Papers, Please sind beide Spiele von Lucas Pope und gelten als mehrfach ausgezeichnete, eindeutige Klassiker.
    Selbst wenn man sonst nicht viel spielt, lohnt es sich sehr, sie sich anzusehen. Beides sind keine typischen Spiele.

    • Papers, Please ist ein Meisterwerk. Bei Obra Dinn habe ich wohl irgendetwas falsch gemacht; nachdem nur sehr wenig Geschichte kam, die man mit anderen Hinweisen abgleichen konnte, bekam ich keine weiteren Hinweise mehr.
    • Papers, Please ist eines meiner absoluten Lieblingsspiele. Ich habe sogar Karteikarten erstellt, um mir die wichtigsten Informationen einzuprägen, und wiederholt trainiert, um meine Prüffähigkeiten zu verbessern.
      Es gibt nicht viele Spiele, die mich so weit gebracht haben. Obra Dinn habe ich nicht gespielt, weil mich der Kunststil nicht angesprochen hat, aber wer Detektivspiele mag, sollte sich auch Curse of the Golden Idol ansehen. In puncto Kreativität ist es diesen Spielen recht nahe und macht ziemlich viel Spaß.
    • Auf seiner Website gibt es viele großartige Projekte, die bei Game Jams entstanden sind. Es sind wirklich unterhaltsame und kreative Ideen, und einige davon wurden zu vollwertigen Spielen.
    • Ich spiele Ego-Shooter seit Wolfenstein 3D, aber Return of the Obra Dinn war das einzige Spiel, das mir Übelkeit verursacht hat.
      Trotzdem habe ich es durchgespielt.
  • Starkes 1-Bit-Dithering ist ein wirklich spannendes Thema. Selbst in 2D gibt es mehrere Ansätze, jeweils mit eigenen Vor- und Nachteilen und Kompromissen.
    Es ist erstaunlich, dass etwas, das ein Kernbestandteil der Computing-Erfahrung der 80er war, auf moderner Hardware eher ziemlich knifflig ist. Bei meinem Projekt[0] habe ich festgestellt, dass es nahezu unmöglich ist, Offscreen-Pixel und das vom Browser bereitgestellte Canvas 1:1 zu mappen.
    [0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...

    • Es ist immer noch lustig, dass eine recht aktuelle nVidia-Karte für Auflösungswechsel mehrere Sekunden braucht, während ein 35 Jahre alter Atari die Auflösung sogar mehrfach innerhalb eines einzigen Bildschirm-Refreshs ändern konnte.
      Ein einfaches Spiel, das ich früher gemacht habe, nutzte für 3/4 des Bildschirms eine farbige Anzeige mit niedriger Auflösung und unten vier Farben bei doppelter horizontaler Auflösung, um mehr Text unterzubringen. So wechselte es 120-mal pro Sekunde die Auflösung, ohne die CPU spürbar auszubremsen.
  • Keiner der vorgeschlagenen Ansätze scheint richtig gut zu funktionieren, und das Problem wirkt deutlich komplexer, als es aussieht.
    Was eventuell richtig funktionieren könnte, wäre ein „fraktales“ Dither-Muster, das beim Vergrößern und Verkleinern glatt und skaleninvariant bleibt; die Verarbeitung im Texel-Raum, damit sowohl Kamerabewegungen als auch Objektbewegungen korrekt sind; oder bilineares Filtering beziehungsweise Supersampling des Dither-Musters, gefolgt von einer Art Fehlerdiffusions-Pass im Screen Space per Compute Shader.
    Ich bin mir allerdings nicht sicher, ob das in der Praxis gut funktioniert. Falls das nicht ausreicht, könnte man alternativ zunächst simpel im Screen Space arbeiten, das Ergebnis dann auf auflösungserhaltende Weise zurück in den Texel-Raum mappen, im nächsten Frame mithilfe der Texel-Raum-Informationen eine kompatible Screen-Space-Lösung erzeugen und diese wieder in den Texel-Raum mappen. So ließe sich zur Laufzeit schrittweise ein fraktales Muster pro Texel aufbauen. Das könnte die beste Lösung sein, wirkt aber hinsichtlich Speicher, Rechenaufwand und Komplexität sehr teuer.

    • Stand letzte Woche habe ich den fraktalen Ansatz ziemlich gut zum Laufen gebracht.
      https://x.com/dgant/status/1851840125065453894
      https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...
      Die Funktionsweise: Es nutzt World-Space-Dithering, wendet 2D-Dithering auf triplanar gemappte Oberflächen an, wählt je nach Tiefe die Koordinatenskalierung so, dass das Dither-Muster im Bereich [1px, 2px) liegt, und bemalt ausreichend weit entfernte Oberflächen mit Kugelkoordinaten. An den Tiefenschwellen wird teilweise neu bemalt, aber in der Praxis stört das nicht besonders.
  • Für Interessierte habe ich noch etwas weiter gegraben und seine früheren Devlogs zu diesem Thema gefunden [1] [2].
    Besonders der Abschnitt über den Upscaling-Algorithmus Scale2X ist mir aufgefallen, und er ist ziemlich cool [3].
    [1] https://forums.tigsource.com/index.php?topic=40832.260
    [2] https://forums.tigsource.com/index.php?topic=40832.msg121719...
    [3] https://www.scale2x.it

  • Ich finde es wirklich großartig, dass er alles in Foren teilt.
    Ich erinnere mich daran, die frühen Arbeiten an Papers, Please gesehen zu haben; es hat etwas Schönes, den Arbeitsprozess zu teilen und sich Feedback auszusetzen.

    • Ich glaube, man braucht beim Arbeiten bis zu einem gewissen Grad ein Publikum. Sonst fühlt es sich an, als würde man ins Leere rufen.
    • Tigsource ist eine Schatzkammer an Informationen und Designdokumenten. Viele bekannte Spiele wie Spelunky und Dead Cells sind ebenfalls dort entstanden.
  • Die damalige Diskussion: https://news.ycombinator.com/item?id=15766249

  • Einer der besten Beiträge über Dithering, die ich bisher gesehen habe. Ich habe an dem Schwarzweiß-Dithering von Return to Dark Castle gearbeitet.
    Ich wollte Atkinson-Dithering verwenden, aber wegen der Art, wie benachbarte Pixelwerte ineinander übergehen, war es schwierig, das in einem Shader zu implementieren, und damals war ich außerdem sehr gestresst und erschöpft. Ich glaube, auf die Idee, das Muster am Offset der Szene zu fixieren, bin ich nicht gekommen, daher dürfte es in scrollenden Levels wie den Katakomben oder dem Helikopter-Pack ein Flimmern gegeben haben. Vielleicht habe ich es doch gemacht, aber ich erinnere mich nicht. Jedenfalls großartig.

  • Ich habe es kürzlich bei GOG gekauft und versucht, es auf einem 5K Studio Display zu spielen, aber ich konnte kein Ergebnis erzielen, bei dem die schönen Pixel nicht verschwammen. Wirklich schade.
    Ich bin alle Einstellungsmenüs durchgegangen.

    • Du musst eine Möglichkeit finden, es in einer Auflösung anzuzeigen, die ein ganzzahliges Vielfaches der Spielauflösung ist, mit Letterboxing auf dem Bildschirm.
  • Nur zum Spaß: Der Soundtrack dieses Spiels ist hier:
    https://www.youtube.com/watch?v=8qvdAWLcPyU