Ist es unprofessionell, Spielressourcen dem offenen Auge zu überlassen?

43

Ich habe immer noch Probleme beim Packen meiner Ressourcen, nachdem ich komplizierte APIs und im Grunde genommen nur Zip-Dateien durchgearbeitet habe, die mein Gehirn anstrengen, dachte ich, ich könnte das Spiel auch mit den für das menschliche Auge sichtbaren Ressourcen in einen einfachen Ordner packen.

Wäre das unprofessionell? Ich persönlich habe noch nie zuvor gesehen, dass Spiele dies tun. Das würde bedeuten, dass der Spieler einfach das bearbeiten könnte, was er im Spiel will, wie zum Beispiel map1.txt und irgendwo ein X hinzufügen, um eine Wand zu erstellen, oder das Player-Sprite ändern zu einem Pony in MS PAINT.

Bugster
quelle
30
Man denke nur an eine Modding-Community :)
Orin MacGregor
1
Sind Sie ein professioneller Spieleentwickler mit einem Budget? Ich denke, es ist in Ordnung, wenn Sie nicht vorhaben, mit diesem Spiel viel Geld zu verdienen. Ich habe aber ein paar Tipps. Wenn Sie sich besser fühlen, habe ich gespeicherte Dateien in X-COM / UFO Defense
bearbeitet
6
@ArthurWulfWhite: Ich denke, anstatt Geld zu verdienen oder nicht, ist der Aufteilungspunkt, was die Implikation von modifizierten Ressourcen für das Spiel ist. Beim MMORPG kann ein modifizierter Ressourcen / Client bestimmten Spielern einen unfairen Vorteil verschaffen, sodass Sie dies so weit wie möglich verhindern möchten. Für viele andere Spiele macht es ein Modding-freundlicher Client attraktiv, dass sich die Modding-Community um Ihr Spiel herum entwickelt, und wird im Allgemeinen als eine gute Sache angesehen.
Lie Ryan
1
Der Modding-Aspekt in Quake (1) wurde sehr gut gehandhabt, ohne die Modelle und BSP-Dateien dem Gelegenheitsspieler auszusetzen. Ich denke nicht, dass es schlecht ist, Dinge zu verbergen, während sie dennoch leicht zugänglich sind. Ich mochte die Tatsache, dass ich gespeicherte Dateien in X-COM bearbeiten konnte, ich sah das als Feature. Es wäre jedoch albern, wenn es eine Textdatei mit dem Namen money.txt gäbe, in der ich einfach eingeben könnte, wie viel Bargeld ich anfangen möchte, da dadurch die Grenze zwischen einer Sandbox und einem Spiel verwischt wird.
Wolfdawn
2
Ich mag die Introversion- Methode: Legen Sie die Dateien in umbenannte ZIP-Dateien, z sound.dat. Wenn Sie nicht komprimierte Ordner mit ein paar hundert Dateien verwenden, ist die (De-) Installation ziemlich ärgerlich.
Tobias Kienzler

Antworten:

44

Nein, das ist es nicht. Das Ändern der Spieldaten wird als Modding bezeichnet. Dies ist eine gängige Praxis und wird oft als positiver Effekt angesehen. Tatsächlich ist es gut, die Spieldaten so transparent wie möglich zu halten und sie so problemlos wie möglich zu bearbeiten. Dies gilt umso mehr, wenn Sie mehr "fortgeschrittene" Spieler als Zielgruppe auswählen.

Der Grund, warum Sie nicht viele AAA-Spiele finden, die eine einfache Ordnerstruktur für ihre Daten verwenden, ist, dass sie benutzerdefinierte optimierte Archivformate verwenden, um die Ladezeiten zu verbessern. Der Nachteil ist die verringerte Transparenz und die zusätzlichen erforderlichen Werkzeuge in der Toolchain. Für kleinere oder 2D-Spiele sind diese beiden Dinge normalerweise mehr wert als die verbesserte Ladezeit.

Stellen Sie einfach sicher, dass das, was die Leute sehen, nicht nur ein riesiges Durcheinander ist :) Ordnen Sie die Dateien in einer geeigneten Ordnerstruktur.

API-Biest
quelle
Die Dinge sind auch verpackt, um eine Form der Abschreckung von Diebstahl zu sein (obwohl letztendlich unwirksam, wenn gedrückt)
CobaltHex
15

Neben anderen Antworten sollten Sie zwei wichtige Aspekte berücksichtigen:

Verwöhnende Überraschungen
Angenommen, ich bin in der Mitte des Spiels und entdecke den Ordner "Video". Neugierig, ich klicke auf eines und sehe zufällig die letzte Zwischensequenz des Spiels.

Herausforderung verlieren Das
gleiche Szenario, aber ich finde, dass das gespeicherte Spielformat einen Wert für "Gold" hat. Ich ändere es von 250 auf 999999999 und es funktioniert. Plötzlich ist Ihre sorgfältig ausgearbeitete Schwierigkeitskurve, die den Spielspaß maximiert, verschwunden.

Beides kann dazu führen, dass jemand das Interesse an dem Spiel verliert, teilweise oder sogar ganz. Dies könnte zu einem geringeren Gesamteindruck führen, wie gut das Spiel war (unfair, aber wahr).

Denken Sie über diese Dinge in Bezug auf Ihre Zielgruppe nach - insbesondere jüngere Spieler können ihren eigenen Spaß verderben, ohne wirklich zu verstehen, dass sie dies tun.

Auch wenn Sie das Modden fördern möchten, möchten Sie die Benutzer möglicherweise davor schützen, ihre eigenen Erfahrungen mit dem Spiel "aus Versehen" zu zerstören.

MGOwen
quelle
4
Genau richtig. Es tut nicht weh, wenn Sie einige Hürden überwinden müssen, bevor Sie das Spiel modifizieren können. +1 für das Videoszenario
Wolfdawn
14

Vielleicht ist unprofessionell das falsche Wort. Es hängt wirklich vom Spiel ab, ob es eine schlechte Sache ist, Dateien offen zu lassen oder nicht.

Für ein einfaches Einzelspielerspiel werden dich Spieler und Modder lieben. Sie würden ihnen die Möglichkeit geben, Ihr Spiel einfach zu ändern und das zu tun, was sie wollen. Und denken Sie daran, es wird immer Modder für ein Spiel geben, egal wie klein das Spiel ist. Viele Gamer fühlen sich beleidigt, wenn Modding schwierig ist. Schließlich haben sie Ihr Spiel gekauft und sollten in der Lage sein, das zu tun, was sie wollen.

Auf der anderen Seite ist das einfache Bearbeiten von Spiel-Assets für ein Multiplayer-Spiel schlecht, da es als Betrug betrachtet wird. Böswillige Spieler können Inhalte ersetzen, um Feinde auffälliger zu machen, Wände durchsichtig zu machen usw. Obwohl Ihr Spielcode wirklich sicherstellen sollte, dass keine Manipulationen an den Assets vorgenommen wurden, hat der Ansatz des "Asset-Pakets" den Vorteil, dass er diese Aktivität abschreckt (Sicherheit durch Dunkelheit).

SomeWritesReserved
quelle
1
Wenn Sie gut genug sind, um einen Prüfsummentest zu umgehen, können Sie auch mit verpackten Assets herumspielen. Ich denke nicht, dass Verpackung sicherer ist.
mmyers
11

Es gibt eine einfache Lösung dafür. Sie können die Erweiterungen in einer Eingabeaufforderung einfach im Batch umbenennen, indem Sie so etwas wie verwenden

rename *.txt *.map

Und legen Sie sie dann in einen \ map-Ordner

Sie können über Windows, auf dem cmd ausgeführt wird, auf eine Eingabeaufforderung zugreifen

Dies wird Modder, die wissen, dass sie das Spiel modifizieren wollen, nicht davon abhalten und wird einen weniger schlampigen Eindruck bei Leuten hinterlassen, die das Spiel nur spielen wollen, ohne dass der gesamte Inhalt herumhängt.

Ja, es kann weiterhin bearbeitet werden. Es ist nur unwahrscheinlicher, dass die Leute es bemerken.

Um Eric Robertsons Kommentar zu beantworten

Wenn Sie den Inhalt Ihres Spiels ordnungsgemäß vor Spielern verbergen möchten, können Sie für diese Textdateien die RSA-Verschlüsselung verwenden und sie in einer Textdatei zusammenführen, während Sie gerade dabei sind. Dies sollte nicht zu viel Mühe sein, obwohl ich vermute, dass es weit über das Übertreiben hinausgeht.

wolfdawn
quelle
1
-1 Das ist nicht wirklich ein "Update". Die Ressourcen stehen dem Auge noch zur Verfügung.
Erick Robertson
6
@Eric Robertson Nun, das könnte man auch über das Packen des Quake (1) -Stils sagen. Es gibt keine magische Lösung, um die Vermögenswerte vollständig zu verbergen. Dies soll sie nur vor dem Gelegenheitsspieler verbergen und die von ihm angesprochenen Probleme etwas umgehen. Das heißt, wenn Sie sie in eine Ordnerstruktur oder ein Asset-Paket einfügen, sind die Assets auch nicht vorhanden (für das Auge verfügbar), es sei denn, Sie verwenden Verschlüsselung.
Wolfdawn
Ich weiß, dass Dateierweiterungen unter Linux keine Rolle spielen, aber sind Sie sicher, dass dies unter Windows funktionieren würde?
JCORA
1
@Bane Ein Dateiname spielt keine Rolle, probieren Sie dies aus, benennen Sie eine TXT-Datei in ZIP, BMP oder Oxyz um und öffnen Sie sie erneut mit dem Editor. Dateinamen spielen nur eine Rolle, wenn Sie Dateien auf Ihrem PC durchsuchen, z. B. .xyz ist ein bestimmtes Symbol zugeordnet. Wenn Sie eine Datei mit xsoftware öffnen möchten, werden standardmäßig nur * .x-Dateien angezeigt. Notepad wird angezeigt. txt-dateien, mspaint zeigt gifs, jpegs, bmps, pngs, tiffs, icos und so weiter an. Dateinamen sind nur eine praktische Konvention (damit Sie die Daten in der Datei nicht untersuchen und analysieren müssen, um die Art der Datei zu identifizieren) Inhalt
wolfdawn
1
Danke fürs Erklären! Dann scheint Windows in dieser Domäne nicht viel anders zu sein als Linux
jcora
3

Wenn es jemals unprofessionell war, kann es nicht mehr sein. Schon früh verwendeten Spiele ihre eigenen Paketformate, hauptsächlich um ihr geistiges Eigentum (Intellectual Property, IP) zu schützen.

Sie können einige Einschränkungen wie Fragmentierung und unnötige Funktionsaufrufe des zugrunde liegenden nativen Dateisystems überwinden , indem Sie alle Ressourcen in ein einziges Archiv packen. Dies verringert die Wahrscheinlichkeit von Fragmentierungsereignissen, wenn das Paket auf dem Client-PC bereitgestellt wird.
Im schlimmsten Fall kann es vorkommen, dass auf Ihren Festplattensektoren winzige einzelne Dateiressourcen verstreut sind. (Mit der Ankunft von SSDs wird dieser Punkt oft umstritten)

All diese Vorteile können aber auch mit dem kostenlosen (Unix) uralten .tarArchivformat erzielt werden.

Durch die Verwendung Ihres eigenen Paketformats können Sie außerdem Einschränkungen wie fehlende Versionierung, Datei-Hashes, Kodierung und Verweise / Links in Dateien überwinden, um nur einige zu nennen.

Abschließend möchte ich für Transparenz in der Indie-Entwicklung eintreten, es sei denn, Sie müssen Ihre IP ausdrücklich schützen.


Was die großen Punkte angeht, die hervorgehoben werden durch MGOwen: Um Überraschungen zu vermeiden , können Sie die Dateierweiterung umbenennen, Dateiattribute ändern, ungewöhnliche Medienformate verwenden, den Medienheader herausschneiden und an einem anderen Ort speichern usw. Um zu verhindern, dass die Herausforderung verloren geht, verwenden Sie eine binäre Serialisierung Writer zum Speichern des Spielstatus, ggf. mit zusätzlichen Verschlüsselungs- und Täuschungsvariablen.

Haftungsausschluss: Ich bin kein Spieleentwickler. Betrachten Sie diesen Beitrag nur als Ausgangspunkt ...

Lorenz Lo Sauer
quelle
1
"Um das Verlieren der Herausforderung zu verhindern, verwenden Sie einen binären Serialisierungs-Writer, um den Status Ihres Spiels mit zusätzlichen Verschlüsselungs- und Täuschungsvariablen zu speichern, wenn Sie müssen." Wenn Leute schummeln wollen, werden sie schummeln. Mit einem In-Memory-Debugger können Sie herausfinden, welche vier Bytes im Speicher mit Ihrem Gold korrelieren, und bei Bedarf Änderungen daran nachverfolgen.
Random832
1
@ Random832 Amen dazu.
Lorenz Lo Sauer
Deine Antwort ist falsch. Der Zugriff auf den Inhalt von 6000 Tinny-Dateien ist meiner Erfahrung nach 5- bis 10-mal langsamer als der Zugriff auf denselben Inhalt aus einer Datei. In einem Fall, in dem der Ladevorgang auf einer SSD 5 Sekunden dauert, springt der Ladevorgang von einer normalen Festplatte, die dieselben Daten in bearbeitbare Dateien zerlegt, auf über 30 Sekunden (Festplatte und SSD). Aus irgendeinem Grund ist der Anstieg bei der SSD stärker als bei der HDD. (Kein RAID in beiden Fällen)
Coyote
@Coyote Ich hatte den Eindruck, dass ich mich für den gleichen Punkt in der Post ausgesprochen habe ...? Fragmentierung (dh Hardware-Controller-Einschränkungen, physikalische Einschränkungen von Platten ...) + viele Dateisystem-API-Aufrufe (oft durch Wrapper) = Langsam
Lorenz Lo Sauer
Dieser spezielle Satz ist dann falsch: "Mit dem Eintreffen der SSDs ist dieser Punkt umstritten"
Coyote
1

Es ist einfach zu reparieren und ansonsten findet die Suchindizierung Ihre finalen Videos usw. Also,

Für Datendateien: Bits mit xor spiegeln

   realByte_cpp = readByte_cpp ^ 0x44; // xor

"Gold: 250" vor GREP verstecken.

Codiere einfach mit dem gleichen (zufälligen) xoder Wert.

Versuchen Sie Folgendes, um Szenen von Gelegenheitsbenutzern fernzuhalten: Machinarium übersetzte die Dateinamen so, dass \ videos zu \ 0101 wurde und alle Dateien eine 8-stellige Binärziffern-ID gefolgt von .101 aufwiesen, um die Dateizuordnungen zu beenden.

user1212212
quelle