Demo (und echtes Spiel) Schutz

9

In ein paar Monaten habe ich vor, das (hoffentlich kommerzielle) Spiel, an dem ich arbeite, der Öffentlichkeit (Internet) vorzuführen. Die Sache ist, neben Screenshots und einem Trailer (zum Beispiel Feature-Funktionalität), wie man eine Demo richtig macht, die geschützt werden kann?

Lassen Sie mich ein bisschen erklären. Das Spiel ist eine Art plattformübergreifendes Rollenspiel. Im Moment habe ich das Spiel so codiert, dass es Karten-, Charakter- usw. Daten aus Dateien einliest und alles entscheidet, was es mir ermöglicht, die Welt / Geschichte nur durch Konfigurationsdateien und Hinzufügen von Assets zu erweitern.

Das heißt, ich mache mir Sorgen, wenn ich eine Demoversion des Spiels mache, das heißt das echte Spiel, aber dann werden alle Assets / Konfigurationsdateien / etc entfernt, so dass es nur eine Demo mit der allerersten Karte / Ebene ist. Gibt es eine Möglichkeit, sich vor jemandem zu schützen, der gerade das Datenpaket des echten Spiels veröffentlicht (wenn es veröffentlicht wird), und jetzt kann plötzlich jeder mit der Demo-EXE das echte Spiel spielen?

Der Demo-Schutz ist irgendwie meine erste Priorität, da ich die Demo für eine Weile da draußen haben möchte, bevor das echte Spiel veröffentlicht wird. Ich kann später (vor der Veröffentlichung, aber noch später ..) jederzeit entscheiden, welche Schutzmethoden ich aus dem realen Spiel auswähle.

Ich denke, es läuft darauf hinaus, dass es sowieso eine echte Möglichkeit gibt, das Spiel zu schützen (ich möchte die Benutzer nicht darauf beschränken, Online-Überprüfungen durchführen zu müssen, da dieses Spiel plattformübergreifend ist und kein Internet benötigt, um es zu spielen). Das Letzte, was ich tun möchte, ist, mich mit legitimen Benutzern anzulegen. Und ich möchte die Assets möglichst offen lassen, da dies nur bedeutet, dass Ordner einfach gepatcht werden und Modder ein wenig herumspielen können.

Ich meine, selbst wenn ich ein grundlegendes Schlüssellizenzsystem einrichte, was hindert eine Person wirklich daran, ihren Schlüssel und eine Kopie des Spiels irgendwo hochzuladen? Ich habe Leute gesehen, die über häufige Updates gesprochen haben, damit sich die Binärdatei ändert und sie das Spiel neu knacken müssen. Aber wer muss das Spiel überhaupt knacken, wenn Sie 1 legitime Kopie erhalten und sie dann verbreiten können?

Ich bin mir nicht sicher, ob mir vielleicht etwas fehlt, ich versuche nur sicherzustellen, dass ich es nicht bin. Kommt es wirklich nur darauf an:

  1. Schlagen Sie den grundlegenden Schlüssellizenzschutz darauf.
  2. Entfernen Sie Asset- / Konfigurationsdateien aus der Demo
  3. Hoffe auf das Beste

Jeder Rat wird geschätzt! Ich bin sehr neu in all dem; -;)

Entschuldigung, wenn dies ein Duplikat ist! Konnte nicht viel über das Demokonzept finden.

Zyaga
quelle
Als ausführbare Datei freigeben, die nur die Datei der ersten Ebene und keine der anderen liest? Es ist eine Demo, nicht das Endprodukt. Vielleicht könnten Sie herausfinden, warum die ausführbare Demo-Datei plötzlich über alle Funktionen verfügt, indem Sie ein "Datenpaket" hinzufügen, was auch immer das ist? Es klingt ehrlich gesagt so, als wäre dieses Anliegen genauso legitim wie "Was ist, wenn jemand das vollständige Spiel an jemand anderen weitergibt?"
SpartanDonut
Code ist wirklich das vollständige Spiel, es sei denn, ich möchte einen Zweig oder so etwas machen. Ich meine, ich habe viel von der Funktionalität erledigt und die Demo, die ich erstelle, möchte etwas sein, das Benutzer auch nach der Veröffentlichung herunterladen und spielen können, bevor sie überhaupt kaufen. Ich denke, es ist in gewissem Sinne das gleiche wie das ganze Spiel. Ich frage mich immer noch, ob ich mit diesen 3 letzten Aufzählungspunkten auf dem richtigen Weg bin, auch wenn Sie nicht viel tun können. Tun Sie das einfach und hoffen Sie auf das Beste. x:
Zyaga

Antworten:

12

Haben Sie überlegt, so etwas wie ein Zeitlimit für die Demoversion der Engine fest zu codieren?

Die Sache ist, egal wie sehr Sie Ihre Demo schützen, das Spiel wird irgendwie raubkopiert, sobald es herauskommt. Ob mit der Demo oder nur mit dem Hauptspiel, es wird passieren, wenn das Spiel populär genug ist.

Leute, die nicht für Ihr Spiel bezahlen wollen, werden nicht für Ihr Spiel bezahlen.

Leute, die für Ihr Spiel bezahlen wollen, werden für Ihr Spiel bezahlen.

Dies gilt für alles, vom kleinsten Indie-Spiel bis zum größten Triple-A-Titel. Der einzige Weg, dies zu umgehen, besteht darin, die Verbindung zu Ihren Servern nicht nur obligatorisch, sondern auch spielbezogen zu gestalten, dh ein MMO, und nicht die albernen Assassins Glaubensbekenntnis immer online DRM. Da Sie bereits gesagt haben, dass dies keine Option ist, schlage ich vor, dass Sie es annehmen.

Als unabhängiger Entwickler können Sie am besten mehr Umsatz erzielen, indem Sie mehr Augen auf Ihr Spiel werfen. Leute, die nicht zur Piraterie neigen, spielen Ihre Demo und kaufen dann entweder das Spiel oder nicht. Personen, die zur Piraterie neigen, können Ihre Demo spielen, die von Ihnen beschriebenen Assets finden usw. und das Spiel dann möglicherweise noch kaufen oder nicht.

Blechmann
quelle
Das ist ziemlich genau so, wie ich es erwartet hatte. Es ist etwas entmutigend oder scheiße nur, dass das der Fall ist, aber so rollt es! Ich denke, was ich tun kann, ist, den Code nur geringfügig zu verzweigen, damit Sie den Standardspeicher (überhaupt kein Lademenü verfügbar) und dann den harten Code spielen können, der, wenn das Spiel die Hauptkarte nicht erkennt (mit allen verfügbaren Grund- / Hauptfunktionen) darin), dann wird es beendet. Jemand könnte es knacken und es dazu bringen, die realen Daten abzuspielen, aber an diesem Punkt werden sie einfach das reale Spiel mit Seriennummer veröffentlichen und fertig sein. : P
Zyaga
2
Selbst wenn sie das Spiel nicht kaufen, haben sie möglicherweise Freunde, die das Spiel sehen, es mögen und es dann kaufen. Sie werden nicht in der Lage sein, die Piraterie zu stoppen (nicht einmal Anti-Piraterie-Lösungen mit großem Budget konnten sie wirklich stoppen), daher schlage ich vor, dass Sie sich darüber keine allzu großen Sorgen machen. Um es nicht zu einfach zu machen, können Sie etwas in die Demo-Exe fest codieren, sodass nur die erste Karte gelesen wird, egal wie viel vorhanden ist, oder ein Zeitlimit wie bei @ Amadeus9 angegeben, aber dann können Sie nur auf das Beste hoffen.
Christian
Danke @Christian! Mehr Feedback, dass dies der richtige Weg ist! ^ _ ^
Zyaga
@WeakDev, alle guten Punkte hier. Diejenigen, die den "übermäßig restriktiven" Weg gegangen sind, haben nur ihren Kundenstamm verletzt. Die Piraten haben es leicht, da alle DRM innerhalb von 24 Stunden umgangen werden. Konzentrieren Sie sich auf die Qualität des Spiels und Ihre Zielgruppe, und Sie können nichts falsch machen :)
Moo-Juice
Ich würde mich nicht zu sehr auf dich selbst einlassen, Weak Dev. Zunächst einmal denke ich, dass Sie einen ziemlich großen Schritt zur Linderung der Piraterie machen, indem Sie überhaupt eine Demo anbieten. Ich denke, ein großer Grund für die Piraterie von Indie-Spielen ist der Mangel an Gelegenheit, es auszuprobieren, bevor man den Sprung wagt, es zu kaufen. Ich denke, es ist ziemlich üblich, dass Nicht-Demo-Spiele als eine Art Test raubkopiert werden. Kaufen kommt überhaupt nicht in Frage, wenn die Person eine positive Erfahrung hat.
Sean O'Hollaren
5

Sie sind sich nicht sicher, was Sie in Ihrem Kommentar unter "Verzweigen" verstanden haben, aber es ist möglich, mithilfe der bedingten Kompilierung zwei verschiedene ausführbare Dateien (Demo und Vollversion) aus demselben Quellcodebaum zu erstellen . Sie können eine Option zur Kompilierungszeit festlegen, die nur die Möglichkeit enthält, die erste Episode abzuspielen. (In C ++ können Sie beispielsweise #ifdefBefehle für Code verwenden, der nur für die Vollversion bestimmt ist.) Die Demoversion kann mindestens die folgenden Gameplay-Effekte erzeugen:

  • Die Assets der ersten Episode werden in einer Zip-Datei gespeichert, und die Demoversion sucht vor dem Start nach einer digitalen Signatur in dieser Zip-Datei. Um Mods verwenden zu können, müssten die Spieler für die Vollversion bezahlen.
  • Mischen Sie die Codierung von Opcodes in Ihrem Skript-Bytecode neu, wenn Sie die Demo kompilieren.
  • Entfernen Sie die Handler für einen oder mehrere Skript-Opcodes, die nur in späteren Episoden verwendet werden, vollständig. Dies führt dazu, dass Versatzstücke in späteren Episoden fehlschlagen, selbst wenn die Überprüfung der Dateimodifikation und die Opcode-Codierung gepatcht sind.
Damian Yerrick
quelle
1
Ein weiterer Trick wäre, die MD5 / SHA-Hashes jeder einzelnen Demo-Level-Datei in die Demo-Version fest zu codieren. Dies hat den Vorteil, dass das Ändern eines einzelnen Hash- / Signaturschlüssels mit einem Hex-Editor zwar recht einfach ist, das Erhöhen der Anzahl der Hashes (um die Anzahl der spielbaren Level zu erhöhen) jedoch etwas schwieriger ist, zumindest wenn viele andere Daten folgen Sie.
Ilmari Karonen