2 Punkte von GN⁺ 2024-01-28 | 1 Kommentare | Auf WhatsApp teilen
  • Pong Wars ist eine Web-Demo, die den Gegensatz von Tag und Nacht, Gut und Böse wie bei Pong visualisiert
  • Auf dem Bildschirm werden Tag-/Nacht-Werte wie day 288 | night 288 angezeigt, sodass der aktuelle Zustand direkt erkennbar ist
  • Die Umsetzung besteht aus JavaScript und etwas HTML/CSS und befindet sich in einer einzigen index.html
  • Es wird darauf hingewiesen, dass der Code wiederverwendbar ist und Nutzer ihre eigene Version erstellen können
  • Auf der Seite gibt es einen Hinweis auf Koen van Gilst als Ersteller sowie einen Link zum GitHub-Quellcode

Der Kampf zwischen Tag und Nacht, dargestellt mit Pong

  • Pong Wars ist eine Webseite, die den Gegensatz zwischen „day“ und „night“ visuell zeigt
  • Der aktuelle Zustand wird im Format day 288 | night 288 angezeigt

Umsetzung in einer einzelnen Datei und Wiederverwendung

  • Die Umsetzung verwendet JavaScript sowie HTML/CSS und ist in einer einzigen Datei index.html enthalten
  • Der Code kann wiederverwendet werden, und Nutzer können ihre eigene Version erstellen
  • Auf der Seite gibt es einen Hinweis auf Koen van Gilst als Ersteller sowie einen Link zum GitHub-Quellcode

1 Kommentare

 
GN⁺ 2024-01-28
Meinungen auf Hacker News
  • Der Code verlinkt diesen Tweet als Inspirationsquelle: https://twitter.com/nicolasdnl/status/1749715070928433161 [nitter: https://nitter.net/nicolasdnl/status/1749715070928433161]
    Das Zitat lautet sinngemäß: „Ein endloser Kampf #genuary23 #genuary #genuary2024. Die Idee ist nicht ursprünglich von mir; ich habe sie früher schon einmal gesehen, finde aber nicht mehr, wo“
    Hier heißt es, der Kampf sei endlos; ich frage mich, ob es eine Möglichkeit gibt, das mathematisch zu beweisen

    • Wenn man noch weiter zurückgeht, könnte ein Teil der Idee von mir stammen: https://hachyderm.io/deck/@bazzargh/111829275276749971
      Ursprünglich hatte ich https://twitter.com/CasualEffects/status/1390290306206216196 gesehen, und der Autor sagte, es stamme aus einem pico8-Original. In den früheren Versionen gab es auch Pong-Schläger, aber als ich ein BASIC-Demake erstellte, konnte ich den Code nicht in einen Tweet packen, damit bbcmicrobot ihn ausführt, also entfernte ich die Schläger
      Meine Version war etwas langsam und grob, aber jemand, ich glaube @rheolism, postete eine viel schnellere und flüssigere Version, die statt Punkte zu setzen benutzerdefinierte Zeichen verwendete; später sah ich auch, wie das Demake in Processing neu erstellt wurde. Solche Dinge entwickeln ein Eigenleben
      Den Twitter-Account habe ich vor langer Zeit gelöscht, aber ich habe es im Archiv wiedergefunden
    • Da jeder Ball mindestens einen 1x1-Bereich einnimmt, kann der gegnerische Ball nicht 100 % einnehmen
    • Je kleiner der Bereich ist, desto häufiger prallt dieser Ball pro Zeiteinheit im Vergleich zum Gegner ab, und desto mehr Chancen hat er auch, seinen Bereich zu vergrößern
      Daher dürfte eine Situation, in der ein Ball extrem eingesperrt ist, nur schwer sehr lange andauern
    • Man kann sehen, was passiert, wenn der linke Ball nur eine Kachel hat und der rechte Ball den gesamten Rest besitzt:
      x1 = y1 = y3 = squareSize, x2 = canvas.width - squareSize
      squares = Array.from({ length: numSquaresX }, (, i) =>
      Array.from({ length: numSquaresY }, (
      , j) =>
      i === 0 && j === 0 ? TEAM1 : TEAM2))
    • Es dürfte ein ziemlich stabiles Gleichgewicht geben
      Denn je kleiner der eigene Bereich wird, desto höher wird die Eroberungsgeschwindigkeit
  • Mich faszinieren solche Sachen sehr, aber ich kenne nicht einmal einen Genrebegriff, um sie einzuordnen und zu analysieren, also kann ich sie nur „solche Sachen“ nennen
    Sie sind von Spielalgorithmen inspiriert, aber keine Spiele; auch Conways „Game of Life“ ist gewissermaßen falsch benannt. Es bewegt sich, ist aber nicht wie eine normale Animation geskriptet
    In der realen Welt nennen Leute wie David C. Roy ihre Werke kinetische Skulpturen
    Algorithmische Videos? Spielsimulatoren? Autonome Automaten?

    • Ich habe gesehen, dass für so etwas der Begriff Zero-Player Game verwendet wird
      Es gibt auch einen kurzen Wikipedia-Artikel: https://en.wikipedia.org/wiki/Zero-player_game
    • Mir gefällt der Begriff Spielzeug, in einer ähnlichen Perspektive wie „executive toy“
    • Könnte man es nicht als chaotisches System betrachten? Im Sinne eines vollständig deterministischen Systems, das sehr empfindlich auf Anfangsbedingungen reagiert
      Edit: Ich habe kurz in den Code geschaut, und in der Abpralldynamik steckt etwas Zufall. Daher ist es schwer, es als „vollständig deterministisch“ zu bezeichnen, sofern man den Seed des Pseudozufallszahlengenerators nicht als Teil der Anfangsbedingungen zählt
    • Simulation dürfte das im Großen und Ganzen abdecken
    • In meinem Kopf nenne ich so etwas Simulation
      Es gibt Zeit und Regeln und so weiter, und das wichtige Element ist, dass man das Ergebnis nicht im Voraus kennt
      Dieses letzte Element macht das Schreiben und Ausführen solcher Programme interessant
  • Mein 12-jähriger Sohn hat das gerade in Scratch gebaut:
    https://scratch.mit.edu/projects/957461584/

  • Wirklich cool
    Derzeit kommt es bei einem Ball umso häufiger zu Kollisionen bei gleicher Geschwindigkeit, je kleiner der von ihm besessene Bereich wird; interessant wäre es, die Geschwindigkeit proportional zur Anzahl der besessenen Felder oder zu deren Quadratwurzel zu machen

    • Es scheint sich auf diese Weise selbst zu regulieren, ähnlich wie beim Kartenspiel „War“
      Ich glaube nicht, dass eine Seite am Ende gewinnen wird
  • Auf mehreren Ebenen wirklich schön
    Ästhetisch kann man sich einfach hinsetzen und zuschauen, und philosophisch ist es als digitale Metapher für einen fortwährenden Kampf interessant
    Zuletzt, und am interessantesten, wurden zwei sehr einfache alte Ideen kombiniert, um etwas Neues zu schaffen. Das gut hinzubekommen, ist äußerst selten
    Großes Lob, wirklich sehr viel

    • Es scheint in gewissem Maß Yin und Yang zu modellieren, sowohl in dem, was das Spiel simuliert, als auch in dem, was es visuell zeigt
  • Mit 3 Farben würde es interessant werden
    Wenn die anderen beiden eine Farbe in die Ecke drängen, kann sie wegen des engen Raums schnell Blöcke zurückerobern und sich kurz vor der Niederlage rasch erholen

  • Es gibt auch einen Mastodon-Beitrag des ursprünglichen Autors: https://hachyderm.io/@vnglst/111828811496422610

  • Ich habe es zu Lernzwecken in C++ und Qt Scene Graph implementiert
    Ich teile es, falls jemand Interesse hat: https://invent.kde.org/carlschwan/warpong/-/blob/master/src/...

  • Ein ähnliches Beispiel: https://contranoid.com/

  • Es gibt auch noch eine weitere Pong-Variante, allerdings nur für Desktop: https://www.obfusco.com/pn0gjs/index.html