Protección de demostración (y juego real)

9

En unos meses planeo comenzar a mostrar el juego (con suerte comercial) en el que estoy trabajando para el público (internet). La cuestión es que, además de las capturas de pantalla y un avance (por ejemplo, la funcionalidad de la función), ¿cómo se hace correctamente para hacer una demostración que se pueda proteger?

Déjame explicarte un poco. El juego es un juego de rol multiplataforma. En este momento, la forma en que codifico el juego es que lee datos de mapas, personajes, etc. de los archivos y eso decide todo lo que me permite expandir el mundo / historia simplemente con archivos de configuración y agregando activos.

Es decir, mi preocupación es si hago una versión demo del juego, es decir, el juego real, pero luego se eliminan todos los activos / archivos de configuración / etc., por lo que es solo una demostración con el primer mapa / nivel. ¿Hay alguna manera de protegerse contra alguien que acaba de sacar el paquete de datos del juego real (cuando se lanzó) y ahora, de repente, cualquiera con el EXE de demostración puede jugar el juego real?

La protección de demostración es mi primera prioridad, ya que quiero la demostración por un tiempo antes de que se lance el juego real. Siempre puedo decidir qué métodos de protección elijo del juego real más tarde (antes del lanzamiento, pero aún más tarde ...)

Supongo que todo se reduce a si hay alguna forma real de proteger el juego de todos modos (no quiero restringir a los usuarios a tener que hacer controles en línea porque este juego será multiplataforma y no requerirá internet para jugarlo). Lo último que quiero hacer es meterse con usuarios legítimos. Y me gustaría dejar los recursos abiertos si es posible, ya que eso solo significa parchear fácilmente las carpetas y permitir que los modders se vuelvan un poco.

Quiero decir, incluso si configuro un sistema básico de licencia de clave, ¿qué es lo que realmente impide que 1 persona cargue su clave y una copia del juego en alguna parte? He visto a personas hablar sobre actualizaciones frecuentes para que los cambios binarios y tengan que volver a descifrar el juego. Pero, ¿quién necesita descifrar el juego cuando puedes obtener 1 copia legítima y luego distribuirla?

No estoy seguro de si tal vez me estoy perdiendo algo, solo estoy tratando de asegurarme de que no. ¿Realmente se reduce a:

  1. Coloque una protección de licencia de clave básica en él.
  2. Eliminar archivos de activos / configuración de la demostración
  3. Esperar lo mejor

¡Todos y cada uno de los consejos son apreciados! Soy muy nuevo en todo esto; -;)

Lo siento si esto es un duplicado! No se pudo encontrar mucho sobre el concepto de demostración.

Zyaga
fuente
¿Liberarlo como un ejecutable que solo leerá el archivo de primer nivel y ninguno de los otros? Es una demostración, no el producto final. ¿Quizás podría explicar por qué el ejecutable de demostración tendrá de repente capacidades completas agregando un "paquete de datos", sea lo que sea? Sinceramente, parece que esta preocupación es tan legítima como "qué pasa si alguien lanza el juego completo a otra persona", lo que daría lugar a que esta pregunta se refiera a la piratería en general y no solo a proteger su demo de una actualización ilegítima.
SpartanDonut
El código realmente es el juego completo, a menos que quiera hacer una rama o algo así. Quiero decir que tengo mucha funcionalidad y la demostración que creo quiero ser algo que, incluso después del lanzamiento, los usuarios puedan descargar y jugar incluso antes de comprar. Así que supongo que es lo mismo que el juego completo en cierto sentido. Todavía me pregunto si estoy en el camino correcto con esos 3 últimos puntos, es decir, no hay mucho que puedas hacer. Solo haz eso y espera lo mejor. x:
Zyaga

Respuestas:

12

¿Ha considerado codificar algo como un límite de tiempo en la versión demo del motor?

La cuestión es que, no importa cuánto proteja su demo, el juego será pirateado de alguna manera una vez que salga. Ya sea usando la demostración o simplemente usando el juego principal, sucederá si el juego es lo suficientemente popular.

Las personas que no quieren pagar por tu juego no pagarán por tu juego.

Las personas que quieran pagar por tu juego pagarán por tu juego.

Esto se aplica a cualquier cosa, desde el juego indie más pequeño hasta el título triple A más grande: la única forma de evitarlo es hacer que la conexión a sus servidores no solo sea obligatoria sino que esté relacionada con el juego, es decir, un MMO, en lugar del tonto Assassin's Creed DRM siempre en línea. Como ya has dicho que no es una opción, te sugiero que la aceptes.

Como desarrollador independiente, la mejor manera de obtener más ventas es tener más ojos en tu juego. Las personas que no están inclinadas a la piratería jugarán su demo y luego comprarán el juego o no. Las personas que se inclinan por la piratería pueden jugar su demo, encontrar los activos como los describió, etc., y aún así pueden o no comprar el juego.

Hombre de hojalata
fuente
Esto es más o menos lo que esperaba. Es un poco desalentador, o mejor dicho, ese es el caso, ¡pero así es como funciona! Creo que lo que puedo hacer es bifurcar el código solo un poco para que pueda jugar el guardado predeterminado (no hay ningún menú de carga disponible) y luego el código duro que si el juego no reconoce el mapa principal (que tiene todas las características básicas / principales disponibles en él), entonces saldrá. Alguien podría descifrarlo y hacer que reproduzca los datos reales, pero en ese momento simplemente sacarán el juego real con serial y listo. : P
Zyaga
2
Incluso si no compran el juego, pueden tener amigos que lo vean, les guste y luego lo compren. No podrá detener la piratería (ni siquiera las soluciones antipiratería de gran presupuesto realmente han podido detenerla), por lo que le sugiero que no se preocupe demasiado por eso. Para evitar que sea demasiado fácil, puede codificar algo en el exe de demostración para que solo lea el primer mapa sin importar cuánto haya allí, o un límite de tiempo como dijo @ Amadeus9, pero luego solo puede esperar lo mejor.
Christian
Gracias @Christian! ¡Más comentarios de que esa es la forma correcta de hacerlo! ^ _ ^
Zyaga
@WeakDev, todos los puntos buenos aquí. Los que han seguido la ruta "demasiado restrictiva" solo han perjudicado a su base de clientes. Los piratas son los que tienen el tiempo fácil ya que todo el DRM se elude en 24 horas. Concéntrate en la calidad del juego y tu público objetivo, y no te puedes equivocar :)
Moo-Juice
No me desanimaría demasiado, Dev débil. En primer lugar, creo que está dando un gran paso para aliviar la piratería al ofrecer una demostración. Creo que una gran razón para la piratería de juegos independientes es la falta de oportunidad de probarlo antes de lanzarse a comprarlo. Creo que es bastante común que los juegos que no son de demostración sean pirateados como una especie de prueba. Comprar no está descartado si la persona tiene una experiencia positiva.
Sean O'Hollaren
5

No estoy seguro de lo que quisiste decir con "rama" en tu comentario, pero es posible hacer dos ejecutables diferentes (demo y versión completa) desde el mismo árbol de código fuente usando una compilación condicional . Puede hacer una opción en tiempo de compilación para incluir solo la capacidad de reproducir el primer episodio. (Por ejemplo, en C ++, puede usar #ifdefcomandos alrededor del código destinado solo a la versión completa). Puede hacer que la versión demo produzca al menos los siguientes efectos de juego:

  • Los activos del primer episodio se almacenan en un archivo zip, y la versión de demostración busca una firma digital en este archivo zip antes de comenzar. Para usar mods, los jugadores tendrían que pagar por la versión completa.
  • Cambie la codificación de los códigos de operación en su código de bytes de scripting al compilar la demostración.
  • Elimine completamente los controladores para uno o más códigos de operación de script utilizados solo en episodios posteriores. Esto hará que las piezas establecidas en episodios posteriores fallen incluso si la verificación de modificación del archivo y la codificación del código de operación están parcheados.
Damian Yerrick
fuente
1
Un truco más sería codificar los hashes MD5 / SHA de cada archivo de nivel de demostración individual en la versión de demostración. Esto tiene la ventaja de que, aunque cambiar una sola clave de hash / firma es bastante fácil con un editor hexadecimal, aumentar el número de hash (para aumentar el número de niveles jugables) es algo más complicado, al menos si hay muchos otros datos siguientes ellos.
Ilmari Karonen