Bertie: Mensch ärgere dich nicht als Browsergame in JS

@@Felix Riesterer:

Salü Felix

Im Forum habe ich den archivierten Thread zur Entwicklung Deines Spiels 2011 gefunden und schaute mir das an.

Dein Spiel gefällt mir sehr, es ist toll gemacht und mit viel Liebe gestaltet, macht Spass.

Ich versuchte verschiedene Möglichkeiten, wie ich das Spiel modernisieren könnte, um dann vielleicht vorzuschlagen, es in die Spielesammlung unseres Wikis aufzunehmen.

In JavaScript bin ich Anfänger, ich kam zu keinem brauchbaren Ergebnis und gab schliesslich auf.

Als Nebenprodukt hier eine SVG-Variante zum Bild field.jpg, scharf und nur ein Zehntel Dateigrösse.

Vielleicht hast Du ja Verwendung dafür, das würde mich freuen.

Ich habe meine Datei als «field.svg» hochgeladen, das Forum hat daraus allerdings einen anderen Namen gemacht. Sag mir, wenn ich Dir die Datei irgendwie anders zukommen lassen soll.

Gruss, Bertie

P.S. Ich finde, auch in der Version von 2011 würde sich Dein Spiel sehr gut in der Spielesammlung machen.

Spielfeld als SVG

  1. @@Bertie

    @Felix Riesterer: Ich habe zwei Bugs entdeckt:

    • Der Spieler vor mir (Blau, Computer) hat seinen letzten Stein mit einer Sechs nach Hause gebracht. Danach war ich (Gelb) an der Reihe; der Würfel war jedoch blau. Ich konnte aber würfeln und das Spiel ging weiter. Als ich das nächste Mal an der Reihe war, stimmte die Farbe des Würfels wieder.
    • Bei einem Spiel wurde mein Spielstein nach dem Würfeln unsichtbar. Da ich im Kopf hatte, wo er stand, konnte ich auf das Feld clicken und der Stein wurde wieder sichtbar und zog. Nächste Runde wieder dasselbe. Nächste Runde wieder. Browsertab gewechselt, um den Fehler zu melden; wieder zurück zum Tab mit dem Spiel: der Stein bleibt sichtbar. Weiß jetzt natürlich nicht, ob sich das durch den Tabwechsel oder ein Spielereignis von selbst erledigt hat.

    🖖 Live long and prosper

    --
    In our chants of “ICE out now”
    Our city’s heart and soul persists
    Through broken glass and bloody tears
    On the streets of Minneapolis

    — Bruce Springsteen, Streets of Minneapolis
    1. @@Gunnar Bittersmann

      @Felix Riesterer: Ich habe zwei Bugs entdeckt:

      Und noch einen (ich halte das jedenfalls für einen Bug): Wenn ich mehrere Spielsteine draußen habe, blinken nach dem Würfeln nur der (bzw. die), mit dem ich jemanden schlagen kann, sofern möglich. Ja, es gilt Schlagzwang. Ein menschlicher Spieler sollte aber die Möglichkeit haben, den Fehler zu begehen, nicht zu schlagen und mit einem anderen Stein zu ziehen. Der Stein, der hätte schlagen müssen, wird „gepustet“, d.h. er kommt zurück ins Startfeld.

      Schlagzwang – warum kann man die Option ausschalten? Wird das Spiel nicht immer mit Schlagzwang gespielt?

      Wo wir bei Optionen sind: Ich kenne das so, dass man im Haus (Ziel) seine Figuren nicht überspringen darf. Wikipedia listet das aber als Variante. Wäre schön, wenn man das als Option wählen könnte.

      Die vom Computer gesteuerten Spieler sind nicht gerade die hellsten Lichter auf dem Spielfeld. Wenn mehrere Steine draußen sind, zieht der Computer desöfteren einen anderen als den, der ins Ziel gehen könnte. Sollte der Algorithmus da ein bisschen schlauer gemacht werden?

      🖖 Live long and prosper

      --
      In our chants of “ICE out now”
      Our city’s heart and soul persists
      Through broken glass and bloody tears
      On the streets of Minneapolis

      — Bruce Springsteen, Streets of Minneapolis
      1. @@Gunnar Bittersmann

        Die vom Computer gesteuerten Spieler sind nicht gerade die hellsten Lichter auf dem Spielfeld. Wenn mehrere Steine draußen sind, zieht der Computer desöfteren einen anderen als den, der ins Ziel gehen könnte. Sollte der Algorithmus da ein bisschen schlauer gemacht werden?

        Der Algorithmus zieht auch ohne Not gerne mal einen Spielstein auf das Loch (Startfeld) eines Gegenspielers, selbst wenn dieser dreimal würfeln darf.

        🖖 Live long and prosper

        --
        In our chants of “ICE out now”
        Our city’s heart and soul persists
        Through broken glass and bloody tears
        On the streets of Minneapolis

        — Bruce Springsteen, Streets of Minneapolis
      2. Hallo,

        Schlagzwang – warum kann man die Option ausschalten? Wird das Spiel nicht immer mit Schlagzwang gespielt?

        Nein, es wird nicht immer mit Schlagzwang gespielt.

        Gruß
        Kalk

    2. Lieber Gunnar,

      @Felix Riesterer: Ich habe zwei Bugs entdeckt:

      aktuell habe ich dermaßen viel an anderer Stelle zu programmieren (schon seit Jahren), dass ich mir dieses Projekt leider nicht wieder vornehmen kann. Es stellt sich auch die Frage, ob die damalige Umsetzung nicht mit besseren Konzepten neu geschrieben werden sollte.

      Liebe Grüße

      Felix Riesterer

    3. @@Gunnar Bittersmann

      • Bei einem Spiel wurde mein Spielstein nach dem Würfeln unsichtbar. Da ich im Kopf hatte, wo er stand, konnte ich auf das Feld clicken und der Stein wurde wieder sichtbar und zog. Nächste Runde wieder dasselbe. Nächste Runde wieder. Browsertab gewechselt, um den Fehler zu melden; wieder zurück zum Tab mit dem Spiel: der Stein bleibt sichtbar. Weiß jetzt natürlich nicht, ob sich das durch den Tabwechsel oder ein Spielereignis von selbst erledigt hat.

      Ich hatte den Fehler eben wieder: Anstatt der Markierung, welche Steine man ziehen kann, werden alle betreffenden Steine unsichtbar.

      Weder wechseln des Tabs noch des Browserfensters noch zu einer anderen Anwendung haben das behoben, auch nicht die Umschaltung zu schneller oder keiner Animation.

      🖖 Live long and prosper

      --
      In our chants of “ICE out now”
      Our city’s heart and soul persists
      Through broken glass and bloody tears
      On the streets of Minneapolis

      — Bruce Springsteen, Streets of Minneapolis
      1. @@Gunnar Bittersmann

        • Bei einem Spiel wurde mein Spielstein nach dem Würfeln unsichtbar. Da ich im Kopf hatte, wo er stand, konnte ich auf das Feld clicken und der Stein wurde wieder sichtbar und zog. Nächste Runde wieder dasselbe. Nächste Runde wieder. Browsertab gewechselt, um den Fehler zu melden; wieder zurück zum Tab mit dem Spiel: der Stein bleibt sichtbar. Weiß jetzt natürlich nicht, ob sich das durch den Tabwechsel oder ein Spielereignis von selbst erledigt hat.

        Ich hatte den Fehler eben wieder: Anstatt der Markierung, welche Steine man ziehen kann, werden alle betreffenden Steine unsichtbar.

        Das tritt immer mal wieder auf. Ich kann mit dem Inspektor keinen Fehler bei dir entdecken. Die betreffenden Spielsteine haben die Klasse usable und sollten die Hintergrundgrafik yellow_sunshine.gif zeigen. Ich tippe mal auf einen Bug im Firefox, der sich vielleicht an den animierten GIF verschluckt. Wenn man im Inspektor das Häkchen für das die Hintergrundbild wegnimmt, sieht man den/die betreffenden Spielsteine wieder – ohne Sonnenschein, natürlich.

        Wenn man das Häkchen wieder setzt, sind ist/die Steine wieder unsichtbar oder der Browser hat sich berappelt, beides hatte ich schon.

        🖖 Live long and prosper

        --
        In our chants of “ICE out now”
        Our city’s heart and soul persists
        Through broken glass and bloody tears
        On the streets of Minneapolis

        — Bruce Springsteen, Streets of Minneapolis
        1. @@Gunnar Bittersmann

          Ich tippe mal auf einen Bug im Firefox

          Ich spiele jetzt mit Brave (Chromium). Da hatte ich das Phänomen bislang nicht.

          🖖 Live long and prosper

          --
          In our chants of “ICE out now”
          Our city’s heart and soul persists
          Through broken glass and bloody tears
          On the streets of Minneapolis

          — Bruce Springsteen, Streets of Minneapolis
          1. @@Gunnar Bittersmann

            Ich tippe mal auf einen Bug im Firefox

            Ich spiele jetzt mit Brave (Chromium). Da hatte ich das Phänomen bislang nicht.

            Immer noch nicht in Brave. Ich konnte das Problem aber im Firefox auf einem anderen Gerät (auch MacBook, aber noch älter) nachvollziehen. Mitten im Spiel hört Firefox auf, das animierte GIF als Hintergrundbild für die usable-Spielsteine anzuzeigen.

            🖖 Live long and prosper

            --
            In our chants of “ICE out now”
            Our city’s heart and soul persists
            Through broken glass and bloody tears
            On the streets of Minneapolis

            — Bruce Springsteen, Streets of Minneapolis
            1. Hi there,

              Mitten im Spiel hört Firefox auf, das animierte GIF als Hintergrundbild für die usable-Spielsteine anzuzeigen.

              Ja, das machen alle aktuellen Browser so. Das ist kein Bug sondern ein Feature. Jedes animierte GIF wird nach ein paar Minuten gestopt, das soll Energie sparen. Das ist ein Teil von allgemeiner "Rendering Suspension" und lässt sich soweit ich weiß auch nicht ändern oder abstellen...

              1. Servus!

                Hi there,

                Mitten im Spiel hört Firefox auf, das animierte GIF als Hintergrundbild für die usable-Spielsteine anzuzeigen.

                Ja, das machen alle aktuellen Browser so. Das ist kein Bug sondern ein Feature. Jedes animierte GIF wird nach ein paar Minuten gestopt, das soll Energie sparen. Das ist ein Teil von allgemeiner "Rendering Suspension" und lässt sich soweit ich weiß auch nicht ändern oder abstellen...

                Bertie und ich hatten im Februar mit einer neuen Version angefangen.

                Hintergrund und Figuren sind SVG, das mit CSS animiert wird.
                Am Rest arbeiten wir weiter, sobald das Wetter wieder schlechter wird.

                Herzliche Grüße
                Matthias Scharwies

                1. @@Matthias Scharwies

                  Bertie und ich hatten im Februar mit einer neuen Version angefangen.

                  Hintergrund und Figuren sind SVG, das mit CSS animiert wird.

                  Gibt’s da nichts Besseres zu tun?

                  Am Rest arbeiten wir weiter, sobald das Wetter wieder schlechter wird.

                  Du meinst im Sommer, wenn es wieder so unerträglich heiß ist, dass man nicht nach draußen gehen mag?

                  --
                  In our chants of “ICE out now”
                  Our city’s heart and soul persists
                  Through broken glass and bloody tears
                  On the streets of Minneapolis

                  — Bruce Springsteen, Streets of Minneapolis
                  1. Servus!

                    Sorry, hatte in deinem Post editiert statt geantwortet!

                    @@Matthias Scharwies

                    Gibt's da nix besseres zu tun?

                    Eigentlich schon, deshalb wandert das immer wieder nach hinten!

                    Du meinst im Sommer, wenn es wieder so unerträglich heiß ist, dass man nicht nach draußen gehen mag?

                    Ich sitze im Keller und hab' grad die Heizung wieder aufgedreht.

                    Herzliche Grüße
                    Matthias Scharwies

                    1. @@Matthias Scharwies

                      Sorry, hatte in deinem Post editiert statt geantwortet!

                      Das passiert mir auch immer wieder mal.

                      Gibt's da nix besseres zu tun?

                      Würde ich „nix“ sagen? 🤔 Würde ich ' statt eines Apostrophen verwenden? 😆

                      Eigentlich schon, deshalb wandert das immer wieder nach hinten!

                      Worauf ich hinauswollte: zu überlegen, ob die Animation denn wirklich sein sollte, spart womöglich Arbeit.

                      🖖 Live long and prosper

                      --
                      In our chants of “ICE out now”
                      Our city’s heart and soul persists
                      Through broken glass and bloody tears
                      On the streets of Minneapolis

                      — Bruce Springsteen, Streets of Minneapolis
                  2. Hallo,

                    Am Rest arbeiten wir weiter, sobald das Wetter wieder schlechter wird.

                    Du meinst im Sommer, wenn es wieder so unerträglich heiß ist, dass man nicht nach draußen gehen mag?

                    gibt es eigentlich eine Statistik zu Hautkrebs bei Nerds? 😀

                    Gruß
                    Jürgen

                    PS Meine Frau fragte, wie das Wetter in Halle war. Ich konnte nichts dazu sagen.

              2. Hallo klawischnigg,

                Das ist ein Teil von allgemeiner "Rendering Suspension"

                Diesen Begriff finde ich lediglich im Zusammenhang mit WebKitGTK. Was kein Mainstream-Browser ist, oder?

                Woher weißt du, dass das ein generelles Feature ist? Und woher weißt du, dass das für animierte Gifs gilt - wenn ich die Schlagworte lese, die mir die Googlesuche liefert (webkitgtk.org antwortet mir nicht), sollte die Rendering Suspension nur für "backgrounded applications" gelten.

                Rolf

                --
                sumpsi - posui - obstruxi
                1. Hi there,

                  Das ist ein Teil von allgemeiner "Rendering Suspension"

                  Diesen Begriff finde ich lediglich im Zusammenhang mit WebKitGTK. Was kein Mainstream-Browser ist, oder?

                  Woher weißt du, dass das ein generelles Feature ist? Und woher weißt du, dass das für animierte Gifs gilt - wenn ich die Schlagworte lese, die mir die Googlesuche liefert (webkitgtk.org antwortet mir nicht), sollte die Rendering Suspension nur für "backgrounded applications" gelten.

                  Diesen Ausdruck hab ich von einem künstlichen Intelligenzler. Ich hatte vor ein paar Monaten das Problem, daß ein in eine Demo eingebautes animiertes Gif nach ein paar Minuten nur mehr ein Gif, aber ohne Animation war. Eine diesbezügliche Nachfrage bei besagtem Intelligenzer gab mir folgende Antwort:


                  🧠 Warum Browser animierte GIFs nach einiger Zeit stoppen

                  " Browser haben mehrere Mechanismen, um Energie zu sparen, CPU‑Last zu reduzieren und Tabs zu „drosseln“, die im Hintergrund laufen oder als „weniger wichtig“ eingestuft werden.

                  Dabei passiert Folgendes:

                  1. Tab‑Throttling (Hintergrundtabs werden eingefroren) Wenn ein Tab nicht aktiv ist oder längere Zeit keine Interaktion stattfindet, frieren Browser Teile der Seite ein:

                  JavaScript wird gedrosselt

                  CSS‑Animationen werden pausiert

                  animierte GIFs werden gestoppt

                  Timer laufen nur noch selten

                  Das gilt besonders für Chrome, Edge und Safari.

                  1. „Rendering Suspension“ bei statischen Seiten Wenn der Browser erkennt, dass sich auf der Seite „nichts Wichtiges“ ändert, kann er das Rendering komplett pausieren. Ein animiertes GIF zählt dabei nicht als „wichtig“.

                  2. Speicheroptimierung Browser entladen Ressourcen, die lange laufen, aber keinen User‑Input haben. Ein GIF, das minutenlang durchläuft, wird irgendwann als „unnötige CPU‑Last“ eingestuft.

                  3. Mobile Geräte sind besonders aggressiv Auf Smartphones passiert das noch schneller, weil Akku gespart werden soll."


                  Nachdem das zumindest nach meiner Erfahrung auf animierte Gifs tatsächlich zutrifft, unterstelle ich dem Gesagten jetzt einmal einen gewissen Wahrheitsgehalt. By the way, ich habs dann so gelöst, daß ich aus dem animierten Gif bei ezgif ein aus Einzelbildern bestehendes Bild gemacht habe, das ich mit einer in JS geschriebenen Sprite-Funktion abgespielt habe...

                  1. @@klawischnigg

                    JavaScript wird gedrosselt

                    CSS‑Animationen werden pausiert

                    animierte GIFs werden gestoppt

                    Timer laufen nur noch selten

                    Das gilt besonders für Chrome, Edge und Safari.

                    Wie schon geschrieben, ist mir das Verschwinden der Spielsteine in Brave (ein Chromium) noch nicht untergekommen, sondern nur im Firefox.

                    Und unter „animierte GIFs werden gestoppt“ würde ich verstehen, dass ein Frame des GIFs als Standbild angezeigt wird. Die Spielsteine verschwinden aber. Sollten die animierten GIFs einen Frame enthalten, auf dem nichts zu sehen ist?

                    🖖 Live long and prosper

                    --
                    In our chants of “ICE out now”
                    Our city’s heart and soul persists
                    Through broken glass and bloody tears
                    On the streets of Minneapolis

                    — Bruce Springsteen, Streets of Minneapolis
                    1. Hi there,

                      Und unter „animierte GIFs werden gestoppt“ würde ich verstehen, dass ein Frame des GIFs als Standbild angezeigt wird.

                      Ja, so siehts auch aus.

                      Die Spielsteine verschwinden aber.

                      Ok, dann hab ich Dein Posting falsch verstanden.

                      Sollten die animierten GIFs einen Frame enthalten, auf dem nichts zu sehen ist?

                      Das wäre natürlich eine, wenn auch ziemlich unwahrscheinliche, Möglichkeit. Wenn gar nichts zu sehen ist, dann müßte der Frame nicht nur nichts enthalten sondern auch transparent sein. Das klingt in der Tat nicht plausibel, zumal so etwas ja nicht einfach so passieren kann sondern beabsichtigt sein müßte - zu welch skurilem Zweck auch immer...

                    2. @@Gunnar Bittersmann

                      Und unter „animierte GIFs werden gestoppt“

                      Die animierten GIFs werden nicht gestoppt. Das Verschwinden der Spielsteine betrifft nur die der Klasse usable. Bei den anderen ist das Hintergrund-GIF weiterhin zu sehen – und zwar animiert.

                      Im Inspektor eine für die gelben usable einen anderen Bild-URL angeben, und schon sind sie wieder sichtbar. Jedenfalls mit einem statischen Bild. Ich muss beim nächsten Mal mal ein anderes animiertes GIF probieren.

                      🖖 Live long and prosper

                      --
                      In our chants of “ICE out now”
                      Our city’s heart and soul persists
                      Through broken glass and bloody tears
                      On the streets of Minneapolis

                      — Bruce Springsteen, Streets of Minneapolis
                      1. @@Gunnar Bittersmann

                        Im Inspektor eine für die gelben usable einen anderen Bild-URL angeben, und schon sind sie wieder sichtbar. Jedenfalls mit einem statischen Bild. Ich muss beim nächsten Mal mal ein anderes animiertes GIF probieren.

                        Hab ich jetzt mal gemacht: Beim Verschwinden der usable-Spielsteine (was sie dadurch etwas unusable macht) im Inspektor

                        .piece.yellow.usable {
                          background-image: url(./images/yellow_sunshine.gif);
                        }
                        

                        auf

                        .piece.yellow.usable {
                          background-image: url(./images/yellow_cool.gif);
                        }
                        

                        geändert – und schon waren sie wieder sichtbar, statt als Sonne halt mit Sonnenbrille.

                        Bei der Gelegengeheit auch mal andersrum

                        .piece.yellow.home {
                          background-image: url(./images/yellow_cool.gif);
                        }
                        

                        auf

                        .piece.yellow.home {
                          background-image: url(./images/yellow_sunshine.gif);
                        }
                        

                        gesetzt – und schon verschwanden die Spielsteine, die schon die Runde rum ins Haus geschafft hatten.

                        Keine Ahnung, was da im Firefox abgeht. Irgendwie mag er das yellow_sunshine.gif nicht.

                        Vielleicht mal mit einer anderen Farbe spielen und schauen, ob das Problem da auch auftritt?

                        🖖 Live long and prosper

                        --
                        In our chants of “ICE out now”
                        Our city’s heart and soul persists
                        Through broken glass and bloody tears
                        On the streets of Minneapolis

                        — Bruce Springsteen, Streets of Minneapolis
                        1. Hallo Gunnar,

                          ich habe es gerade mal als gelber Spieler mit MS Edge gespielt. Da waren auf einmal die blauen Spielsteine im Ziel, also .piece.blue.home, verschwunden. Ich habe dann im Inspektor in der Regel für .piece.blue.home mal den Haken am background-image entfernt, so dass .piece.blue galt. Dann wieder eingeschaltet, half nicht. Nochmal mal aus und an, dann waren die blauen Sonnebrillenträger wieder da. Es liegt also weder an der Farbe gelb noch an dem usable-Status. Und es betrifft auch nicht nur den Firefox!

                          SEHR merkwürdig.

                          In einem zweiten und dritten Versuch (mit blau) ist es nicht passiert.

                          Rolf

                          --
                          sumpsi - posui - obstruxi
                          1. @@Rolf B

                            ich habe es gerade mal als gelber Spieler mit MS Edge gespielt. Da waren auf einmal die blauen Spielsteine im Ziel, also .piece.blue.home, verschwunden.

                            Andere Browser, andere (Un)sitten.

                            Es liegt also weder an der Farbe gelb

                            Ja, bei roten usables hatte ich das eben auch.

                            Hätte mich auch gewundert. Aber bei Merkwürdigkeiten kann man nie wissen, wie ein Bär von geringem Verstand sagen würde.

                            noch an dem usable-Status.

                            Ich hatte das Verhalten bislang nur bei diesen.

                            SEHR merkwürdig.

                            Yes, it is. Wie die Zeit.

                            🖖 Live long and prosper

                            --
                            In our chants of “ICE out now”
                            Our city’s heart and soul persists
                            Through broken glass and bloody tears
                            On the streets of Minneapolis

                            — Bruce Springsteen, Streets of Minneapolis
  2. Lieber Bertie,

    schön, dass Dir mein Spiel gefällt. 😀

    Es ist echt lange her, dass ich mich damit befasst habe. Deshalb habe ich überhaupt keinen Überblick mehr, was ich da im Detail wie gelöst habe. Und dass die Computerspieler nicht schlau handeln, liegt daran, dass sie zufällig einen möglichen Zug ausführen, nicht jedoch den anscheinend vorteilhaftesten.

    Als Nebenprodukt hier eine SVG-Variante zum Bild field.jpg, scharf und nur ein Zehntel Dateigrösse.

    Sehr schön! Wenn ich jetzt noch wüsste, wie man all die Smileys in SVG umwandeln und animieren könnte, wäre es mir die Sache wert, alles von GIF oder PNG nach SVG umzubauen. Es war damals eine Sauarbeit die jeweiligen Smiley-Figuren passend umzufärben.

    P.S. Ich finde, auch in der Version von 2011 würde sich Dein Spiel sehr gut in der Spielesammlung machen.

    Die kannte ich so noch nicht. Gleich mal hineingeschaut. OK, wenn es sich dafür eignet, ich habe nichts dagegen, wenn dort eine bessere neue Version entsteht.

    Liebe Grüße

    Felix Riesterer

  3. Dieser Beitrag wurde gelöscht: Beitrag ist Spam.