Warum bleiben im Endspiel zusätzliche Vermögenswerte übrig?

28

Ich habe gerade darüber gelesen, was in den Dateien für No Man's Sky entdeckt wurde, eine Menge Dinge, die nicht verwendet wurden oder für das Spiel relevant waren. Ich habe vor kurzem auch gelesen, dass die E3-Einstellungen in den Watch Dogs-Dateien verbleiben. Warum belassen Spieleentwickler alte und nicht verwendete Dateien im endgültigen Spiel?

Sicherlich nimmt dies nur zusätzlichen Platz auf einer Disc ein und bedeutet, dass mehr Daten heruntergeladen werden müssen, wenn Sie das Spiel herunterladen?

Haben die Entwickler auch keine Angst davor, was die Leute finden könnten?

Jay P
quelle
7
Im Allgemeinen werden nicht genügend Daten verwendet, um das Löschen zu rechtfertigen. Und manchmal kann das Löschen dieser "unbenutzten" Dateien anderen Spielobjekten Probleme bereiten, die Teile von "unbenutzten" Dateien verwenden. Ich denke, es kommt nur auf die Termine an, die eingehalten werden müssen, und auf die Tatsache, dass im letzten Moment Inhalte gekürzt werden können.
Ryan White
10
Als Randnotiz ist der Schneidraumboden voll von Beispielen dafür. tcrf.net/The_Cutting_Room_Floor
drawoc
2
1) Niemand hat daran gedacht, sie zu löschen. 2) ja 3) Nr.
user253751
Ein anderes Beispiel ist Dota2. Nicht nur die Entwickler hinterlassen eine Ressource, sie enthalten auch unvollständige Funktionen, die für mögliche zukünftige Versionen von Bedeutung sind. ZB neue Charaktere, Gegenstände oder Fähigkeiten. So können Leute, die die Binärdatei zerlegen, zumindest einige der möglichen zukünftigen Nachrichten über das Spiel sehen (bemerkenswertes Beispiel: Der Pit Lord / Underloard-Charakter, der vor einigen Tagen im Code zu sehen war, wurde vor einigen Tagen offiziell angekündigt).
Bakuriu

Antworten:

35

Wichtige Spiele verwenden eine sogenannte Build-Pipeline. Dies ist wie ein weiterer Satz von Tools, mit denen der Spielinhalt für alle verschiedenen Distributionen erstellt wird. Multi-Plattform-Spiele wie No Man's Sky und Watch_Dogs verwenden auf jeden Fall unterschiedliche Assets für die verschiedenen Plattformen. So wie ich es sehe, gibt es zwei mögliche Antworten auf Ihre Frage.

  1. Die Entwickler haben vergessen, bestimmte Assets aus der Pipeline zu entfernen, und sie wurden mit dem eigentlichen Spiel gebündelt.

  2. Die Entwickler haben absichtlich einige "unbenutzte" Ressourcen im Spiel für die spätere Verwendung während eines Patches oder Updates belassen, da sie die Frist nicht einhalten konnten. Beispiel Teufelsgrube aus The Witcher 3.

Uri Popov
quelle
16
3. Absichtlich platzierte "unbenutzte Assets", damit Modder / Poweruser sie finden, um einen Blick auf kommende Releases zu werfen. Ähnlich wie # 2, außer dass der Inhalt möglicherweise nicht einmal in diesem bestimmten Titel oder in zukünftigen Patches verwendet wird.
Kroltan
4
+1 für Kroltans # 3. IIRC The Witcher 3 zeigt ein Beispiel für ein Osterei, das in nicht verwendeten Inhalten versteckt ist. Es gab einen geheimen Bereich, in dem Sie das Spiel modifizieren mussten, um ein Foto der Entwickler oder ähnliches zu erhalten.
Milch
3
"Forgot to remove" ist keine sehr gute Beschreibung. Die Entwickler wissen möglicherweise, dass sie die Verwendung eines Assets entfernt haben. Aber es ist möglich, dass ein anderes Team mit der Nutzung des Assets begonnen hat. In einem solchen Fall überwiegen die möglichen Kosten für das Entfernen (das vollständige Unterbrechen eines Spiels) bei weitem den Vorteil des Entfernens.
Aron
33

Es kann schwieriger sein, als Sie denken, den gesamten Inhalt zu finden, auf den verwiesen wird, in einem großen Spiel, an dem mehrere Personen arbeiten. Auch wenn explizite Tools vorhanden sind, um zu helfen (wir haben solche Tools bei ArenaNet erstellt. Jeder, der Unreal verwendet, hat Zugriff auf die Unreal-Version dieser Tools. Bungie hat Tools, die dasselbe tun und sogar einen Vortrag darüber halten usw.).

Es gibt verschiedene Möglichkeiten, wie auf Inhalte verwiesen werden kann, um solche Systeme zu umgehen. Dies geschieht im Allgemeinen einfach dadurch, dass auf Inhalte verwiesen wird, die das System nicht nachverfolgen kann (z. B. durch Erstellen eines impliziten oder fest codierten Verweises im Code auf ein bestimmtes Asset).

Selbst wenn Sie das Problem des Findens aller inhaltlichen Verweise gelöst haben, können Sie nicht feststellen, ob tatsächlich etwas verwendet wird . Vielleicht wird irgendwo in einem Skript auf ein Asset verwiesen, aber das Auslösungsvolumen für dieses Skript ist falsch in einer Wand platziert und der Inhalt kann daher niemals im Spiel erscheinen. Testen dies erschöpfend ist auch ziemlich schwierig.

Wenn automatisiert (oder Automaten kann ) Methoden zum Nachweis und zur Ausfilterung nicht verwendeter Inhalt scheitert, werden Sie mit dem altmodischen Weg links: menschliches Eingreifen. Menschen machen Fehler, schlechte Annahmen (sie denken vielleicht, dass eine Datei immer noch verwendet wird, obwohl dies nicht darauf zurückzuführen ist, dass jemand anders eine Änderung vorgenommen hat), und ja, sie entscheiden sich manchmal sogar dafür, absichtlich irrelevanten Inhalt als Ostereier im Spiel zu belassen. Es ist nur natürliche menschliche Fehlbarkeit, die dazu führt.

In der Regel reicht der Inhalt nicht aus, um die Nadel für Lade- oder Dateigrößenoptimierungen wirklich zu bewegen. Es gibt auch Tools zum Melden der größten oder langsamsten Assets in einer großen Build-Kette oder Engine. Der Fokus liegt jedoch darauf, die Auswirkungen der Haupttäter zu verringern und nicht jedes einzelne verschwendete Byte zu finden und zu lokalisieren. Meistens.

Josh
quelle
Beispiel für eine ungenutzte Datei als Osterei auf Arqade: Wo erscheint in Undertale das Lied, das
Philipp
1
Starbounl hat derzeit ein Problem, bei dem Sie kein "gekochtes Tentakel" herstellen können, da das Bit, das Ihnen das Rezept beibringt, gelöscht wurde. In der Zwischenzeit befinden sich die Asset- und Definitionsdateien dort und sehen so aus, als ob sie funktionieren sollten. Wenn man bedenkt, dass man dort häufig ein Rezept lernt, wie man verschiedene Gegenstände aus derselben Zutat herstellt oder aufnimmt (für Lebensmittel jedenfalls), ist es leicht zu erkennen, wie Teile aus Versehen aus dem Spiel ausgeschlossen werden können.
StarWeaver
1
Selbst wenn der gesamte Inhalt des auf der Festplatte enthaltenen Spiels nicht verwendet wird, können Benutzer bei einigen Spielen kostenpflichtige Zusatzmodule herunterladen, die der Anbieter möglicherweise nach der Herstellung der Festplatten erstellt hat . Wenn die Festplatte Texturen im Wert von zehn Megabyte enthält, die im Spiel auf der Festplatte nicht verwendet werden, aber in der Download-Version nützlich sind, kann die Download-Größe möglicherweise um zehn Megabyte verringert werden.
Supercat
1
MechCommander 2 war ein altes Beispiel dafür, wo es im ausgelieferten Spiel viele unbenutzte Assets gab. Als Microsoft die damals neuen XNA Build-Tools darauf testete, stellte sich heraus, dass 40% der Spieltexturen unbenutzt waren. blogs.msdn.microsoft.com/briankel/2006/01/24/…
Ross Ridge
Nur eine Anmerkung: Für Turing-complete-Sprachen (und die nützlichsten sind) ist es unlösbar, herauszufinden, ob eine Codezeile jemals ausgeführt wird oder nicht (Halting-Problem). Wenn Sie das schaffen, können Sie das Spiel auch beenden und stattdessen Ihren Nobelpreis erhalten.
Ordous
9

Was in den anderen Antworten fehlt, ist, dass dies nichts mit Spielen zu tun hat. Es betrifft alle Anwendungen.

Es gibt immer Dateien und Code, der in keinem einigermaßen komplexen Programm verwendet wird. Dies geschieht aufgrund der folgenden zwei Dinge:

  • Programme entwickeln sich im Laufe der Zeit.
  • Es ist mühsam herauszufinden, ob ein Teil des Codes oder eine Datei nicht mehr verwendet wird.
    • Wenn Sie Dinge entfernen, ohne den Aufwand dafür aufzuwenden, wird das Verhalten der Anwendung unvorhersehbar
Peter
quelle
7

Das Hinzufügen / ehancing Uri Popov ‚s Antwort :

  1. Programme können Aktualisierungspakete installieren, die neue, verbesserte Versionen vorhandener Asset-Dateien und eine Aktualisierung des Programms selbst enthalten. Ich für meinen Teil überschreibe keine früheren Versionen der Asset-Dateien, da ich ein Zurückgreifen auf eine frühere Programmversion zulassen möchte (stellen Sie sich zum Beispiel die Panik vor, ein völlig katastrophales Update verteilt zu haben :-)). Die ursprüngliche Programmversion verwendet möglicherweise texture_0.dds und die aktualisierte texture_1.dds (daher wird texture_0.dds nicht mehr benötigt). Das Überschreiben (nur unter Verwendung eines einzigen Namens) würde das Entfernen des Programmupdates, dh das Zurücksetzen auf die ursprüngliche Version, verhindern, es sei denn, es gäbe auch die knifflige Mechanik, neuere Asset-Dateien mit älteren zu überschreiben. Und das will niemand unterstützen.

Bearbeiten:

Auf einen Kommentar zur ursprünglichen Frage reagieren,

Niemand erinnerte sich daran, sie zu löschen

  1. Ich würde sagen, niemand hat es gewagt , sie zu löschen. Was passiert, wenn es dem Spiel an der Ladestelle der (jetzt fehlenden) Datei X an einer ausreichenden Fehlergrenze mangelt (aus Versehen, Unwissenheit, Irrtum, Verlassen des Unternehmens durch eine Schlüsselperson usw.) und das Problem trotz intensiver Tests nicht entdeckt wurde? Angenommen, das Laden erfolgt nur "jedes 3. Mal", nur bei Level 35 von 36, die Sie erst in 4 Wochen intensiven Spielens erreichen :-). Ein durch Software-Abstürze verlorener Ruf ist ein brutales Phänomen und kann im schlimmsten Fall in einer bankrotten Firma enden. Berühren Sie diese Datei besser nicht :-).
Sturmwind
quelle
4
+1 für "niemand hat es gewagt zu entfernen". Das Nichtentfernen eines nicht verwendeten Assets kostet oft nur wenig Speicherplatz. Das Entfernen eines Assets, das noch von einer anderen Person in Ihrem Team verwendet wird, kann Ihr Unternehmen viel Ansehen kosten, wenn es große violette Schachbretter hinterlässt oder abstürzt.
Patrick M
2

Warum belassen Spieleentwickler alte und nicht verwendete Dateien im endgültigen Spiel?

Sicherlich nimmt dies nur zusätzlichen Platz auf einer Disc ein und bedeutet, dass mehr Daten heruntergeladen werden müssen, wenn Sie das Spiel herunterladen?

Haben die Entwickler auch keine Angst davor, was die Leute finden könnten?

Spieleentwickler belassen nicht verwendete Dateien im endgültigen Spiel, da sie nicht die Mühe aufwenden möchten, alle nicht verwendeten Dateien zu finden und zu entfernen. Immerhin laufen die Spiele mit ein bisschen mehr Material gut und Zeit ist Geld. Das Aufräumen erhöht die Kosten (je nachdem, wie automatisiert dies geschieht).

Es nimmt zwar zusätzlichen Speicherplatz in Anspruch und bedeutet, dass mehr Daten heruntergeladen werden müssen, dies ist jedoch normalerweise nicht das Problem der Entwickler, und selbst Kunden interessieren sich normalerweise nicht für geringfügig größere Download-Größen.

Sind Sie sich nicht sicher, ob Entwickler Angst haben müssen, was die Leute finden könnten? Warum sollten sie? Solange in den zusätzlichen Dateien keine Kompromisse eingegangen sind (wirklich schlechte Grafiken, Witze über ihre Chefs oder die Kunden, ...), ist ihnen das wahrscheinlich egal. Obwohl sie in einigen Fällen tatsächlich Angst haben, was die Spieler in den Assets entdecken könnten.

Trilarion
quelle
Not sure if developers need to be afraid of anything people might find?Lesen Sie den Grund, warum der Tech-Test von Titanfall 2 nicht auf den PC kommt. Sie stimmen nicht überein: P.
TMH
@TomHart Du hast recht. In diesem Fall hatten sie Angst. In anderen Fällen, wie den in der Frage genannten, handelte es sich nicht um zusätzliche Vermögenswerte. Ich vermute, dass das Ausmaß der Angst zwischen den Entwicklern unterschiedlich ist.
Trilarion
1

Es wurde angedeutet, aber es wurde von den anderen Antworten nicht vollständig angesprochen: Es läuft alles auf Kosten hinaus, und einige der Kosten sind kniffliger, als Sie vielleicht denken.

Die offensichtlichsten Kosten sind, dass jemand sie löschen muss. Jetzt können Sie einfach einen Praktikanten in den Koffer stecken und ihn die Dateien durchsuchen lassen, um die Dateien zu entfernen, die im eigentlichen Spiel nicht benötigt werden. Aber trotzdem musst du dafür bezahlen und selbst wenn du das nicht tust (weil du ein Monster bist, das keine Praktikanten bezahlt), hättest du diesen Praktikanten trotzdem etwas Nützliches tun lassen können, wie Pizza für das Entwicklerteam zu bestellen es kostet dich immer noch.

Die weniger offensichtlichen Kosten sind, dass die Ressource, die Sie entfernen möchten, aus einem Grund eingesetzt wurde: Sind Sie absolut sicher, dass der Grund veraltet ist? Sicher, Sie haben diesen Code für eine Demo geschrieben und brauchen ihn nicht mehr, aber stimmt das wirklich? Haben Sie eine nützliche Funktion geschrieben, die Sie vergessen haben, in die anderen Bibliotheken zu migrieren? Hat Stacey eine wirklich coole Grafik für die Demo gemacht, die im echten Spiel gelandet ist? Verwendet ein interner Simulator immer noch die alte Stufe, die Sie zum Testen verwendet haben?

Spiele machen ist ein Geschäft. Auch wenn es sich nicht um ein Geschäft handelt, das Geld verdient, ist es dennoch ein Geschäft mit begrenzten Ressourcen. Jede Entscheidung erfordert eine Kosten-Nutzen-Analyse, auch wenn Sie nicht für jeden Fall Geschäftsfälle schreiben. Und die einfache Tatsache ist, dass die Kosten für das Verlassen dieser Assets im Spiel geringfügig höher sind und die Vorteile ein deutlich geringeres Risiko darstellen, dass etwas kurz vor der Veröffentlichung explodiert.

Alle diese Fragezeichen im "weniger offensichtlichen" Absatz stehen für Unsicherheit. Du weißt es einfach nicht. Und wenn Sie ein Unternehmen führen, müssen Sie Ihre Unbekannten gegen Bekannte eintauschen. Und was bekannt ist, ist, dass das von Ihnen erstellte Paket die Tests bestanden hat, auch wenn es ein wenig aufgebläht ist.

Es gibt andere potenzielle Kosten, wie zum Beispiel Informationslecks im Entwicklungsprozess, die möglicherweise zum Ableiten von Hacks verwendet werden könnten. Sie haben den Testprozess jedoch so wie er ist durchlaufen, und Sie sollten sich darüber keine Sorgen machen.

tl; dr: Niemand wird einen um 4% größeren Download bemerken, aber er wird bemerken, wenn Sie das Spiel durch Entfernen der erforderlichen Dateien unterbrochen haben.

corsiKa
quelle