H2O: Highscore abspeichern

Hallo alle zusammen und miteinander.

Ich habe nun mal ein kleines JavaScript-Spiel erstellt, bei dem man mit dem Cursor eine Strecke langfahren muss:
http://h2o.pyrokar.lima-city.de/
Erst mit dem Cursor kurz auf der Startfläche verweilen, dann warten bis die Ampel grün ist und los geht's ;)

Aber nun zu meiner eigentlichen Frage:
Welche Möglichkeiten habe ich bei solch einem JavaScript-Spiel einen Highscore zu erstellen?
Der Highscore stetzt ja bereits vorraus, dass die Daten an ein serverseitges Script übermittelt werden.
Wie könnte man das halbwegs geschickt anstellen?

Ich hatte mir bereits überlegt, dass wenn die Strecke gemacht ist eine 1x1 Pixel große PHP-Grafik mit den Werten aufgerufen wird und diese dann die Daten in einer Datenbank speichert.
Das Problem ist nur: Die Werte könnte jeder, der ein bisschen Ahnung hat, leicht fälschen :-/

Mir ist schon klar, dass es keinen 100%ig sicheren Weg gibt, aber wie könnte ich das wenigstens etwas sicherer machen?

Man liest sich, H2O

--
#*~!:     Download Opera
Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                          Decoder    -    Infos
  1. hallo H2O,

    Welche Möglichkeiten habe ich bei solch einem JavaScript-Spiel einen Highscore zu erstellen?
    Der Highscore stetzt ja bereits vorraus, dass die Daten an ein serverseitges Script übermittelt werden.

    Korrekt.

    Wie könnte man das halbwegs geschickt anstellen?

    Nun ja, du mußt dir halt so ein Script erstellen. Das ist nicht weiter schwierig.

    Übrigens habe ich nicht begriffen, was da wie in Gang gesetzt werden soll. Ich habe nur mehrere Fehlstarts produziert. Da du auf der Seite genug Platz hast, wäre ein Hinweis, wie man das Spiel bedient, ganz nützlich.

    Grüße aus Berlin

    Christoph S.

    1. Hallo Christoph.

      Nun ja, du mußt dir halt so ein Script erstellen. Das ist nicht weiter schwierig.

      ??? Was meinst du mit, "halt so ein Script"?
      Mir ist schon klar, wie man ein Script schreibt, was über PHP die Daten (mit Hilfe eines Bildes) in einer Datenbank abspeichert.
      Mir ging es darum Ideen zu bekommen, wie ich das nun sicherer machen kann. :-/

      Übrigens habe ich nicht begriffen, was da wie in Gang gesetzt werden soll. Ich habe nur mehrere Fehlstarts produziert. Da du auf der Seite genug Platz hast, wäre ein Hinweis, wie man das Spiel bedient, ganz nützlich.

      Gute Idee *gg*
      Anleitung (die gleich auch auf der Seite sein wird *g*):
      "Ihr müsst zuerst mit dem Cursor auf das schwarz-weiße Feld gehen und erst wenn die Ampel auf grün springt mit dem Cursor versuchen das Feld zu umrunden. Sobald ihr jedoch vom Weg abkommt und die Ampel auf Rot umspringt müsst ihr nochmal von vorne beginnen."

      Man liest sich, H2O

      --
      #*~!:     Download Opera
      Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                Decoder    -    Infos
      1. Lieber H2O,

        Anleitung (die gleich auch auf der Seite sein wird *g*):
        "Ihr müsst zuerst mit dem Cursor auf das schwarz-weiße Feld gehen und erst wenn die Ampel auf grün springt mit dem Cursor versuchen das Feld zu umrunden. Sobald ihr jedoch vom Weg abkommt und die Ampel auf Rot umspringt müsst ihr nochmal von vorne beginnen."

        Du wolltest wohl sagen "Cursor" = "Mauszeiger"! Und es wäre nicht schlecht anzumerken, dass ein Klick nichts bewirkt, sondern das Spiel rein durch Zeigen mit der Maus gespielt wird...

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. Hallo Felix.

          Du wolltest wohl sagen "Cursor" = "Mauszeiger"! Und es wäre nicht schlecht anzumerken, dass ein Klick nichts bewirkt, sondern das Spiel rein durch Zeigen mit der Maus gespielt wird...

          *hust*
          Verbessert...

          Danke ;)
          H2O

          --
          #*~!:     Download Opera
          Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                    Decoder    -    Infos
  2. Hi,

    vielleicht ließe sich das auch mit einem Formular machen, das nur HIDDEN fields enthält. Diese füllst du dann und sendetst das Formular ab (mit submit()).

    Aber ob das nun sicherer ist, weiß ich auch nicht.

    Vielleicht kannst du die Zeit irgendwie verschlüsseln oder so, aber ich glaube JavaScript bietet da keine vernünftige Methode.

    Vielleicht helfen auch Sessions, so dass man nur Werte speichern kann, die auch wirklich von einem gerade durchgeführten Spiel entstanden sind.
    Diese Session_id speicherst du dann auch in einem der hidden fields und überprüfst serverseitig dann, ob diese irgendwie noch aktuell ist. Wie das aber im detail funktioniert, kann ich jetzt auch nicht sagen.

    Gruß
    Christian

    1. Hallo Christian.

      vielleicht ließe sich das auch mit einem Formular machen, das nur HIDDEN fields enthält. Diese füllst du dann und sendetst das Formular ab (mit submit()).
      Aber ob das nun sicherer ist, weiß ich auch nicht.

      Die Idee ist gar nicht mal so schlecht, aber ich bezweifle auch, dass das sicherer ist...

      Vielleicht kannst du die Zeit irgendwie verschlüsseln oder so, aber ich glaube JavaScript bietet da keine vernünftige Methode.

      Ich hatte mir auch bereits Gedanken über eine Art Verschlüsselung gemacht.
      Warscheinlich wird es darauf auch hinauslaufen...
      Das Problem ist aber ja auch, dass der Schlüssel mitgeliefert wird.
      Es wird schließlich einmal clientseitg verschlüsselt und dann wieder serverseitig entschlüsselt 8-/
      Aber eine ganz perfekte Lösung gibt es wohl nicht...

      Vielleicht helfen auch Sessions, so dass man nur Werte speichern kann, die auch wirklich von einem gerade durchgeführten Spiel entstanden sind.
      Diese Session_id speicherst du dann auch in einem der hidden fields und überprüfst serverseitig dann, ob diese irgendwie noch aktuell ist. Wie das aber im detail funktioniert, kann ich jetzt auch nicht sagen.

      Das ist eine gute Idee!
      An Session hatte ich noch gar nicht gedacht. Wobei ich mir nicht sicher bin, wie man das mit JavaScript und PHP umsetzen kann...

      Vielen Dank,
      H2O

      --
      #*~!:     Download Opera
      Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                Decoder    -    Infos
      1. hallo H2O,

        An Session hatte ich noch gar nicht gedacht. Wobei ich mir nicht sicher bin, wie man das mit JavaScript und PHP umsetzen kann...

        Du kannst doch dein Spiel gleich von einem PHP-Script ausliefern lassen. Dann erstellt eben dasa PHP-Script HTML und Javascript, der Benutzer merkt so gut wie nichts davon. Und du hast alle Möglichkeiten sofort parat, die dir PHP bietet.
        Es muß auch nicht unbedingt PHP sein. Perl ist genausogut denkbar oder was dir sonst noch einfallen könnte.

        Grüße aus Berlin

        Christoph S.

        1. Hallo Christoph.

          Du kannst doch dein Spiel gleich von einem PHP-Script ausliefern lassen. Dann erstellt eben dasa PHP-Script HTML und Javascript, der Benutzer merkt so gut wie nichts davon. Und du hast alle Möglichkeiten sofort parat, die dir PHP bietet.

          Trotzdem fehlt da immernoch der Schritt von der Auslieferung zur Abspeicherung...
          Schließlich muss der User erst mal spielen, damit er in den Highscore kommt.
          Und dann könnte er die Daten bei der Übermittlung wieder fälschen oder wie meintest du das?

          Es muß auch nicht unbedingt PHP sein. Perl ist genausogut denkbar oder was dir sonst noch einfallen könnte.

          Sollte schon PHP sein *gg* Da ich Perl & Co. nicht kann...

          Man liest sich, H2O

          --
          #*~!:     Download Opera
          Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                    Decoder    -    Infos
  3. Hallo,

    Ich habe nun mal ein kleines JavaScript-Spiel erstellt, bei dem man mit dem Cursor eine Strecke langfahren muss:
    http://h2o.pyrokar.lima-city.de/

    Ich finde die Idee sehr cool so die Leute auf die Opera Seite zu locken und seine 250 Besucher, die für eine kostenlose Opera Lizenz nötig sind zusammenzubekommen, Respekt ;-).

    Das Spiel ist darüber hinaus auch ziemlich witzig, obwohl man am anfang nicht kappier dass der Kursor an sich schon das Auto darstellen soll und deshalb lange darauf wartet, bis dieses erscheint.

    Grüße
    Jeena Paradies

    1. Hallo Jeena.

      Ich finde die Idee sehr cool so die Leute auf die Opera Seite zu locken und seine 250 Besucher, die für eine kostenlose Opera Lizenz nötig sind zusammenzubekommen, Respekt ;-).

      lol, jetzt hat's doch jemand herausgefunden ;)
      Ich habe dieses Opera-Banner erst seit 3 Tagen drin.
      Die Tage zuvor gab's immer ca. 5-10 Klicks pro Tag :-/

      Nunja... Jetzt habe ich das Spiel eingebaut und mein Opera-Affilate Score ist jetzt auf 110 hochgeschossen...
      Das es so schnell geht hätte ich auch nicht erwartet *gg*
      Es muss eben ein Anreiz da sein, damit User auf ein Banner klicken und so ist das glaube ich ideal gelöst *selbstlob*

      Das Spiel ist darüber hinaus auch ziemlich witzig, obwohl man am anfang nicht kappier dass der Kursor an sich schon das Auto darstellen soll und deshalb lange darauf wartet, bis dieses erscheint.

      *gg* Ach das ist das Problem, warum es manche User nicht verstehen...
      Ich schreibe bei der Anleitung noch eine Zeile rein:
      "Dein Mauszeiger ist dein Ferrari!" ;)

      H2O

      Vielen Dank,
      H2O

      --
      #*~!:     Download Opera
      Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                Decoder    -    Infos