Spieldaten vor Spieler verstecken?

13

Ich arbeite an meinem ersten (C ++) Spiel und möchte ein komponentenbasiertes Design verwenden. Ich habe in letzter Zeit viel darüber gelesen und gestern habe ich beschlossen, Objektdaten in externen JSON-Dateien zu speichern, um mehr Flexibilität und einfachen Zugriff zu ermöglichen.

Dann wurde mir klar, dass das Belassen dieser Dateien im Verzeichnisbaum des Spiels es den Spielern sehr einfach ermöglichen würde, alles zu ändern, was sie wollen.

Ich mache mir keine Sorgen, den Code Entwicklern zu zeigen, da das Spiel Open Source sein wird, aber ich fürchte, ein unerfahrener Spieler könnte das Spiel unterbrechen oder zumindest den Spaß ruinieren.

Vermisse ich etwas? Was ist die Richtlinie zum Ausblenden von Spieldaten (in Open Source-Spielen)? Ist es normal, alles für jedermann zugänglich zu machen?

Wenn nicht, was ist ein guter Weg, um die Daten zu verbergen?

Marco Giancotti
quelle
3
Normalerweise ist die Möglichkeit, das Spiel zu ändern, eine Funktion und kein Fehler, insbesondere für Einzelspieler-Spiele.
Jprete
8
Ich würde mich nicht wirklich darum kümmern. Deine Zeit ist besser für ein gutes Spiel. =)
Jari Komppa
1
Ich bin der Meinung, dass (fast) jeder, der ein Open-Source-Spiel herunterlädt, genug weiß, um tatsächlich Spaß daran zu haben, Spieldaten zu basteln und das Spiel zu brechen. Wenn es ein gutes Spiel ist, wird in kürzester Zeit ein Wiki angezeigt, in dem Ihr JSON-Format erklärt wird.
Nevermind

Antworten:

33

Wenn Spieler den Spaß basteln und ruinieren, würde ich sagen, dass das ihr Problem ist. Für Bastler ist es der halbe Spaß zu sehen, was kaputt geht.

Es ist, als ob man sich Sorgen macht, dass Spieler einen Gottmodus-Cheatcode verwenden, und sich Sorgen macht, dass der Spieler nicht herausgefordert wird.

Ich würde nichts weiter tun, als diese Konfigurationsdateien in eine ZIP-Datei zu packen (was Sie wahrscheinlich sowieso für Ladezeiten tun sollten) und sicherzustellen, dass Ihr Code mit beschädigten Daten ordnungsgemäß umgehen kann.

Tetrade
quelle
20

Ich fürchte, ein unerfahrener Spieler könnte das Spiel unterbrechen oder zumindest den Spaß ruinieren.

Wenn sie sich in die Spieldaten einmischen, ist dies das, was sie als "Spaß" betrachten. Sie müssen sie nicht davor schützen. Entity-Komponentendaten sind schließlich kaum ein Spoiler. Wenn Sie Dialog- oder Questdaten hätten, wäre dies möglicherweise ein Problem, aber wahrscheinlich nicht. Die meisten Spieler wissen nicht einmal, wo sie nach solchen Dingen suchen sollen, ganz egal, ob sie diese absichtlich durchsuchen oder bearbeiten.

Mein Rat ist, es zu komprimieren und die Dateierweiterung umzubenennen. Dies wird den Casual-Look abhalten, aber es wird nicht schwierig für Sie, mit zu arbeiten. Sie können so etwas wie PhysicsFS verwenden , um mit den Dateien zu arbeiten.

Kylotan
quelle
5
Ja. Ich erinnere mich, wie ich Colonization auf Amiga gespielt habe. Die Parameter der Einheiten wurden in einer einfachen Textdatei mit der Standarderweiterung gespeichert txt. Nachdem ich ziemlich viel gespielt hatte, beschloss ich, das Spiel durch Anpassen dieser Parameter zu erschweren. Später teilte ich diese Einstellungen mit Freunden. Es hat Spaß gemacht ...
Liori
3

Sie könnten die Daten mit einem symmetrischen Verschlüsselungsschema (AES) verschlüsselt speichern , aber das ist sinnlos: Die Software ist OpenSource , sodass jeder den Schlüssel lesen und die Daten entschlüsseln kann. Dies würde den Gelegenheitsspieler einfach davon abhalten, zu betrügen.

Und es wäre auch in Closed-Source-Projekten irgendwie sinnlos, da es ziemlich einfach ist, den Schlüssel für die Spiel-Binärdatei zu finden.

Sie haben also zwei Möglichkeiten:

  1. lass das Zeug einfach unverschlüsselt (aber sammle zumindest den md5-Hash jeder Datei, damit du ihn zur Laufzeit auf etwaige Schäden in der Distribution deines Spiels überprüfen kannst);
  2. Gehen Sie in den Closed-Source-Modus , verschlüsseln Sie die Daten (mit einem geheimen, umkehrbaren Mehrschritt-Algorithmus wie String-Umkehr + Byte-Austausch + x oder mit einem konstanten String usw.) und verschlüsseln Sie dann alles mit AES. Es wird für jeden schwieriger sein, die Daten wiederherzustellen. Viel schwerer.
gd1
quelle
1
Auch Ihre Closed-Source-Methode ist nicht allzu schwierig. Dieselben Leute, die routinemäßig die für den Kopierschutz verwendeten Schemata brechen, können wahrscheinlich auch das brechen. Der Hauptunterschied ist, dass sie sich nicht darum kümmern.
Jprete
@jprete: sicher. Es ist nur eine Frage der Zeit, aber die Zeit ist für die Menschen von entscheidender Bedeutung. Manchmal ist es gerade genug, sie schwierig und nicht rentabel zu machen.
gd1
3

Ich würde es verlassen. Es gibt eine riesige Mod-Community und Spieler mögen das Ändern / Modden von Spielen. Wenn sie etwas kaputt machen, liegt es an ihnen. Sie konnten immer neu installieren.

Erleichtert auch anderen Entwicklern die Arbeit mit.

user697111
quelle