Python Spielstand speichern?
Ich programmiere gerade ein Spiel in Python. Wenn es fertig ist, soll es natürlich den Spielstand speichern. Braucht man dafür eine Website, einen Server oder kann man es sogar lokal bei den Spielern speichern? Ich meine, wenn man den Spielstand bei ihnen lokal speichert, ist es am einfachsten, aber sie können einfach die Datei, wo der Spielstand gespeichert ist, bearbeiten und den Spielstand fälschen. Kann man das verhindern oder gibt es eine andere Lösung, als den Spielstand lokal, auf einem Server oder auf einer Website zu speichern? Lokal müsste es ja irgendwie gehen, weil die Entwickler der Offline Spiele es auch geschafft haben, den Spielstand zu sichern...
Wie erstellt man so einen Server?
2 Antworten
Man kann niemals dem Client vertrauen. Wenn es absolut schummelsicher sein soll, brauchst du einen Server.
Wie du willst, du brauchst nur einen Rechner, mit dem das möglich ist.
Ja lul
Ich weiß nicht, wie man so einen Server erstellt, deshalb kann ich ihn nicht so erstellen, wie ich will
https://docs.python.org/3/library/socketserver.html
Damit kannst du spielen.
Aber um 100%ige Sicherheit vor Schummlern zu haben muss das spiel vollständig serverseitig laufen. ich weiß nicht, ob du das willst.
Du brauchst ja auf jeden Fall einen Server wenn du dein Spiel veröffentlichst. Wo soll es sonst laufen? Daher ist das beste wenn du die Spielstände lokal speicherst.
Man kann es auch im Client speichern, z.B. über Cookies oder local storage, aber das lässt sich theoretisch manipulieren. Wenn du die Daten verschlüsselst kannst du das zwar umgehen, aber warum der Aufwand? Einen Server brauchst du sowieso.
Willst du nur mit deinen Kumpels spielen oder soll das Spiel öffentlich sein?
Grundsätzlich erstellst du einen Service mit deinem Python Script das auf einem bestimmten Port Anfragen entgegennimmt. Über HTTP oder auch Sockets.
Wenn du nur im kleinen Kreis spielen kannst, kannst du einen lokalen Server benutzen, das Spiel aslo auf deinem Rechner laufen lassen. Ansonsten musst du dich nach einem Hoster umsehen, z.B. ein Cloudhoster wie Digitalocean. Eine ausführliche Dokumentation kann ich dir hier nicht geben, dazu findest du aber viele Infos im Internet.
Lokal ist es kostenlos, oder? Gibt es auch günstigere oder kostenlose Hoster?
"Lokal" bedeutet es läuft auf deinem eigenen Rechner, also ja. Das Problem hier ist dass dein Rechner immer laufen muss. Ausserdem hat er eine dynamische IP Adresse. Aber das kann man zum Beispiel mit einem Dynamischen DNS Service umgehen. Ist aber nichts für den professionellen Bereich.
Hier ist eine Liste von kostengünstigen Hostern https://www.hostingadvice.com/how-to/best-python-hosting/
Wie erstellt man so einen Server?