¿Por qué quedan activos adicionales en el juego final?

28

Estaba leyendo sobre lo que se descubrió en los archivos de No Man's Sky, muchas cosas que no se usaron o no fueron relevantes para el juego. También leí hace poco sobre la configuración del E3 en los archivos de Watch Dogs. ¿Por qué los desarrolladores de juegos dejan archivos viejos y sin usar en el juego final?

¿Seguramente esto solo ocupa espacio extra en un disco y significa que se deben descargar más datos si descargas el juego?

Además, ¿no tienen miedo los desarrolladores de lo que la gente pueda encontrar?

Jay P
fuente
77
generalmente no usará suficientes datos para garantizar su eliminación. Y a veces, eliminar estos archivos "no utilizados" puede causar problemas a otros objetos del juego que usan partes de archivos "no utilizados". Creo que todo se reduce a plazos que deben cumplirse, y al hecho de que en el último momento se puede reducir el contenido.
Ryan blanco
10
Como nota al margen, el piso de la sala de corte está lleno de ejemplos de esto. tcrf.net/The_Cutting_Room_Floor
drawoc
2
1) Nadie se acordó de eliminarlos. 2) sí. 3) No.
user253751
Otro ejemplo es Dota2. No solo los desarrolladores dejan algunos activos, sino que también incluyen características incompletas para futuras versiones. Por ejemplo, nuevos personajes, objetos o habilidades. Entonces, las personas que desarman el binario pueden ver al menos algunas de las posibles noticias futuras sobre el juego (ejemplo notable: el personaje de pit lord / underloard que se vio en el código hace años se anunció oficialmente hace unos días).
Bakuriu

Respuestas:

35

Los juegos principales usan algo llamado canal de compilación. Esto es como otro conjunto de herramientas que maneja la construcción del contenido del juego para todas las diferentes distribuciones. Los juegos multiplataforma como No Man's sky y Watch_Dogs definitivamente usan diferentes activos para las diferentes plataformas. Entonces, tal como lo veo, hay dos posibles respuestas a su pregunta.

  1. Los desarrolladores olvidaron eliminar ciertos activos de la tubería y se agruparon con el juego real.

  2. Los desarrolladores dejaron intencionadamente algunos activos "no utilizados" en el juego para su uso posterior durante un parche o actualización, porque no pudieron cumplir con la fecha límite. Ejemplo Devil's Pit de The Witcher 3.

Uri Popov
fuente
16
Además, 3. Coloca "activos no utilizados" deliberadamente para que los modders / powerusers los encuentren, para echar un vistazo a los próximos lanzamientos. Similar al n. ° 2, excepto que el contenido podría no usarse en ese título específico o parches futuros.
Kroltan
44
+1 para Kroltan's # 3. IIRC The Witcher 3 tiene un ejemplo de un huevo de pascua escondido en contenido no utilizado. Había un área secreta que necesitabas para modificar el juego para tener una foto de los desarrolladores o algo así.
leche
3
"Olvidé eliminar" no es una muy buena manera de describirlo. Los desarrolladores pueden saber que han eliminado su uso de un activo. Pero es posible que otro equipo haya comenzado a usar el activo. En tal caso, el posible costo de eliminación (romper completamente un juego) supera con creces el beneficio de eliminarlo.
Aron
33

Puede ser más difícil de lo que piensas encontrar todo el contenido referenciado en un juego grande en el que trabajan varias personas. Incluso cuando existen herramientas explícitas para ayudar (creamos tales herramientas en ArenaNet, cualquiera que use Unreal tiene acceso a la versión de Unreal de esas herramientas, Bungie tiene herramientas que hacen lo mismo e incluso dieron una charla sobre ellas, etc.)

Hay varias formas en que se puede hacer referencia al contenido que puede derrotar a dichos sistemas, generalmente simplemente haciendo referencia al contenido por algo que el sistema no puede rastrear (como crear una referencia implícita o codificada en el código a algún activo).

Incluso suponiendo que haya resuelto el problema de encontrar todas las interreferencias de contenido, tiene el problema de no poder saber si realmente se usa algo . Tal vez se haga referencia a algún activo en un script en alguna parte, pero el volumen de activación de ese script se coloca incorrectamente dentro de una pared y el contenido nunca puede aparecer en el juego. Probar esto exhaustivamente también es bastante difícil.

Cuando automatizado (o autómata capaz ) métodos para detectar y filtrar el contenido no utilizado fallar, lo que queda es la manera pasada de moda: la intervención humana. Los humanos cometen errores, suposiciones erróneas (pueden pensar que todavía se usa un archivo aunque no sea porque alguien más hizo un cambio), y sí, incluso a veces optan por dejar intencionalmente contenido irrelevante en el juego como Huevos de Pascua. Es solo la falibilidad humana natural lo que lleva a esto.

Por lo general, no es una cantidad suficiente de contenido para mover realmente la aguja para optimizar la carga o el tamaño del archivo. También hay herramientas para informar los activos más grandes o más lentos en cualquier cadena o motor de construcción grande, pero el objetivo es reducir el impacto de los principales infractores y no encontrar y ubicar cada byte perdido. Generalmente.

Josh
fuente
Ejemplo de un archivo no utilizado como huevo de pascua en Arqade: ¿Dónde aparece 'Song That Might Play When You Fight Sans' en Undertale?
Philipp
1
Starbounl actualmente tiene un problema en el que no puede obtener / hacer un "tentáculo cocido" porque se eliminó la parte que le enseña la receta. Mientras tanto, los archivos de activos y definiciones simplemente se sientan allí como si deberían estar funcionando. Teniendo en cuenta que allí con frecuencia aprendes una receta para crear / recoger algún artículo diferente hecho con el mismo ingrediente (para la comida de todos modos), es fácil ver cómo los bits se pueden excluir del juego solo por error.
StarWeaver
1
Incluso si uno pudiera encontrar todo el contenido no utilizado por el juego que se incluye en el disco, algunos juegos están diseñados para permitir a los usuarios descargar módulos adicionales de costo adicional que el proveedor puede producir después de que se hayan fabricado los discos . Si el disco incluye diez megabytes de texturas que no se usan en el juego en el disco pero serán útiles en la versión de descarga, eso puede permitir que el tamaño de la descarga se reduzca en diez megabytes.
supercat
1
Un viejo ejemplo de donde había muchos activos no utilizados en el juego enviado fue MechCommander 2. Cuando Microsoft probó sus nuevas herramientas XNA Build, reveló que el 40% de las texturas del juego no se utilizaron. blogs.msdn.microsoft.com/briankel/2006/01/24/…
Ross Ridge
Solo una nota: para los idiomas completos de Turing (y los más útiles son), averiguar si alguna vez se ejecuta una línea de código o no es insoluble (problema de detención). Si logras hacer esto, también podrías deshacerte del juego y recoger tu Premio Nobel.
Ordous
9

Lo que falta en las otras respuestas es que esto no tiene nada que ver con los juegos. Afecta a todas las aplicaciones.

Siempre hay archivos y códigos que no se utilizarán en ningún programa razonablemente complejo. Esto sucede debido a las siguientes 2 cosas:

  • Los programas evolucionan con el tiempo.
  • Se requiere un esfuerzo para determinar si algún fragmento de código o algún archivo ya no se utiliza.
    • Si elimina cosas sin gastar dicho esfuerzo, el comportamiento de la aplicación se vuelve impredecible
Peter
fuente
7

Agregando / mejorando la respuesta de Uri Popov :

  1. Los programas pueden instalar paquetes de actualizaciones que contienen versiones nuevas y mejoradas de archivos de activos existentes y una actualización del programa en sí. Por mi parte, no sobrescribo las versiones anteriores de los archivos de activos, porque quiero permitir un retroceso a una versión anterior del programa (imagine, por ejemplo, el pánico de haber distribuido una actualización totalmente desastrosa :-)). La versión original del programa puede estar usando texture_0.dds y la actualizada texture_1.dds (por lo tanto, texture_0.dds ya no es necesario). La sobrescritura (usando solo un nombre) prohibiría la eliminación de la actualización del programa, es decir, el retroceso a la versión original, a menos que también haya la mecánica difícil de sobrescribir los archivos de activos más nuevos con los más antiguos. Y eso no es algo que nadie quiera apoyar.

Editar:

Reaccionando sobre un comentario a la pregunta original,

Nadie se acordó de borrarlos

  1. Yo diría que nadie se atrevió a eliminarlos. ¿Qué sucede si el juego carece de suficiente captura de errores (por error, ignorancia, error, la persona clave dejó la compañía, etc.) en el punto de carga de ese archivo (ahora faltante) X, y el problema no se descubrió a pesar de las intensas pruebas? Digamos que la carga ocurre solo "cada 3ra vez", solo en el nivel 35 de 36, que alcanzas solo en 4 semanas de juego intenso :-). La pérdida de reputación por la caída del software es un fenómeno brutal, y en el peor de los casos puede terminar en una empresa en quiebra. Mejor no toque ese archivo :-).
Ventormenta
fuente
44
+1 para "nadie se atrevió a eliminar". No eliminar un activo no utilizado a menudo solo cuesta un poco de espacio en disco. Eliminar un activo que otra persona de su equipo todavía está usando podría costarle a su compañía mucha reputación si deja grandes tableros de cuadros morados o se bloquea.
Patrick M
2

¿Por qué los desarrolladores de juegos dejan archivos viejos y sin usar en el juego final?

¿Seguramente esto solo ocupa espacio extra en un disco y significa que se deben descargar más datos si descargas el juego?

Además, ¿no tienen miedo los desarrolladores de lo que la gente pueda encontrar?

Los desarrolladores de juegos dejan archivos no utilizados en el juego final porque no quieren gastar el esfuerzo de buscar y eliminar todos los archivos no utilizados. Después de todo, los juegos funcionan bien con un poco de material extra y el tiempo es dinero. La limpieza aumenta los costos (dependiendo de qué tan automatizado ocurra esto).

Si bien requiere espacio adicional y significa que se deben descargar más datos, este no suele ser el problema de los desarrolladores e incluso a los clientes no les importan mucho los tamaños de descarga ligeramente mayores.

¿No está seguro si los desarrolladores deben tener miedo de algo que la gente pueda encontrar? ¿Por qué deberían ellos? Mientras no haya nada comprometedor en los archivos adicionales (obras de arte realmente malas, bromas sobre sus jefes o los clientes, ...) probablemente no les importe demasiado. Aunque en algunos casos tienen miedo de lo que los jugadores puedan detectar en los activos.

Trilarion
fuente
Not sure if developers need to be afraid of anything people might find?leen la razón por la cual la prueba tecnológica de Titanfall 2 no llega a PC, no están de acuerdo: P.
TMH
@TomHart Tienes razón. En este caso tenían miedo. En otros casos, como los mencionados en la pregunta, no eran e incluían activos adicionales. Supongo que el nivel de miedo difiere entre los desarrolladores.
Trilarion
1

Se ha insinuado, pero las otras respuestas no lo han tocado por completo: todo se reduce al costo, y algunos de los costos son más complicados de lo que piensas.

El costo más obvio es que alguien tiene que eliminarlos. Ahora podría poner un pasante en el caso y hacer que busque en los archivos y que elimine los que no se necesitan en el juego real. Pero aún así, tienes que pagar por esto e, incluso si no lo haces (porque eres un monstruo que no paga pasantes), podrías haber tenido a ese interno haciendo algo útil como pedir pizza para el equipo de desarrollo, así que todavía te cuesta.

El costo menos obvio es que el recurso que está a punto de eliminar fue puesto por una razón: ¿está absolutamente seguro de que la razón es obsoleta? Claro, escribiste este código para una demostración y ya no lo necesitas, pero ¿es eso completamente cierto? ¿Escribió una función útil que olvidó migrar a las otras bibliotecas? ¿Stacey hizo un gráfico realmente genial para la demo que terminó en el juego real? ¿Un simulador interno todavía hace uso de ese nivel anterior que usabas para las pruebas?

Hacer juegos es un negocio. Incluso si no es un negocio para hacer dinero, sigue siendo un negocio con recursos limitados. Cada decisión requiere un análisis de costo-beneficio, incluso si no va a escribir casos de negocios para cada uno. Y el simple hecho es que el costo de dejar esos activos en el juego es una descarga ligeramente mayor, y los beneficios son un riesgo significativamente menor de que algo explote justo antes del lanzamiento.

Todos esos signos de interrogación en el párrafo "menos obvio" representan incertidumbre. Simplemente no lo sabes. Y cuando administra un negocio, tiene que cambiar sus incógnitas por conocimientos. Y lo que se sabe es que el paquete que construiste pasó las pruebas, incluso si tiene un poco de hinchazón.

Existen otros costos potenciales, como la filtración de información sobre el proceso de desarrollo que podría usarse para derivar piratas informáticos, pero si realizó el proceso de prueba tal como está, no debería preocuparse realmente por eso.

tl; dr: Nadie notará una descarga un 4% mayor, pero lo notarán si rompiste el juego eliminando los archivos necesarios.

corsiKa
fuente