¿Cuál es una escala de dificultad adecuada para la eficacia del arma frente a la dificultad de obtener?

8

Estoy escribiendo un documento de diseño para un juego de aventuras basado en voxel, similar a Minecraft, pero arreglando muchas mecánicas de juego fundamentalmente rotas, o al menos actualizando esas mecánicas para que sean más adecuadas para un juego de aventura.

Estoy considerando crear una escala de armas del 1 al 10, donde las armas a 1 son menos poderosas y las armas a 10 son más poderosas. Estaba considerando hacer los materiales para hacer el arma más común para las armas de nivel 1, y 10 veces menos común para el arma más poderosa, pero si miras Minecraft, los diamantes solo ocurren en el 0.1% de los bloques y todavía se sienten demasiado comunes, a menos que seas propenso a morir, por supuesto.

De acuerdo con el enfoque de la aventura, ¿sería mejor que los niveles más altos de armas solo provengan de las gotas de monstruo, o de una combinación de una rara gota de monstruo y un objeto extraíble, o hay otras mecánicas de juego comunes que podría usar para tener ¿Un arma súper poderosa que también es difícil de conseguir, pero que vale la pena tener?

Para plantear la pregunta de otra manera, por la inversión de tiempo, ¿debería un arma 10 veces más poderosa tomar 10 veces más tiempo para obtener, o 20 veces o más? ¿Hay algún estudio que muestre alguna correlación entre la "diversión" en cuanto al tiempo que los jugadores buscarán un artículo y una escala de inversión de tiempo apropiada para obtener equipo?

Conocer
fuente
Creo que la forma en que se hace esta pregunta no es adecuada para el sitio. Puede modificarlo para preguntar sobre estudios, algoritmos u otra información objetiva . De lo contrario, solo obtendrás opiniones. Es una idea interesante, así que creo que deberías tratar de reelaborarla.
MichaelHouse
Según las preguntas frecuentes, creo que mi pregunta cae en esta categoría, "diseño del juego (diseño de niveles, jugabilidad, mecánica, etc.)", teniendo en cuenta que estoy preguntando sobre una mecánica de juego aplicable a nivel mundial, es decir, la cuestión de la inversión de tiempo para equipos potentes . Sin embargo, modifiqué mi pregunta para pedir más datos fácticos en lugar de opiniones.
Ken
1
No estoy seguro de haber visto el término Diversión y rutina en una oración anterior que no fuera despectivo.
James
77
Estás proponiendo una escala lineal, 10 veces más fuerte es 10 veces más costoso. Sin embargo, tanto en la vida real como en otros juegos, este proceso no es lineal. Un automóvil que va dos veces más rápido vale 10 veces más, un automóvil que va tres veces más rápido vale 100 veces más. Etc .. Deberías tratar de encontrar una curva exponencial agradable como coste = c ^ (potencia). Donde c es una constante agradable que puedes ajustar para tener la sensación correcta.
Roy T.
77
Para usar la ciencia, o la psicología al menos, de lo que estamos hablando es de un programa de refuerzo de relación variable. El refuerzo se ha estudiado bastante, y puede comenzar a leerlo aquí: en.wikipedia.org/wiki/Reinforcement
tirones el

Respuestas:

11

Voy a responder esto ortogonalmente:

Lo que elijas estará mal.

No importa cuán cuidadosamente analice las matemáticas o lea los estudios, los números que elegirá antes de las pruebas de juego serán incorrectos.

La única forma de determinar cuál es la cantidad adecuada de rutina para el juego, el estilo de juego, los usuarios y la interfaz en particular es probarlo e iterar, mientras maximiza la diversión del jugador (o su beneficio ...)

Corolario: ¡Asegúrese de que cambiar estos números sea fácil!

Lo que esto significa es que estos números van a cambiar. Mucho. Así que es mejor que te asegures de no tener que volver a compilar tu juego o buscar en tu código los números mágicos de equilibrio.

Opción 1

Elija lo que le parezca correcto cuando lo implemente, pero póngalo en un archivo de configuración recargable. ( .ini, JSON, XML, S-Exprs, lo que sea mejor para ti ...) Y asegúrate de que puedes volver a cargar tu configuración sin tener que volver a escribir la mayor parte de tu juego.

opcion 2

Haga que la probabilidad de un elemento sea una función directa de su nivel. De esa manera, puede modificar la función más adelante y no tiene que lidiar con un montón de variables. Por ejemplo:

#
# Power on a scale up to 10.
#
# Examples of probability scaling function
#

def probability_of_v1(power):
  """ series """
  a, b, c, d = (1,4,16,210)
  return a - x/b + (x^2)/c - x^3/d

def probability_of_v2(power):
   """ linear """
   return 1 - (power/10)

def probability_of_v3(power):
   """Sinusoidal, starts at 1, is 0 at power=10"""
   return 0.5 * cos( x / pi ) + 0.5

#
# Then, use your function instead of your probability 
# when dropping loot or creating gems
#
class Monster:
  # ...
  def on_die(self):
    if random.random() < probability_of(self.power):
      self.drop_loot()
    else:
      pass
  # ...

Pruebe las ecuaciones en línea para ver cómo se ven.

brice
fuente
¿Por qué, gracias Kort! Tengo que admitir que esto es sabiduría nacida de la experiencia. Una vez escribí un simulador de insectos con números mágicos esparcidos por todo el código, y pasé un par de días desagradables cambiando parámetros menores cuando la simulación tuvo que ser modificada. ¡No cometer ese error otra vez!
Brice
7

Es difícil dar una respuesta definitiva, ya que esto depende mucho de cómo quieras que juegue el juego.

Sin embargo, Terraria experimentó con estas ideas que usted menciona. Aumentaron la cantidad de materiales necesarios para crear armas, armaduras, etc. (esto se equilibró de alguna manera por el hecho de que los materiales a menudo se encontraban en grandes grupos). También implementaron gotas monstruosas raras y comunes, que solo se podían obtener a través de gotas.

Merecería la pena investigar un poco más sobre Terraria, para ver cómo se siente tener estas mecánicas en su lugar; entonces estoy seguro de que estará mejor posicionado para tomar la decisión sobre cómo desea equilibrar las caídas de artículos y la distribución de materiales.

Jason H
fuente
+1 para el ejemplo del juego. Además, diría que esto es algo para probar mucho, no puedes tener un diseño funcional sin poder experimentarlo.
Laurent Couvidou
4

No hay una respuesta correcta. Algunos buenos juegos son difíciles, otros son fáciles. A algunos jugadores les gusta el desafío recurrente, a otros les gustan las recompensas rápidas. Creo que la respuesta correcta radica en encontrar a tu público potencial, primero. Una vez que tenga una versión alfa, encuentre a alguien con la mentalidad general que espera que tenga la multitud de su juego, y déjelos jugar. Siempre que codifique correctamente, ajustar las variables más adelante no debería ser difícil, y las pruebas de juego y el equilibrio son etapas que debería tener, incluso si cree que ha alcanzado la proporción áurea o no.

Así que no se preocupe por los números mientras está programando: no hay una respuesta teórica correcta, y más tarde tendrá las respuestas de los evaluadores concretos.

Pero, si todavía quieres tratar de alcanzar números mágicos, los estudios han demostrado que la molienda (minería, en este caso) solo es efectiva siempre que esté dentro de las expectativas de tiempo establecidas por el jugador. Cuanto más tiempo pase un jugador, más tiempo puede esperar la próxima recompensa, pero siempre debe estar dentro de un marco de tiempo accesible, no más de una magnitud mayor que el último marco de tiempo antes de la última recompensa. Por lo tanto, creo que un aumento de tiempo de 10x es adecuado, pero no creo que la diferencia entre dos niveles de armas deba ser 10x: la brecha entre niveles se deja bastante amplia.

¡Buena suerte!

nihohit
fuente
Wow ... Estaba pensando en un aumento de 10x entre el nivel 1 y 10 en total, pero supongo que hasta un aumento de 10x entre niveles individuales podría funcionar considerando los rendimientos crecientes una vez que comience a usar un mejor equipo.
Ken