Highscore speichern; Hash/Checksum; boost;



  • patrick246 schrieb:

    Dazu muss das Programm nicht open-source sein, das geht auch so. Selbst mit TLS kannst du nicht verhindern, dass jemand falsche Daten an den Server sendet.

    Der Server spielt deshalb auch das Spiel und zwar mit den Eingabedaten, die vom Client kommen. Falls der Server zum selben Ergebnis kommt, dann ist der Highscore gültig. Falls also jemand trotzdem den Highscore manipulieren will, dann muss er schon einen Bot dafür schreiben.

    Wie ist das gemeint, das selbe Ergebnis mit den Eingabedaten?



  • Ich weiß nicht, wie dein Spiel funktioniert, aber generell werden die Eingabedaten zum Server übermittelt, d.h. Spieler hat zum Zeitpunkt X die Taste Y gedrückt. Dann spielt der Server das Spiel mit diesen Daten durch, für Zufallswerte muss natürlich noch der Seed übermittelt werden, damit das ganze funktioniert. Und falls mit den Eingabedaten beim Server der gleiche Highscore herauskommt, ist er gültig.


  • Mod

    HarteWare schrieb:

    Wie ist das gemeint, das selbe Ergebnis mit den Eingabedaten?

    Always-online DRM! Das Spiel wird nicht auf dem Clientcomputer gespielt, sondern auf dem Server. Der Client übernimmt nur die grafische Darstellung, der Server die Spiellogik. So bist du davor geschützt, dass die Spiellogik vom Spieler manipuliert wird. Manipulationen sind so nur noch auf wenige und aufwendige Arten und Weisen möglich, z.B. durch Manipulation der Grafikengine, wie Wallhack oder alle Gegner neongrün leuchten lassen.

    Abgeschwächte Variante: Anstatt des Highscores wird ein Replay hochgeladen, welches die Eingaben des Spielers enthält, nicht (nur) den Zustand des Spiels auf dem Client. Der Server zieht anhand der Eingaben den Spielverlauf nach und berechnet daraus selber den Highscore. Ist ein wenig einfacher zu manipulieren, aber nicht viel einfacher. Entlastet aber deinen Server und riecht weniger stark nach Nutzergängelung.



  • Hallo,

    danke für eure Antworten.

    Es handelt sich um ein Memory spiel. D.h., spiellogik wäre z.B. eine Reihe von Karten ID's in der Reihenfolge, in der sie aufgedeckt wurden. Sowas könnte man aber denke ich auch relativ leicht fälschen, wenn man die Formel zur Berechung des highscores kennt (was bei open source der Fall wäre).

    D.h. ich müsste also auf dem Server eine session starten, und nach jedem Spielzug die Daten (zB welche Karte wurde aufgedeckt) übermitteln. Bei einem simplen Spiel wie Memory könnte man das dann doch auch fälschen.

    Aber ok, es ging mir ja ums Prinzip, damit ich einen kleinen Schimmer davon have wie sowas funktionieren könnte.

    Es wär ja auch blöd, wenn man nur mit Internetverbindung spielen kann.

    Da das Spiel aus Urheberrechtlichen Gründen eh nur für den privaten Gebrauch geeignet ist, muss ich mir vermutlich keine Gedanken um gehackte Highscores machen, realistisch gesehen. Ich bin halt nur so wissbegierig^^

    LG
    HarteWare


  • Mod

    Bei solch einer Art Spiel musst du die Spiellogik tatsächlich komplett auf dem Server haben. Wenn das Spiel auf dem Rechner des Nutzers laufen würde, könnte dieser ja einfach im Speicher gucken, welche Karte welche ist, selbst wenn sie noch zugedeckt ist. Wenn aber das Spiel selbst auf dem Server läuft, dann erfährt der Nutzer erst nach Aufdecken einer Karte, welche dies ist und der Server kann sicherstellen, dass der Nutzer sich an die Regeln hält.

    Es wär ja auch blöd, wenn man nur mit Internetverbindung spielen kann.

    Tja, ist eben so, wenn du einen manipulationssicheren, weltweiten Highscore möchtest.


Anmelden zum Antworten