Métodos de aplicación y distorsión de precisión en juegos. Gráficos visuales para comparación

Es posible calcular el hecho de un éxito en los juegos sobre la base de la precisión obtenida de diferentes maneras:

  • comparar con un número pseudoaleatorio (que también se puede obtener de diferentes maneras [ 1 ]);
  • comparar con el mayor o menor de los dos números pseudoaleatorios;
  • comparar el promedio de dos o más números aleatorios (el promedio también se puede considerar de manera diferente).


Los bonos de precisión también se pueden implementar de diferentes maneras, causando irritación a los jugadores por varias razones.

Del mismo modo, el daño causado puede calcularse de manera diferente, especialmente en base a dados (cubos).

Todos estos enfoques diferentes afectan el juego: su complejidad y previsibilidad. Cada uno de ellos puede llegar a ser una buena decisión dependiendo de los objetivos perseguidos, por lo tanto, es más beneficioso tomar una decisión consciente.

El artículo presentará gráficos visuales de los cambios en las probabilidades reales en diferentes enfoques, lo que les permitirá navegar rápidamente y tomar la mejor decisión.

Manipulación de precisión


Por lo general, cuando se informa al jugador que la precisión del personaje es del 60%, percibe esta información como: "de 10 disparos, puedo contar con 6 golpes". Y si de cada 10 golpes observará 1 golpe en lugar de 6, entonces seguramente considerará que el accidente en el juego está roto. Él estará especialmente convencido de esto si esto sucede en un segmento de 100 disparos. Para evitar tales problemas, los desarrolladores a menudo manipulan encubiertamente la probabilidad real de un golpe ( o incluso abandonan el elemento de aleatoriedad ).
Por ejemplo, en el juego Fire Emblem: The Binding Blade, para determinar un golpe con precisión, no se comparó un número aleatorio, sino el promedio de dos números aleatorios [ 2 ].


El resultado de esta manipulación es que los ataques bien dirigidos (> 50%) caen mucho más a menudo de lo que deberían con una distribución uniforme, y los ataques no feroces (<50%) son mucho menos comunes. Así es como cambia esta distribución de probabilidad:


Por ejemplo, con un 10% de la precisión indicada, la real es 1.9%. Y al 75%, el real será del 87,24%.

Pero, para el caso, puede cambiar la precisión de muchas otras maneras.

Por ejemplo, puede tomar el promedio de 3 números aleatorios:


La distorsión como resultado de esto se vuelve aún más sorprendente: la precisión del 10% se convierte en 0,41%; La precisión del 75% se convierte en 92.69%.

Sin embargo, el promedio también se puede calcular como la media geométrica. Aquí están los cambios con una media geométrica de 2 números aleatorios:


Aquí el 10% se convierte en 4.83%, y el 75% a 88.18%. Pero, lo más interesante, la transición ocurre al 30%, y no al 50%, como el promedio aritmético. Por lo tanto, si realmente quieres estar seguro de que el jugador siempre tendrá una ventaja, solo asegúrate de que su precisión mínima nunca sea inferior al 30% y que los enemigos sean tan bajos con bastante frecuencia ( para los enemigos puedes usar la media aritmética, o algo aún más distorsionado ).

Una media geométrica de 3 números conduce a aproximadamente los mismos resultados, pero solo con una gran extensión:


Aquí el 10% se convierte en 1.95%, y el 75% a 93.98%.

A menudo, para mejorar o debilitar algunas habilidades, se introduce una manipulación más simple, cuando uno de los dos números aleatorios se elige como el más grande o el más pequeño:


Como resultado de esto, la probabilidad de golpear varía mucho. Por ejemplo, al elegir el número más pequeño, una precisión del 10% se convierte en 19.02%, y una precisión del 75% se convierte en 93.75%.
Tal método, por ejemplo, se utiliza en el juego Neverwinter Nights en la habilidad "Slippery Mind", en la que, en caso de que falle el control de salvación, se realiza un segundo control de fuerza de voluntad [ 3 ].

Neverwinter Nights - Guerrero Pixie [ 4 ]

A continuación se muestra una tabla de distorsión de precisión para diferentes métodos de cálculo.


En un artículo anterior sobre manipulación de probabilidad, se mostró un método para eventos muy raros, donde la probabilidad de un evento aumentó con el tiempo:
El desarrollador Carsten Germer utiliza la función de aleatoriedad controlada para eventos raros y no solo [ 5 ]. Por ejemplo, para garantizar la pérdida periódica de un bono particularmente raro con una probabilidad de 1 en 10,000, después de cada "fallo" aumenta las posibilidades en orden: 1 en 9,900; 1 a 9800; 1 a 9700 ... y así sucesivamente hasta que se grabe el evento. Y para garantizar la ausencia de rarezas frecuentes, introdujo una variable adicional que bloquea la operación en un 100% durante las siguientes 10 comprobaciones después de la última operación.
Conceptos erróneos de los jugadores en la evaluación de riesgos [ 1 ]

Así es como cambia la probabilidad de este evento raro cuando se usa este método:


Como puede ver, al final no hay nada que ver con la probabilidad de 1 en 10,000, pero para el juego esto puede haber sido suficiente. Aunque se parece más a una ocultación involuntaria de probabilidades reales del propio desarrollador, lo que puede conducir a decisiones incorrectas en futuras mejoras del programa.

A continuación, también doy un cambio en el evento del 1% de que sucederá al menos una vez a medida que aumenta el número de intentos. Algoritmo de distorsión: los primeros 10 intentos: una falla garantizada. Luego, con cada falla, la probabilidad aumenta en un 1% (0.1% y 0.01%) antes de ser golpeado. Entonces todo desde el principio.


Sin embargo, si su objetivo principal como desarrollador es asegurarse de que el usuario en un evento del 1% no caiga en una serie de 1000 fallas seguidas, entonces será más fácil y más transparente establecer un acierto del 100% después de 200 fallas seguidas. Esto lo salvará de la rara perplejidad de los jugadores y le permitirá dejar el código del programa más conciso y amigable para futuras mejoras.

Diferentes formas de acumular bonificaciones de precisión


Si hay pocos bonos para la precisión en el juego y el desarrollador los controla fácilmente, entonces es más fácil usar el enfoque más simple con un aumento lineal en la precisión mediante la simple adición al valor base . Este método es más fácil de implementar en el juego y siempre es comprensible para los jugadores. Con este enfoque, es posible lograr una precisión del 100%, que no siempre corresponde a los planes del desarrollador.





Si el juego planea muchas bonificaciones significativas para la precisión, entonces, para no exceder la precisión garantizada del 100%, puede calcular la precisión final como una serie de lanzamientos adicionales (con mayor frecuencia poco probable por separado ). Por ejemplo, con un golpe del 70% y una bonificación del 50%, la probabilidad final de un golpe será del 85%, como comprobar dos lanzamientos sucesivos cuando al menos un golpe es suficiente.




Un poco exótico es el enfoque para cambiar la esencia de la bonificación a la precisión mediante la bonificación de reducir la probabilidad de una falla .

// newAccuracy -    % // baseAccuracy -    % // bonusAccuracy -     % let newAccuracy = 100 - ( (1 - baseAccuracy * 0.01) / (1 + bonusAccuracy * 0.01) ) * 100; 

Asegura que siempre habrá una posibilidad de fallar con cualquier bono. Gracias a esto, el juego puede dar bonificaciones a la "precisión" de más del 100%, al menos 1000%. Y aún así habrá una posibilidad de fallar. Pero es más probable que el jugador confunda y, por lo tanto, decepcione.



Muy a menudo, se utiliza el enfoque con una simple suma de bonificaciones, como el más comprensible para el jugador y fácil de implementar para el desarrollador.

Distribución de daños basada en dados


Este elemento se basa completamente en datos visuales de la publicación " Probabilidad y juegos: rollos de daño de los juegos de blob rojo [6] ". Aquí presento brevemente algunos ejemplos y conclusiones de esta publicación. En el artículo original, recibirá conclusiones más detalladas y cuadros de distribución interactivos, así como funciones interactivamente personalizables para seleccionar varias combinaciones únicas.

El ejemplo más obvio (pero no el único) de cálculo de daño de dados diferente se presenta sobre la base de calcular el daño a un valor máximo de 12. El resultado se puede obtener usando dados diferentes ( por ejemplo, si juegas un juego de mesa y no tienes ningún dado especial ):

1d12 - un dado con 12 caras


2d6 - dos dados con 6 caras diferentes


3d4 - tres dados con 4 caras diferentes


4d3 : cuatro dados con 3 caras diferentes


6d2 - seis dados con 2 caras diferentes


Como puede ver, el uso de cubos inapropiados puede cambiar en gran medida el equilibrio del juego.

Conclusión


Por lo tanto, se consideraron los siguientes temas:

  • manipulaciones con precisión utilizando diversos métodos para verificarlo;
  • diferentes formas de acumular bonificaciones de precisión;
  • distribución de daños basada en dados diferentes.

Cada uno de los métodos puede ser útil para el desarrollador. Para los juegos con una audiencia más informal, a menudo se eligen algoritmos de ahorro en los que se exagera la probabilidad de éxito del jugador, y para aumentar la emoción, se crea la ilusión de una victoria improbable (más en uno de los artículos anteriores: [ 7 ]).

Referencias


1. Conceptos erróneos de los jugadores al evaluar los riesgos. Control de un generador de números aleatorios en desarrollo .
2. Fire Emblem Wiki - Generador de números aleatorios .
3. Neverwinter Nights 2 - Habilidades de clase - Mente resbaladiza .
4. Neverwinter Nights - Pixie Warrior .
5. "Aleatoriedad no tan aleatoria" en diseño y programación de juegos .
6. Probabilidad y juegos: rollos de daño de los juegos Red Blob .
7. Generación de llamada cerrada en los juegos: "Al borde de la derrota" o "Casi ganó" .

Source: https://habr.com/ru/post/es434928/


All Articles