1 Punkte von GN⁺ 2024-05-14 | 1 Kommentare | Auf WhatsApp teilen
  • Static Chess ist ein statisches Web-Schach-Experiment, bei dem alle Ansichten des Schachs nur mit HTML und CSS erstellt werden und jeder Zug per Link-Klick ausgeführt wird
  • Nachdem ein Spieler seinen Zug gemacht hat, schickt er den erzeugten Link an einen Freund; der Gegenspieler sendet danach wieder einen Link zurück, um die Partie fortzusetzen
  • Mit einer brutalistischen Oberfläche, die Animationen und flüssige Interaktionen weglässt, konzentriert es sich ganz auf das Schachbrett und die Zugauswahl selbst
  • Die Funktionen sind derzeit noch deutlich eingeschränkt, und es kann defekte Teile geben, sodass für das tatsächliche Spielen weiterhin Einschränkungen bestehen
  • Für die Zukunft bleiben Erweiterungen wie Unterstützung für echte Partien, ein einfaches Interface für Langzeitpartien und ein Gegner mit statischer KI offen

Statisches Schach per Link

  • Static Chess ist eine Schach-Website mit dem Ziel „plain, brutalist, no bloat chess“
  • Die Oberfläche besteht ausschließlich aus HTML und CSS, Schachzüge werden per Link-Klick ausgeführt
  • Die Partie wird durch das Hin- und Herschicken von Links fortgesetzt
    • Ein Spieler macht seinen Zug und sendet den Link an einen Freund
    • Der Freund macht über diesen Link seinen Zug und sendet anschließend wieder einen Link zurück, womit der nächste Zug beginnt
  • Animationen und flüssige Interaktionen werden bewusst ausgeschlossen
  • Außerdem wird die Frage aufgeworfen, ob Google alle möglichen Schachzüge berechnen würde, wenn die Website indexiert wird

Aktuelle Grenzen und Erweiterungsideen

  • Der Funktionsumfang ist noch eingeschränkt, und es kann defekte Teile geben
  • Es wird darum gebeten, gefundene Bugs zu melden
  • Inspiriert wurde das Projekt durch eine HN-Diskussion über eine Website mit allen möglichen Tic-Tac-Toe-Spielzuständen
  • Geplant ist, es künftig so zu erweitern, dass echtes Gameplay unterstützt wird
  • Es könnte sich zu einem einfachen Interface für lange Partien mit Freunden entwickeln
  • Auch eine Funktion, gegen eine statische KI zu spielen, könnte interessant sein
  • Wer gewünschte Funktionen hat, kann Änderungen per PR vorschlagen

1 Kommentare

 
GN⁺ 2024-05-14
Meinungen auf Hacker News
  • Wenn man FEN an die URL anhängt, lassen sich auch Chess960 (Fischer Random Chess) oder andere Varianten mit „benutzerdefinierter Startposition“ spielen. Leerzeichen einfach durch Unterstriche ersetzen.
    Beispiel: https://chess.maxmcd.com/bbnqrknr/pppppppp/8/8/8/8/PPPPPPPP/...

    • Chess960 hat allerdings auch andere Rochaderegeln als normales Schach; die Site kann vermutlich nicht allein anhand der FEN erkennen, dass sie diese Regeln anwenden müsste.
  • Ich bin mir nicht sicher, ob der erste Absatz mit „reinem, grobem, schnörkellosem Schach“ als Vorteil oder Nachteil dieser Umsetzung gemeint ist.
    Es ist ein Unterschied, etwas als ungewöhnliche Implementierung zur Erkundung der Möglichkeiten anzupreisen, oder Software, die mit passender Technologie gebaut wurde, als aufgebläht, mit albernen Animationen und glatten Interaktionen zu beschreiben, die beim Spielen stören.
    Im zweiten Absatz heißt es, die Funktionen seien eingeschränkt und könnten kaputt sein; dadurch werden die Grenzen dieser Umsetzung noch deutlicher. Natürlich kann das alles auch Satire gewesen sein und ich bin darauf hereingefallen. Clever umgesetzt ist es auf jeden Fall.

    • Es wirkt sehr wahrscheinlich wie eine humorvolle Beschreibung, bei der ein bestimmter Vorteil bis zu einem unlogischen Extrem getrieben wurde.
      Die Funktionseinschränkungen scheinen sich trotzdem eher auf andere Funktionen zu beziehen als auf die Dinge, die als aufgebläht bezeichnet werden.
    • Es wirkt eher wie etwas, das gebaut wurde, „weil mir der Gedanke kam, dass es möglich ist“; als Grund, etwas leicht Ungewöhnliches zu bauen, finde ich das immer okay.
      Die Idee, per zustandslosem Link zu spielen, gefällt mir ziemlich gut, und die „Schönheit“ von Animationen und Interaktionen fühlt sich zumindest für mich nicht klar wie ein Nettogewinn an.
      Die „richtige Technologie“ hängt stark von der Nutzererfahrung ab, die man bauen will. Für dieses Ziel waren HTML und CSS die passenden Technologien, so wie für die UX-Ziele einer funktionsreicheren Site ein anderer Technologie-Stack passen kann.
    • Die Vorstellung, in einem Spiel keine Animationen zu wollen, ist ziemlich lustig. Entweder ist das ein Witz, oder jemand ist zu tief in der Richtung unterwegs, dass es im Web kein JavaScript geben sollte.
  • Streng genommen ist das doch keine statische Site, oder? Bei jeder Anfrage rendert das Backend dynamisch.
    Es werden wohl kaum irgendwo auf dem Server 999999919291293923 vorgerenderte Seiten liegen.

    • Technisch bräuchte man ungefähr 4,8 * 10^44 Seiten, um alle legalen Schachpositionen abzudecken [1].
      Außerdem wird auch eine völlig illegale Position wie diese problemlos ausgeliefert: https://chess.maxmcd.com/rnbqkbnr/qqqqqqqq/8/8/8/8/QQQQQQQQ/...
      [1] https://github.com/tromp/ChessPositionRanking
    • Mit statisch ist offenbar gemeint, dass es kein XmlHttpRequest gibt.
    • Es gibt durchaus vorgerenderte Seiten. Sie sind nur mit einem anwendungsspezifischen Kompressionsverfahren komprimiert.
    • Das Backend muss nicht einmal wirklich rendern. Als Single-Page-App mit pushState könnte es buchstäblich eine einzige Datei sein.
  • Das Erkennen legaler Züge ist gut, aber Schachmatt kennt es offenbar nicht?
    https://chess.maxmcd.com/r1b1kRnr/p1ppB2p/n2P2p1/8/7P/1p6/PP...
    Müsste das nicht als Schachmatt angezeigt werden?

    • Wenn man sieht, dass sich keine Figuren mehr bewegen lassen, scheint es Schachmatt zu erkennen, es wird nur nicht richtig angezeigt.
    • Wenn auf einer Schachmatt-Seite tatsächlich „checkmate“ stünde, könnte der Google-Bot nach der Indexierung der gesamten Site Schachmatts finden.
      Idealerweise sollte jede Seite eine Zeichenkette enthalten, die alle vorherigen Brettzustände bis zu diesem Zustand zusammenfasst. Dann könnte man nach dem aktuellen Brettzustand plus „checkmate white“ suchen und alle Wege finden, wie man aus einer bestimmten Stellung gewinnen kann.
      Um Google zum ultimativen Schach-Orakel zu machen, bliebe nur noch, den Gegner davon zu überzeugen, den gefundenen Zug auch tatsächlich zuzulassen.
    • En passant erlaubt es ebenfalls nicht.
  • Ich hatte erwartet, dass es eine Schachvariante ist, bei der sich überhaupt keine Figuren bewegen können.

    • Ich auch. Bis dahin kann man ein ähnliches, aber noch statischeres Spiel ausprobieren: Go. Suchen funktioniert besser mit dem chinesischen Namen Weiqi oder dem koreanischen Namen Baduk.
    • Wenn man nicht auf Links klickt, ist es tatsächlich genau das.
  • Coole Arbeit. Es wäre interessant, das hinter ein CDN wie Cloudflare zu setzen und zu sehen, wie die Cache-Hit-Rate ausfällt.

    • Der Lichess-Eröffnungs-Explorer dürfte ein ziemlich guter Indikator dafür sein, wie sich die Cache-Hit-Rate entwickeln würde.
      https://lichess.org/analysis#explorer
      Es dürfte eher an der Lichess-Datenbank liegen als an der Masters-Datenbank, die sich deutlich unterscheidet. In Masters wird auf e4 zum Beispiel in 46 % der Fälle mit c5 geantwortet, bei Lichess liegt c5 nur bei 19 %.
  • https://chess.maxmcd.com/rnbqk3/pppp2pB/2P1p3/1P1P2Bp/3n4/b2...
    Sehr cool, ich habe es bis zum Ende durchgespielt und sogar ein Schachmatt hinbekommen.

    • Schön wäre, wenn die URL statt des Brettzustands nur eine Zugfolge-Kette enthielte. Dann könnte man einfach die Zugfolge in die URL einfügen und daraus würde der Brettzustand entstehen.
  • Ich hatte früher auch einmal eine statische Schachseite gebaut und eine P2P-Verbindung per WebRTC ergänzt, damit man mit Freunden spielen kann.

    • Try it
    • Fork it
    • Ich sehe manchmal einen seltsamen Bug, bei dem das Spiel automatisch einen Zug anstelle des Spielers macht. Besonders wenn eine Dame eine Figur schlägt und die gegnerische Dame diese Dame schlagen kann, scheint das Spiel automatisch den Zug Dame schlägt Dame auszuführen.
    • Die Soundeffekte sind wirklich gut. Besonders der Schach-Sound gefällt mir.
  • Die Bauernumwandlung ist fest auf Dame eingestellt. Es wäre schön, wenn auch andere Umwandlungen unterstützt würden: https://www.chess.com/forum/view/game-showcase/checkmate-by-...

  • Sehr cool. Zusätzlich zur FEN wäre auch eine Zugnotation schön; vermutlich ließe sich die als Fragment einfügen.
    Beispiel: https://chess.maxmcd.com/rnbqkbnr/ppp1pppp/8/3p4/3P1B2/8/PPP...