Jump to content
Unity Insider Forum

sicherer Datenaustausch zwischen Game und Server


Recommended Posts

Hi@all,

hatte neulich eine kleine Idee für ein Online-RPG für Mibile-Geräte. Das Grundkonzept steht alles auch schon soweit. Dadurch dass dieses Spiel Online seien soll und Spieler in gewissem Maße auch miteinander interagieren können sollen habe ich mir nun auch einige Gedanken darüber gemacht, wie ich dieses Spiel möglichst gegen Cheater / Hacker absichern kann und bin zu folgender Lösung gekommen:

Da das Spiel Online ist müssen selbstverständlich die Spieler Identifiziert werden. Daher müssen sie sich bei der Erstnutzung logischerweise registrieren und danach einloggen. Der Server sendet dann dem Game eine Session-ID mit der die Identifikation stattfindet. Nun ist es wichtig, dass alle Berechnungen, welche die Serverdaten beeinflussen (direkt oder indirekt) nicht im Game sondern auf dem Server selbst ablaufen. D.h. wenn ich z.B. in dem Spiel einen "Add Exp"-Button hätte, der dem Spieler jedes mal beim draufklicken 50 Erfahrungspunkte gibt, dann sende ich dem Server nicht die Anzahl der Erfahrungspunkte, sondern nur die Info, dass der Spieler den Button geklickt hat. Alles weitere (das hinzufügen der Exp und evtl. der Level-Up) passiert dann auf dem Server und der sendet dann die neuen Daten (Exp, Level, etc.) wieder zurück an das Game.

Für den Datenaustausch wollte ich auf dem Server eine REST-API mit PHP ( +Framework) und MySQL erstellen. Die Daten würden selbstverständlich verschlüsselt übertragen werden.

So... nach dieser etwas langatmigen Erklärung ist meine Frage eigentlich nur, ob das so gemacht werden kann oder ob Unity (oder vielleicht auch ein 3.-Anbieter) für so einen Fall schon selbst eine gute Lösung parat hält?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Seyshiro:

ob das so gemacht werden kann

Klar, warum nicht. HTTP(S) als Basis ist natürlich nur sinnvoll, wenn's keine Echtzeitanforderung gibt, wie Spielerposition oder so. Ansonsten aber kein Ding.

vor 1 Stunde schrieb Seyshiro:

ob Unity (oder vielleicht auch ein 3.-Anbieter) für so einen Fall schon selbst eine gute Lösung parat hält?

Naja, REST-APIs sind ja deswegen so beliebt weil sie so simpel sind. Da erstellst du eine HTTP-Anfrage mit Methode (GET, POST, DELETE, ...), hängst ein Payload dran und schaust was für ein Payload zurückkommt. Da braucht man keine besondere Bibliothek für - Für die HTTP-Anfragen nimmste UnityWebRequest und am einfachsten (und idR auch am sinnvollsten) für die Payloads ist ein JSON-String, den du z.B. mit Unitys JSONUtility erstellen bzw. lesen kannst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...