Estoy trabajando en mi primer juego (C ++), y quiero usar un diseño basado en componentes. He leído mucho sobre esto últimamente y ayer decidí que quería almacenar datos de objetos en archivos JSON externos, para permitir una mayor flexibilidad y facilidad de acceso.
Entonces caí en la cuenta de que dejar estos archivos en el árbol de directorios del juego permitiría a los jugadores modificar lo que quieran con mucha facilidad.
No me preocupa mostrar el código a los desarrolladores, porque el juego será de código abierto, pero me temo que un jugador sin experiencia podría romper el juego o al menos arruinar la diversión.
¿Me estoy perdiendo de algo? ¿Cuál es la política sobre ocultar datos del juego (en juegos de código abierto)? ¿Es normal dejar todo claramente accesible para cualquiera?
Si no, ¿cuál es una buena manera de ocultar los datos?
Respuestas:
Si los jugadores juegan y arruinan la diversión, diría que ese es su problema. Para los entusiastas, la mitad de la diversión es ver lo que se rompe.
Es como preocuparse de que los jugadores usen un código de trucos en modo dios y preocuparse de que el jugador no sea desafiado.
No haría nada más que poner esos archivos de configuración en un archivo zip (que probablemente debería hacer de todos modos para los tiempos de carga) y asegurarme de que su código pueda manejar datos corruptos con gracia.
fuente
Si se están entrometiendo con los datos del juego, eso es lo que consideran "divertido". No necesita protegerlos de esto. Los datos del componente de la entidad no son un spoiler, después de todo. Tal vez si tuviera datos de diálogo o búsqueda allí, sería un problema, pero probablemente no. La mayoría de los jugadores ni siquiera saben dónde buscar este tipo de cosas, no importa buscarlo deliberadamente o editarlo.
Mi consejo es comprimirlo y cambiar el nombre de la extensión del archivo. Esto mantendrá fuera del aspecto casual, pero no será difícil para ti trabajar con él. Puede usar algo como PhysicsFS para trabajar con los archivos.
fuente
txt
extensión estándar . Después de jugar bastante, decidí que haría el juego más difícil ajustando esos parámetros. Más tarde compartí esa configuración con amigos. Fue divertido ...Puede almacenar los datos cifrados , utilizando un esquema de cifrado simétrico (AES), pero esto no tiene sentido: el software es de código abierto , por lo que todos pueden leer la clave y, por lo tanto, descifrar los datos. Esto simplemente "detendría" al jugador casual de hacer trampa.
Y sería algo inútil incluso en proyectos de código cerrado, ya que es bastante fácil encontrar la clave en el juego binario.
Entonces, tienes dos posibilidades:
fuente
Lo dejaría Hay una gran comunidad de mods y a los jugadores les gusta cambiar / modificar juegos. Si rompen algo, está en ellos. Siempre podrían reinstalar.
También facilita el trabajo de otros desarrolladores.
fuente