1 Punkte von GN⁺ 4 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Eine CSSQuake-Demo, die Quake im Browser ausführt; auf der Seite werden gemeinsam die Initialisierung von cssQuake v0.230 und der Status coming soon! angezeigt
  • Das Rendering übernimmt der PolyCSS renderer v0.2.6; im Log ist das Laden von Manifest, Progs, Definitions, Weapon Model und den Assets aus id1/pak0.pak zu sehen
  • Enthalten ist Quake Shareware version 1.06; außerdem wird der Copyright-Hinweis Quake (C) 1996 id Software, Inc. angezeigt
  • Der Multiplayer-Bildschirm bietet Einstellungen für Name, Farbe, Map, Fraglimit, Timelimit und maximale Spielerzahl sowie die Aktionen Create, Join und Copy Link
  • Einschließlich Steuerungshinweisen und Debug-Toggles zeigt die aktuelle Seite zugleich eine Laufdemo und eine Konfigurations-UI

Quake-Demo, die im Browser initialisiert wird

  • Der Seitentitel lautet cssQuake - Powered by PolyCSS; im Hauptbereich werden v0.230 und coming soon! angezeigt
  • Im unteren Log erscheint === cssQuake v0.230 initialized ===
  • Der Ladezustand wird in folgender Reihenfolge angezeigt
    • Host_Init
    • Loaded manifest
    • Loaded progs
    • Loaded definitions
    • Weapon model
    • Assets from id1/pak0.pak
  • Im Leistungsbereich werden 0 FPS und 0 MS angezeigt
  • Zugehörige Links sind cssQuake GitHub, id Software Quake GitHub und Layoutit

Multiplayer- und Steuerungseinstellungen

  • Im Menü Multiplayer lassen sich Name, Farbe, Map, Fraglimit, Timelimit und maximale Spielerzahl festlegen
    • Die Standard-Map-Anzeige ist E1M1 the Slipgate Complex
    • Die Aktionsbuttons sind Create, Join, Copy Link
  • In der Map-Liste werden folgende Einträge angezeigt
    • E1M1 the Slipgate Complex
    • E1M2 Castle of the Damned
    • E1M3 the Necropolis
    • E1M4 the Grisly Grotto
    • E1M5 Gloom Keep
    • E1M6 The Door To Chthon
    • E1M7 The House of Chthon
    • E1M8 Ziggurat Vertigo
  • Die Steuerungshinweise sind in Gameplay und Menu unterteilt
    • Gameplay: Bewegung mit WASD, Sicht mit der Maus, Schießen per Klick, Springen mit Space, Rennen mit Shift, Ducken mit Ctrl
    • Menu: Navigation mit den Pfeiltasten, Auswahl mit Enter, Zurück mit Esc
  • In den Debug- und Gameplay-Einstellungen werden folgende Toggles angezeigt
    • Show outlines, Show stats panel, Show FPS panel
    • Crosshair-Anpassung
    • Dynamic lighting, Mute sounds, Show particles, Show enemies
    • Disable damage, Disable movement, Disable attacks, Invert mouse

1 Kommentare

 
GN⁺ 4 시간 전
Hacker-News-Kommentare
  • Eine großartige Leistung, aber es irritiert mich, dass Quake, das auf einem Pentium-133-PC der 90er lief, gefühlt flüssiger war als auf meinem Mac M1 Pro

    • Diese Engine ist nicht auf Performance optimiert. Sie nutzt am Ende eben CSS
    • Zur Referenz: In Chrome auf einem M2 läuft es butterweich, in Safari ruckelt es aber und es wirkt, als würde viel abgeschnitten
    • Unter Firefox + Linux gibt es überhaupt keine Probleme. Gnome Web ruckelt allerdings und verhält sich seltsam. Scheint ein WebKit/Safari-Problem zu sein
    • Wenn es Quake wäre, das in C kompiliert wurde, würde es auf einem M1 selbst in voller 8K-Auflösung extrem schnell laufen
    • Moment, lief Quake auf einem Pentium-133? Ich hatte einen Pentium MMX mit 233 MHz und dachte, dass es darauf nicht gut laufen würde, also habe ich es gar nicht erst besorgt
  • Großartig. Schwerer zu beenden als vim

    • Wenn du das Menü sehen willst, drücke Tab. Um ins Spiel zurückzukehren, klicke außerhalb eines Menüeintrags
    • Wie hast du es beendet? Es scheint, als würde nichts reagieren
  • Beeindruckend. Ist das nicht nur ein Renderer, der CSS nutzt, sondern eine Neuimplementierung der kompletten Engine und Spiellogik? Es gibt einige Stellen, an denen es sich anders verhält als das Original, deshalb wirkt es so
    Zum Beispiel funktionieren manche Knöpfe nur, wenn man auf sie schießt statt sie zu berühren, und manche Geheimtüren gehen durch Berührung auf statt durch Beschuss

    • Hallo! Danke für den Hinweis, die Knöpfe sollten jetzt korrekt funktionieren
      Auf der Seite der Spiellogik läuft im Build-Schritt ein kleiner JS-Extractor über QuakeC/progs.dat und erzeugt JSON mit Quelldaten wie Zuständen, Modellen, Angriffen und Sounds. Die Browser-Runtime ist in TypeScript und setzt damit ein Quake-ähnliches Spielgefühl um
    • Nein, nur der Renderer. Das Spiel selbst ist TypeScript
  • Das ist das erste Ding im Internet seit Langem, das mich wirklich zum Lachen gebracht hat
    Ich habe mir auch https://cssdoom.wtf/ angesehen, das war ebenfalls gut. Beides ist viel leichter und angenehmer als die aktuellen Nachrichten \o/

  • Dieses CSS Quake scheint JS zum Ausführen zu brauchen

  • Ich verabscheue zwar die Verbreitung von CSS als Hack auf Hack auf Hack und generell den Web-Stack aus CSS/JS/HTML mit Leidenschaft, aber das hier halte ich für einen hervorragenden und legitimen Anwendungsfall für CSS :)

  • Ist das von https://github.com/NielsLeenheer/cssDOOM übernommen?

  • Sehr cool. Ich frage mich, wo die Grenze liegt. Ich sehe einen in der Luft schwebenden Hund, den ich angeschossen habe. Liegt das an CSS oder lässt sich das beheben?

    • .dog { display: float; }
  • Beeindruckend, aber so etwas sollte mit einer deklarativen Stylesprache eigentlich nicht möglich sein

    • CSS wird nur fürs Rendering verwendet, nicht für die Spiellogik
  • Wow, wirklich cool. Läuft wirklich flüssig. Es ist unglaublich faszinierend, dass selbst nach ungefähr 25 Jahren noch Muskelgedächtnis da ist