¿No es profesional dejar los recursos del juego a la vista?

43

Todavía tengo problemas para empacar mis recursos, después de pasar por API complicadas y básicamente solo archivos zip que están agotando mi cerebro, pensé que también podría empacar el juego con los recursos visibles para el ojo humano, en una carpeta simple.

¿Sería eso poco profesional? Personalmente, nunca he visto juegos que hagan eso, básicamente significaría que el jugador podría editar lo que quiera en el juego, como ir a map1.txt y agregar una X en algún lugar para crear un muro, o cambiar el sprite del jugador a un pony en MS PAINT.

Bugster
fuente
30
Solo piense en ello como una comunidad de modding :)
Orin MacGregor
1
¿Eres un desarrollador de juegos profesional con un presupuesto? Creo que está bien en caso de que no estés planeando ganar mucho dinero con este juego. Aunque tengo algunos consejos. Si te hace sentir mejor, solía editar archivos guardados en X-COM / UFO Defense
wolfdawn el
66
@ArthurWulfWhite: Creo que en lugar de ganar dinero o no, el punto de división es la implicación de los recursos modificados para el juego. Para MMORPG, un recurso / cliente modificado podría dar una ventaja injusta a ciertos jugadores, por lo que querrá evitar eso tanto como sea posible. Para muchos otros juegos, el cliente amigable con el modding lo hace atractivo para que la comunidad de modding se desarrolle alrededor de su juego y generalmente se considera algo bueno.
Lie Ryan
1
El aspecto de modificación en Quake (1) se manejó muy bien, sin exponer los modelos y archivos bsp al jugador casual. No creo que sea malo ocultar cosas mientras las mantengo fácilmente accesibles. Me gustó el hecho de que podía editar archivos guardados en X-COM, lo vi como una característica. Sin embargo, sería una tontería si hubiera un archivo de texto llamado money.txt en el que pudiera escribir cuánto dinero en efectivo quiero comenzar porque borra la frontera entre un sandbox y un juego.
wolfdawn
2
Me gusta la forma de introversión : poner los archivos en archivos zip renombrados, por ejemplo sound.dat. El uso de carpetas sin comprimir con un par de cientos de archivos hace que la (des) instalación sea bastante molesta.
Tobias Kienzler

Respuestas:

44

No, no lo es, cambiar los datos del juego se llama modding, que es una práctica común y a menudo visto como un efecto positivo. En realidad, es bueno mantener los datos del juego lo más transparentes posible y editarlos de la manera más fácil posible. Más aún si elige jugadores más "avanzados" como público objetivo.

La razón por la que no encontrarás muchos juegos AAA que usan una estructura de carpetas simple para sus datos es que usan formatos de archivo optimizados personalizados para obtener mejores tiempos de carga. La desventaja es la disminución de la transparencia y las herramientas adicionales requeridas en la cadena de herramientas. Sin embargo, para juegos más pequeños o 2D, estas dos cosas suelen valer más que el tiempo de carga mejorado.

Solo asegúrate de que lo que ve la gente no sea solo un gran desastre :) coloca los archivos en una estructura de carpetas adecuada.

API-Bestia
fuente
Las cosas también están llenas para ser una forma de disuasión del robo (aunque en última instancia, ineficaz si se empuja)
CobaltHex
15

Además de otras respuestas, hay dos preocupaciones importantes que debe considerar:

Sorprendentes sorpresas
Digamos que estoy a la mitad del juego y descubro la carpeta "video". Curioso, hago clic en uno y veo la escena final del juego.

Desafío de pérdida El
mismo escenario, pero creo que el formato de juego guardado tiene un valor para "oro". Lo cambio de 250 a 999999999, y funciona. De repente, tu curva de dificultad cuidadosamente diseñada, que maximiza la diversión del juego, se ha ido.

Ambos podrían causar que alguien pierda interés en el juego, parcialmente, si no del todo. Esto podría terminar en una impresión general más baja de lo bueno que fue el juego (injusto pero cierto).

Piense en esto en términos de su público objetivo: los jugadores más jóvenes son especialmente susceptibles a estropear su propia diversión sin comprender realmente que esto es lo que están haciendo.

Incluso si desea fomentar la modificación, es posible que desee proteger a los usuarios de arruinar su propia experiencia con el juego "por accidente".

MGOwen
fuente
44
Exactamente correcto. No hace daño si necesitas atravesar algunos obstáculos antes de poder modificar el juego. +1 para el escenario de video
wolfdawn
14

Quizás no profesional es la palabra equivocada. Realmente depende del juego si dejar o no los archivos expuestos es algo malo.

Para un juego simple para un jugador, los jugadores y los modders te amarán. Les estarías dando la capacidad de cambiar fácilmente tu juego y hacer lo que quieran. Y tenga en cuenta que siempre habrá modders para un juego, sin importar cuán pequeño sea el juego. Muchos jugadores se sentirán menospreciados si la modificación es difícil, después de todo, compraron tu juego y deberían poder hacer lo que quieran en él.

Por otro lado, editar fácilmente los activos del juego es malo para un juego multijugador, ya que se considera trampa. Los jugadores malintencionados pueden reemplazar el contenido para hacer que los enemigos sean más visibles, los muros transparentes, etc. Aunque su código de juego realmente debería hacer cumplir que los activos no hayan sido alterados, el enfoque del "paquete de activos" tiene el beneficio de ayudar a disuadir esta actividad (seguridad a través de oscuridad).

SomeWritesReserved
fuente
1
Si eres lo suficientemente bueno como para pasar por alto una prueba de suma de comprobación, también eres lo suficientemente bueno como para meterse con los activos empaquetados. No creo que el embalaje sea más seguro.
mmyers
11

Hay una solución fácil para ello. Simplemente puede cambiar el nombre de las extensiones por lotes en un símbolo del sistema usando algo como

rename *.txt *.map

Y luego colóquelos en una carpeta \ map

Puede acceder a un símbolo del sistema desde Windows ejecutando cmd

Esto no detendrá a los modders que saben que quieren modificar el juego y dejará una impresión menos descuidada en las personas que solo quieren jugar sin todo el contenido.

Sí, seguirá siendo editable. Es menos probable que las personas lo noten.

Para responder el comentario de Eric Robertson

Si deseas ocultar adecuadamente el contenido de tu juego a los jugadores, puedes usar el cifrado RSA en esos archivos de texto y combinarlos en un archivo de texto mientras estás en él. Esto no debería ser demasiado problema, aunque sospecho que es mucho más que exagerar.

Wolfdawn
fuente
1
-1 Esto no es realmente una "solución". Los recursos todavía están disponibles para la vista.
Erick Robertson
66
@Eric Robertson Bueno, esto podría decirse sobre empacarlos al estilo Quake (1) también. No hay una solución mágica para ocultar los activos por completo. Esto solo pretende ocultarlos del jugador casual y eludir de alguna manera los problemas que mencionó. Dicho esto, ponerlos en una estructura de carpetas o en un paquete de activos no significa que los activos no estén allí (a la vista) tampoco a menos que use cifrado.
wolfdawn
Sé que las extensiones de archivo no importan en Linux, pero ¿estás seguro de que esto funcionaría en Windows?
jcora
1
@Bane Un nombre de archivo no importa punto, intente esto, cambie el nombre de un archivo .txt a .zip, .bmp o .xyz y vuelva a abrirlo con el bloc de notas. el nombre del archivo solo importa cuando está buscando archivos en su PC, por ejemplo .xyz tiene un cierto icono asociado con ellos, si desea abrir un archivo con xsoftware, mostrará solo archivos * .x de manera predeterminada, se mostrará el bloc de notas. archivos txt, mspaint mostrará gifs, jpegs, bmps, pngs, tiffs, icos, etc. Los nombres de los archivos son solo una convención conveniente (para que no tenga que examinar y analizar los datos dentro del archivo para identificar la naturaleza de sus archivos). contenido.
wolfdawn
1
¡Gracias por la explicación! Entonces Windows no parece tan diferente a Linux en ese dominio
jcora
3

Si alguna vez no fue profesional, puede que ya no lo sea. Al principio, los juegos usaban sus propios formatos de paquete, principalmente para preservar su propiedad intelectual (IP).

Puede superar algunas limitaciones, como la fragmentación y las invocaciones innecesarias de funciones del sistema de archivos nativo subyacente, al agrupar todos los recursos en un único archivo. Esto hace que los eventos de fragmentación sean menos probables cuando se implementa el paquete en la PC del cliente.
En el peor de los casos, podría terminar teniendo pequeños recursos de archivos individuales dispersos alrededor de los sectores de su disco duro. (Con la llegada de los SSD, este punto a menudo se vuelve discutible)

Pero todos estos beneficios también se pueden obtener con el .tarformato de archivo antiguo (Unix) gratuito .

Además, al usar su propio formato de paquete, puede superar limitaciones tales como la falta de versiones, hash de archivos, codificación y punteros / enlaces dentro de los archivos, por nombrar solo algunos.

En conclusión , abogaría por la transparencia en el desarrollo independiente, a menos que explícitamente necesite proteger su IP.


En cuanto a los grandes puntos planteados por MGOwen: Para evitar sorpresas de Spoiling , puede cambiar el nombre de la extensión del archivo, cambiar los atributos del archivo, usar formatos de medios poco comunes, eliminar el encabezado de medios y almacenarlo en otro lugar, etc. Para evitar el desafío de pérdida, use una serialización binaria escritor para almacenar el estado de tu juego, con cifrado adicional y variables señuelo si es necesario.

Descargo de responsabilidad: no soy un desarrollador de juegos. Solo considere esta publicación como un punto de partida ...

Lorenz Lo Sauer
fuente
1
"Para evitar el desafío de pérdida, use un escritor de serialización binario para almacenar el estado de su juego, con cifrado adicional y variables de señuelo si es necesario". Si la gente quiere hacer trampa, lo harán. Con un depurador en memoria que busca qué cuatro bytes en la memoria se correlacionan con su oro y realiza un seguimiento de los cambios, si es necesario.
Random832
1
@ Random832 Amén a eso.
Lorenz Lo Sauer
Tu respuesta es incorrecta. Acceder al contenido de 6000 archivos de hojalata es entre 5 y más de 10 veces más lento en mi experiencia que acceder al mismo contenido desde 1 archivo. Para un caso en el que la carga tarda 5 segundos en un SSD, 15 segundos desde un disco duro normal rompiendo los mismos datos en archivos editables y cargando saltos a más de 30 segundos en ambos (HDD y SSD). Entonces, por alguna razón, el aumento es más pronunciado en el SSD que en el HDD. (Sin RAID en ambos casos)
Coyote
@Coyote ¿Tenía la impresión de que defendía el mismo punto en la publicación ...? Fragmentación (es decir, limitaciones del controlador de hardware, limitaciones físicas de los platos ...) + muchas invocaciones de API del sistema de archivos (a menudo a través de contenedores) = Lento
Lorenz Lo Sauer
Esta oración en particular es incorrecta entonces: "Con la llegada de los SSD, este punto se vuelve discutible"
Coyote
1

Es fácil de arreglar y de lo contrario la indexación de búsqueda encontrará sus videos finales, etc. Entonces,

Para archivos de datos: voltear bits con xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Para ocultar "Oro: 250" de GREP.

Simplemente codifique con el mismo valor (aleatorio) xor.

Para mantener las escenas alejadas de los usuarios ocasionales, intente esto: Machinarium tradujo los nombres de los archivos para que \ videos se convirtieran en \ 0101 y todos los archivos tuvieran una identificación de 8 dígitos binarios seguido de .101 para detener las asociaciones de archivos.

usuario1212212
fuente