COMBATES POR TURNO - GAME DESIGN


COMO HACER UN JUEGO DE COMBATES POR TURNO -  TEORIA 

por Sergio Alonso Martinez

Preámbulo

“Con este artículo pretendo dotar al lector de herramientas y técnicas que pueda usar cuando diseñe un combate por turnos. El artículo no busca explicar un método sino dar a conocer posibilidades que un diseñador menos experimentado podría haber obviado o desconoce y hacer ver qué cosas se pueden alterar en un combate por turnos y los efectos que pueden tener sobre la experiencia del jugador. También he querido dar un énfasis más matemático para mostrar esa parte por la que mucha gente no muestra tanto interés.”

  • Sergio Alonso


Derechos de autor

Cualquier persona puede compartir el artículo, hacer adaptaciones o incluirlo dentro de un compendio más amplio. En cualquier caso, siempre que se referencie el artículo se debe acreditar propiamente al autor (Sergio Alonso Martínez) y no se debe usar con fines comerciales. Cualquier obra derivada debe someterse a la misma licencia. Véase la licencia CC Attribution-NonCommercial-ShareAlike 4.0 International para más información.


En caso de compartir públicamente o usar parte o la totalidad del artículo se agradece que se contacte al autor. Se dejarán los enlaces más interesantes al final de este documento en un apéndice.


Contacto

Para cualquier consulta, sugerencia, comentario, apunte o aportación:

samupo@noobogames.com

@NoobO_Samupo
Perfil de LinkedIn



¿Qué se considera combate por turnos?

Un combate es aquella situación en la que dos o más personajes interactúan entre sí con el objetivo de reducir al otro. En sí mismo un combate no tiene por qué ser necesariamente la representación directa de un enfrentamiento físico, también puede ser una batalla dialéctica.


El concepto de turno de combate se puede definir como “sucesión de momentos en los que los personajes actúan, que pueden ser calculado de antemano y no dependen de factores externos o aleatorios que no estén incluidos dentro del propio combate”.


Atributos de un personaje

Los atributos de los personajes representan una parte vital en el diseño de un sistema de combate. Muchas veces se tiende a tomar como referencia un sistema que ya existe como base y realizar pequeños cambios para adaptarlo a las necesidades del proyecto. Sin embargo, entender el porqué de esos atributos nos dará la posibilidad de crear un sistema único y más rico.


Antes de centrarse en los atributos debemos centrarnos en el sistema de combate y, concretamente, en qué partes del mismo van a ser invariables y cuáles van a depender de los personajes. Por ejemplo, los turnos pueden estar fijados (primero aliados, luego enemigos) o pueden depender de la velocidad de los personajes; en el primer caso será una constante, mientras que en el segundo habría un atributo que afecta al orden del turno (independientemente de si lo llamamos velocidad o no).


Algunas variables que podemos tener en cuenta son: vida máxima, energía (maná o equivalente), orden de turnos, daño infligido (posibilidad de separar según elementos o fuente), daño reducido (porcentaje, logarítmico, etc.), probabilidad de acierto o esquiva, probabilidad de crítico y multiplicador, resistencias elementales, etc... Muchas de ellas pueden no aparecer en ciertos juegos y otras pueden fijarse en diseño, las que resten serán probablemente atributos de los personajes.


Cabe destacar que una variable como el daño no tiene por qué estar influenciada por un único atributo como pueda ser la fuerza física del personaje, puede también ser una combinación de varios atributos y equipo. Es conveniente tener en cuenta esto cuando el juego permite al jugador distribuir puntos en sus atributos, ya que puede producir que el jugador especialice sus personajes en un número reducido de atributos o haga una distribución más esparcida; aunque conocer esto requiere un estudio más pormenorizado de las fórmulas implicadas.


Representación numérica

La forma en la que se muestra la información al jugador es vital para transmitir ciertas sensaciones al jugador. Una parte vital en un combate son los indicadores de vida y/o energía que se muestran al jugador, que al ser valores numéricos suelen mostrarse con números o barras.


A continuación se muestran algunas formas de representación junto con sus ventajas y desventajas. Es conveniente destacar que no siempre se usa la misma representación para los datos de los aliados y los enemigos, ya que en muchos juegos se limita la información sobre los enemigos.

Números grandes vs números pequeños

A la hora de diseñar un sistema de combate o una progresión numérica tenemos que tener en cuenta si vamos a usar números más grandes o más pequeños. No existe un valor específico a partir del cual podemos considerar un número grande o pequeño, pero sí hay ciertas condiciones que se cumplen al usar unos u otros.


Los números grandes suelen dar sensación de epicidad; un ataque en el cual aparezca un número largo va a parecer mucho más potente que uno en el que aparezca un número más corto, independientemente del porcentaje del total de vida que inflija. Un jugador tendrá muy complicado realizar cálculos con números elevados y tenderá a obviar todos los dígitos salvo los dos o tres primeros, lo que hará que el combate parezca más aleatorio y difícil de predecir.


Por el contrario los números pequeños, aunque carecen de esa sensación de poder, se usan para establecer al jugador en control de la situación en todo momento. El uso de cálculos más simples permite al jugador adelantarse varios turnos al resultado y, por tanto, dan un enfoque más estratégico al combate.


Como se ha mencionado anteriormente, no existe una línea que separe los números grandes de los pequeños, por lo que para cada juego debemos definir qué números vamos a usar y según las fórmulas que dispongamos veremos qué sensación producen y si hay que aumentar el rango o disminuirlo.

Porcentajes

Usar porcentajes permite al jugador centrarse en números más pequeños y mantener un control más directo de los eventos que ocurren en el combate. Sin embargo, al ser un número decimal (ya esté representado como entero o con dos dígitos decimales) dificulta realizar cálculos al vuelo y el redondeo puede dar cierta sensación de aleatoriedad.

Barras

En ciertos casos se puede optar por no mostrar ningún número y dejar simplemente una barra. Esta forma de representación suele provocar que el jugador tenga que depender de su agudeza visual para realizar sus cálculos, lo que hará que sea más errático e impredecible. En el caso de que una barra de vida necesite muchos golpes para vaciarse puede causar cierta angustia.

Otras formas de representación

En algunos juegos se usan textos para indicar el estado vital de un personaje, por ejemplo: “Malherido” o “Moribundo”. También existe la posibilidad de no mostrar absolutamente ningún indicativo al jugador. Estas opciones pueden aumentar la incertidumbre del jugador; esto provocará que juegue más a la defensiva si los enemigos tienen un alto índice de supervivencia o muy ofensivo si los enemigos mueren rápido.


El Aleatorio

En un gran porcentaje de juegos existe una variación aleatoria ya sea en determinar los resultados de ciertas acciones, en la generación procedural del mundo o en el comportamiento de la inteligencia artificial.


Sin embargo, los valores aleatorios no existen en computación tradicional (esto puede quedar obsoleto con la llegada de la computación cuántica u otras tecnologías) y para generar valores arbitrarios se utilizan algoritmos de generación de números pseudoaleatorios.


Aunque a día de hoy la mayoría de generadores aleatorios realizan bastante bien su trabajo es conveniente estudiar sus propiedades y conocer cuál se va a usar en un juego. Entre otras propiedades podemos destacar:

  • La velocidad del algoritmo: generar un número aleatorio lleva un coste computacional y en juegos donde se requiera una cantidad elevada de los mismos es conveniente considerar la velocidad por encima de la calidad para asegurar un gameplay fluido.

  • Distribución de los números: en un generador ideal todos los números dentro del rango de posibilidades deben tener la misma probabilidad de ser generados. Hay algunos algoritmos donde números como el cero pueden no aparecer en absoluto.

  • Distribución entre grupos: dado tres grupos (números pequeños, números intermedios y números grandes), en un caso idílico tras un número de un grupo existen las mismas posibilidades de generar un número de cualquiera de los otros grupos. Antiguamente, algunos algoritmos tendían a generar un número grande tras un número pequeño y viceversa, lo que hace que el jugador pueda prever el resultado de un evento aleatorio.



Cuando el algoritmo que se usa no realiza una distribución correcta hay que estudiar bien las repercusiones que tendrá estadísticamente en el gameplay y cómo podemos usarlo para mejorar la experiencia del jugador.


En aplicaciones multiplataforma es común que cada una de las plataformas tenga su propio generador aleatorio implementado.

¿Cuándo y cómo usarlo?

Añadir un factor variable al combate lo hace siempre más errático. En última instancia cada variable aleatoria añade una capa de complejidad a la estrategia que ha de usar el jugador y hace más difícil adelantarse a los acontecimientos.


En combates de larga duración un factor aleatorio se ejecuta más veces y por tanto tendrá una tendencia, mientras que en combates más cortos la repercusión es mucho mayor.



Usos frecuentes del aleatorio son:

  • Elegir contra qué grupo de enemigos se enfrenta el jugador.

  • Realizar una variación en el daño infligido, por ejemplo +/- 10%.

  • Probabilidad de esquiva y crítico.

  • Inteligencia artificial de los enemigos.


Cada vez que apliquemos el aleatorio debemos tener en cuenta la repercusión que tendrá, ya que forzar al jugador a depender de él para ganar una batalla podría suponer mucha frustración, mientras que no usar ningún tipo de aleatorio puede derivar en combates muy previsibles y puede aburrir a un jugador que busque una experiencia menos estratégica.



Savescum como metamecánica

Se conoce como savescum al abuso del sistema de guardar/cargar partida para alterar el siguiente valor aleatorio. Aunque muchos puedan considerar savescum como un bug o un error de diseño no tiene necesariamente por qué serlo.


¿Alguna vez has llegado a un punto en el juego donde todo depende del resultado de una única acción? Ese momento donde si no consigues acertar tienes que reiniciar horas y horas de juego. Pues bien, ahí es cuando un jugador puede dejar ese juego de lado por evitar invertir su valioso tiempo en volver a pasarse una sección concreta, a no ser que pueda salvarse cargando la partida y volviendo a intentar esa acción.


Hay gente que argumentará que dejar una vía de savescum llevará al jugador a guardar y cargar hasta que todos los resultados salgan como quiere. Yo opino que la mayoría no perderá el tiempo salvo en decisiones realmente vitales, pero oye, si lo hacen es porque quieren jugar así al juego, así que tampoco veo un problema.


Ahora bien, es posible que la experiencia de juego busque ser más dura con el jugador o que sea importante arrastrar esos fallos durante la historia para transmitir ciertas sensaciones. En ese caso deberíamos deshacernos del savescum. ¿Cómo hacemos eso? Lo más fácil es guardar la semilla del generador aleatorio junto con los datos del juego y cargar siempre la misma semilla.


En juegos más complejos guardar la semilla no siempre da los resultados que queremos. Si puedes seleccionar una acción distinta que no requiera aleatorio estás guardando ese valor para el siguiente, que bien podría ser el ataque de un enemigo. O en el caso de poder seleccionar qué personaje usar podrías decidir quién se queda con la “mala tirada”. Por suerte hay alternativas: usar un generador aleatorio por personaje es la más simple de ellas; el resto depende del proyecto y la creatividad que tenga el equipo.


También es importante destacar que el savescum puede afectar a cualquier resultado aleatorio, no solamente a resultados de las acciones del jugador. Algunos casos son: encuentros aleatorios, comportamientos de enemigos, objetos aleatorios de un cofre, subidas de nivel que dependan del aleatorio, … Conviene revisar qué savescums es necesario evitar y cuáles se pueden dejar pasar.


En casos en los que se bloquee el uso de savescums es necesario asegurarse que el jugador no puede quedar atascado y tener que reiniciar el juego desde cero o una sección larga. El uso de autoguardado en varios slots es una forma bastante buena para resolver este inconveniente.


Al final, decidir qué savescums hay que bloquear y cuáles se pueden (o se quieren) dejar usar va a depender del tipo de juego en cuestión y del público al que va dirigido. Por ejemplo, un juego con permadeath por diseño evitará lo máximo posible los savescums, mientras que otro en cuyo público potencial hay speedrunners puede ser más permisivo.

Progresión del juego

En la mayoría de juegos de rol existe una progresión de poder en los personajes y enemigos envueltos en el combate. La forma de progresión más habitual es el crecimiento de los atributos de los personajes cuando suben de nivel o cuando se alcanza cierto punto en el juego.


Estas fórmulas se pueden usar para aumentar los atributos o, en caso de que el jugador pudiera decidir qué atributos suben, el número de puntos disponibles o el coste de cada atributo según su valor actual.


Al usar estas fórmulas siempre podemos combinarlas entre sí o modificarlas sumando valores o multiplicando el resultado o, en general, usando cualquier operación que veamos apropiada. Siempre hay que recordar que el crecimiento de una función matemática viene determinado por el mayor crecimiento dentro de sus términos.


Las diferentes progresiones que aparecen a continuación son sólo algunos ejemplos existentes. Es más, es posible incluso combinar diferentes progresiones en el mismo juego; por ejemplo: progresión lineal al subir de nivel y unos valores prefijados cuando el personaje llega a cierto punto en la historia.

Progresiones matemáticas

Progresión lineal [y=x]

La progresión lineal es aquella en la que en cada nivel los atributos se incrementan en un valor fijo. Es una progresión sencilla que deja entrever fácilmente las repercusiones de una subida de nivel.

Cabe destacar que no es obligatorio usar valores enteros (por ejemplo: +2 por nivel) y el uso de decimales como +1,5 por nivel daría como resultado que en niveles impares un atributo entero suba 1 punto y en niveles pares 2 puntos.

Progresión exponencial [y=x^a]

En una progresión exponencial (y=x^a) el crecimiento se va acelerando si a > 1 y decelerando si 0 < a < 1, siendo a el exponente. En el caso de que a fuese 1 estaríamos hablando de una progresión lineal.


En la imagen podemos observar en azul y=x², en rojo y=x^1.2 y en verde y=x^0.5 (raíz cuadrada de x).



En el caso de crecimiento acelerado los valores comenzarán siendo pequeños dándole cierto control al jugador y acabarán siendo bastante grandes y generando sensación de epicidad. Una subida de nivel en una progresión exponencial acelerada supone un incremento sustancial en los atributos.


Mientras tanto, con crecimiento decelerado los primeros niveles son los que suponen el mayor incremento de atributos y las subidas de nivel posteriores tienen menos importancia. Como el crecimiento es menor en niveles altos pone el foco en la estrategia en lugar de la fuerza bruta.

Progresión logarítmica [y=ln(x)]

En las progresiones logarítmicas vemos una aceleración no uniforme en la que la mayor progresión se realiza en los primeros niveles y se estabiliza muy pronto manteniendo un crecimiento bajo. En cierto modo el jugador las percibirá de manera similar a las exponenciales con el exponente menor que 1.


El crecimiento de un logaritmo se puede personalizar cambiando la base del mismo (véase diferencia entre logaritmo en base 10 y logaritmo neperiano).

Series matemáticas

Existen a su vez numerosas series matemáticas que podemos usar y que no siguen una fórmula concreta. Un ejemplo podría ser la serie de Fibonacci, donde se suman los dos últimos números obtenidos en la serie para calcular el siguiente dando el siguiente resultado: 1, 1, 2, 3, 5, 8, 13, 21, 34, …


Otro ejemplo podría ser sumar la mitad menos 1 del número obtenido anteriormente: 10, 14, 20, 29, 42, 62, …


Hay que tener cuidado con ciertas series matemáticas ya que hay algunas que computacionalmente necesitan hacerse de manera recursiva y pueden llegar a suponer una sobrecarga en el procesador si se buscan números frecuentemente.

Crecimiento aleatorio

Una forma de aumentar los atributos es sumar un valor aleatorio en un rango determinado por nivel.


En este caso, para un número elevado de niveles, podremos inferir un valor en alto nivel a través de una aproximación estadística. Por ejemplo: si cada nivel un atributo sube 1, 2 o 3 puntos estadísticamente en un punto infinito habrá subido 2 ([1+2+3]/3) puntos por nivel. Sin embargo, en un número finito y reducido podemos encontrarnos con que los jugadores pueden experimentar más resultados pequeños produciendo personajes más débiles o una mayor concentración de resultados altos con personajes más poderosos.


Es posible que el jugador experimente mala suerte en el aleatorio y un mal crecimiento irreversible de uno o varios personajes, lo cual le puede llevar a frustrarse enormemente. En el caso de que busquemos una tendencia uniforme podemos balancear el aleatorio hacia un valor central. Esto se puede hacer aumentando la probabilidad de obtener un valor aleatorio mayor cuando el valor del atributo esté por debajo del esperado o tender hacia números menores en el caso contrario. En ocasiones es útil considerar si debemos balancear sólo positivamente para evitar una posible frustración al jugador a pesar de que los personajes resultantes estadísticamente serán más poderosos.

Progresiones no-matemáticas

Existe también la posibilidad de usar progresiones que no se pueden traducir a una fórmula. El caso más común es usar una serie de valores prefijados por cada nivel.


Si queremos dotar al jugador de control sobre el juego sería conveniente mostrarle la tabla de crecimiento apropiada ya sea dentro del propio juego o en un manual o web accesible.

Curva de dificultad

No es normal en un juego que sólo los personajes aliados crezcan en poder, eso haría que la dificultad del juego disminuyese progresivamente. Lo más habitual es que la dificultad tienda a crecer conforme el jugador avanza y por ello los enemigos se hacen más fuertes o aparecen enemigos más poderosos.


Uno de los puntos más difíciles de balancear al hacer un combate por turnos. Para facilitar esto podemos calcular la curva de dificultad. El valor de la dificultad se puede obtener restando al crecimiento de los enemigos el de los personajes aliados y el crecimiento de la dificultad se calcula como la división entre las progresiones de los enemigos y los aliados. Nótese que los enemigos deben tener un crecimiento mayor para que la dificultad aumente. A continuación un ejemplo:

Suponemos un crecimiento de m*(Log(x+1,3)+10) (en verde) para los atributos de los personajes del jugador, donde m es un multiplicador (un bárbaro tiene más fuerza que un mago, por ejemplo). El crecimiento de los enemigos es m*(x^0.7+5) (en rojo). Con esos datos obtenemos la dificultad (en azul) y su crecimiento (en azul claro).


Podemos observar en la gráfica que existe un punto de inflexión donde los enemigos pasan a ser más poderosos que el jugador; dependiendo de la dificultad general del juego ese punto puede ser el final del tutorial o el punto a partir del cual el jugador necesita de estrategia para vencer a cada oponente.

Progresión variable: objetos y habilidades

El efecto que produce el equipo o las habilidades de los personajes en el combate puede tener un factor más que determinante en la dificultad del mismo. Instancias donde un equipo de un valor o bonificador percentual concreto y esté accesible a partir de cierto nivel o cierto punto en la historia son fáciles de calcular, ya que basta con agruparlos en una fórmula y sumarlos a la fórmula de progresión del jugador.


Sin embargo, hay casos en los que determinar el impacto de una habilidad que, por ejemplo, haga daño según el dinero acumulado o tenga una fórmula especialmente compleja o con gran factor aleatorio hacen que los cálculos sean tremendamente complicados o imposibles. También puede ser darse la misma situación cuando usamos estados alterados muy variopintos y con cierta frecuencia en el combate.


Para simplificar el tema, debemos suponer que siempre que el jugador tenga acceso a objetos, equipos o habilidades muy dispares la progresión será mayor de lo esperado y, por lo tanto, la curva dificultad se verá afectada.

Efecto de la IA en la dificultad

La inteligencia artificial de los personajes controlador por el ordenador tiene un gran efecto en la dificultad del juego. Determinar el factor exacto en el cual afecta es una tarea que puede requerir muchísima destreza matemática pero podemos tomar una aproximación.


Sabemos que en todo turno hay una acción a ejecutar por la IA que asegura la mayor posibilidad de ganar el combate (o de dejar al jugador en peores condiciones para el siguiente); a dicha acción la llamaremos acierto y al resto fallo. Con esto en mente podemos determinar el porcentaje de acierto de una IA; por ejemplo, si los enemigos usan arbitrariamente una acción de cuatro que tienen disponibles, la IA tendrá un 25% de acierto. En casos con inteligencia artificial más avanzada es conveniente aproximar un porcentaje de acierto para tenerlo en cuenta. Y, en el caso de que el combate incluya varios personajes por cada equipo, tendremos que tener en cuenta también en el acierto si ejecuta la acción contra el objetivo apropiado.


Determinar si la dificultad aumenta o disminuye una vez conocemos el porcentaje de acierto es imposible, ya que debemos compararlo con la estrategia que use el jugador. Si el porcentaje de acierto del jugador es menor que el de la IA la dificultad se verá aumentada y viceversa.


Aunque una acción se considere como fallo sigue teniendo un efecto en el combate por lo que balancear enemigos individuales se convierte en un tema más complejo.

Técnicas de balance de dificultad

Lo mejor para asegurar que el juego está balanceado es asegurarse de que partimos de una progresión como las que se han descrito anteriormente. Técnicamente, si un punto en un atributo vale lo mismo que un punto en otro, es decir, tienen la misma repercusión en el combate, el juego estará completamente balanceado. Sin embargo este no suele el caso, por lo que debemos tomar cartas en el asunto.


El mejor método con diferencia es “prueba y error”. Como su nombre indica, consiste en probar todos los casos posibles y determinar cuándo un enemigo es demasiado poderoso o demasiado débil y corregir los valores que se consideren oportunos. Por supuesto el problema aparece con la gran cantidad de horas humanas que se tienen que invertir, por ello se proponen otras técnicas automatizadas.

Comparación entre enemigos

Para determinar si, efectivamente, la fuerza de los enemigos es progresivamente mayor podemos recurrir a comparar cada uno de los enemigos con todos los demás. Si la IA o el propio combate tienen un factor aleatorio debemos hacer varios combates para hallar una estadística para cada enemigo.


En un caso idílico dicha comparación nos dará que para cualquier enemigo el porcentaje de victoria con enemigos de menor nivel será mayor del 50% y subirá según la diferencia de nivel. Justo lo contrario contra enemigos de mayor nivel.


Por desgracia, los casos idílicos y las situaciones perfectas se darán en contadas ocasiones. Cualquier factor aleatorio, que un enemigo sea especialmente fuerte contra otro o que estés comparando un boss con un enemigo común, entre otras circunstancias, pueden provocar fuertes variaciones en el porcentaje de victorias.


Como resultado de todo lo mencionado anteriormente: esta técnica puede usarse para comparar enemigos comunes (excluyendo bosses, minibosses y demás) y asegurarse que no hay ninguno especialmente desbalanceado.

Autobalance genético

Se trata de un método técnicamente muy complejo pero que puede adaptarse para conseguir cualquier resultado que se busque. Al ser una técnica que requiere el apoyo de un programador hábil versado en el uso de algoritmos genéticos u otras técnicas de inteligencia artificial avanzadas sólo se darán unas pautas concretas.


Para cada enemigo (o grupo de ellos según nivel) se toma un grupo de aliados (o aliado) al que se prevé que se enfrentarán según su nivel o posición en la trama. Para conseguir el mejor efecto los enemigos deben tener inicialmente unos valores exagerando sus virtudes y defectos.


El algoritmo genético (u otro elegido por el programador) comenzará a realizar simulaciones de combate y aproximando los atributos de los enemigos hasta que la batalla contra el grupo de aliados propuesto se acerque lo máximo posible a un empate.


A partir de ese momento se pueden usar modificadores porcentuales para hacer a ciertos enemigos más o menos poderosos (como minibosses).

Conclusión

Aunque hay técnicas que nos permiten automatizar el balance o descubrir fallos muy aparentes que nos pueden ahorrar la mayor parte del trabajo, al final siempre es conveniente que un humano valore los resultados obtenidos y los modifique a su criterio para transmitir la sensación que el juego requiere de ese enemigo.

Fórmulas de ataque/defensa

Existen multitud de fórmulas que podemos usar para determinar los efectos de las habilidades o ataques y, seguramente, tendrán un gran impacto en el juego. Por esto es importantísimo tener en cuenta los siguientes detalles:

  • Cuando una habilidad puede fallar y tiene un porcentaje de acierto, estadísticamente el daño de esa habilidad es el daño total multiplicado por el porcentaje de acierto. El riesgo de usar esa habilidad depende del porcentaje de fallo.

  • El valor del daño puede calcularse a partir de valores de ataque y defensa de los personajes y puede tener un crecimiento distinto a la vida de los mismos. Por ejemplo, si los atributos crecen de manera lineal, la vida se calcula como el cuadrado de uno de los atributos y el daño como el atributo de fuerza elevado a 1.5; veremos cómo el número de ataques necesarios para acabar con un personaje aumenta conforme crece el nivel.

  • Fórmulas sencillas como [daño=ataque-defensa] permiten al jugador prever el resultado y hace el combate más estratégico, mientras que fórmulas que presenten variaciones aleatorias o fórmulas más complejas lo hacen más errático e imprevisible.

  • Es interesante determinar el número de turnos que un ataque básico necesita para acabar con un personaje. Este número nos da una idea de la longitud del combate y podremos estimar si será muy tedioso y forzará al jugador a usar habilidades más poderosas para no aburrirse o si es demasiado corto. Para un RPG por turnos clásicos números entre 2 y 10 son habituales, mientras que el número puede ser mayor en juegos más dinámicos.

  • Si usamos una fórmula como [daño=ataque-defensa], ataque y defensa pueden ser valores calculados a partir de muchos atributos, variables o variaciones aleatorias, no tienen por qué ser necesariamente un único atributo.

  • Existe la posibilidad de usar la defensa como una reducción porcentual de daño. En ese caso necesitamos una fórmula para calcularlo. Si la defensa base tiene un límite fijo podemos usar un logaritmo o una fórmula exponencial por ejemplo, mientras que si puede crecer indefinidamente es recomendable que la propia fórmula tenga un límite para evitar una reducción completa del daño a partir de cierto valor de defensa.


Independientemente de las decisiones que se tomen es especialmente útil comprobar valores medios y extremos en una hoja de cálculo para asegurarse de que las fórmulas elegidas funcionan según lo esperado.



Tempo

La forma en la que ejecutamos los turnos es una parte vital dentro del diseño de un combate por turnos. Según el método que utilicemos podremos observar un combate más estratégico y pausado o mucho más dinámico y caótico.

Turnos por equipo

Es la variante más pausada y estratégica ya que da al jugador todo el tiempo que necesite para plantearse las acciones de los personajes que controla y sus consecuencias.


Existen un par de variaciones que pueden usarse en estos casos:

  • Turnos libres: el jugador puede seleccionar unidades y realizar turnos individuales libremente en el orden que elija. Esto aumenta el factor estratégico especialmente cuando las acciones de un personaje alteran las posibilidades del siguiente o existen combinaciones que favorezcan un orden concreto de habilidades.

  • Turnos prefijados: el orden de los turnos dentro de un equipo está prefijado o se fija al inicio del turno. Mientras que puede dar lugar a factores estratégicos interesantes hay que tener cuidado porque no poder seleccionar el orden puede frustrar al jugador.

  • Puntos de comando: el jugador tiene a su disposición un número de puntos de comandos cada turno y puede usarlos para usar habilidades de los personajes o activar turnos de los mismos. Esta fórmula puede o no permitir turnos dobles de un personaje.

Combate por turnos puro

En un combate por turnos puro el orden de los turnos viene prefijado al inicio del combate (normalmente usando un atributo que marca la velocidad en combate) y es inalterable a lo largo del mismo. Los turnos se comportan de manera cíclica.


Existe la posibilidad de mostrar al jugador el orden de turnos durante el combate, esto hace que tenga la posibilidad de elaborar estrategias más complejas.


Este sistema presenta más dinamicidad que los turnos por equipo.

Alterar el orden de turnos

Podemos tomar como base un combate por turnos puro y alterar durante el combate el orden de dichos turnos. Una forma de hacerlo es añadir a cada habilidad un coste de tiempo o energía y hacer que cuanto mayor sea ese valor más tarde recibirá el personaje su turno.


También es posible que el orden de los turnos cambia cuando un personaje resulta paralizado o cambia su velocidad.


Uno de los problemas de alterar el orden de los turnos es que puedan existir turnos dobles para algunos personajes. Es conveniente barajar si puede existir o no esa posibilidad si se decide alterar el orden.

Combate por turnos activo

En el combate por turnos activo existe una barra (visible o no) por cada personaje que va rellenándose en función de su velocidad (o valor calculado equivalente). Cuando dicha barra se llena el personaje puede realizar su turno.


Los cambios en la velocidad afectan instantáneamente al combate desde el momento que son aplicados y alterarán el orden de turnos consiguientemente.


Mientras el jugador está seleccionando una acción las barras de turno pueden o no incrementarse. Si lo hacen puede haber turnos “simultáneos”. En el caso de que dos personajes del jugador estén activos al mismo tiempo se puede dotar al jugador la posibilidad de seleccionar con cuál de ellos actuar, alterando así el orden de turnos.


Cuando llega el turno de un enemigo mientras el jugador está seleccionando la acción de uno de sus personajes, el enemigo puede actuar instantáneamente (modo activo) o puede esperar a que el jugador seleccione la acción y se ejecute (modo espera).


El combate por turnos activo en modo activo es la variante del combate por turnos más dinámica y, para muchos jugadores, ni siquiera es considerada como combate por turnos. Mientras que en modo espera sí se mantiene la sensación del turno en su totalidad.

Apéndice I: Juegos interesantes

Final Fantasy (saga) - En los primeros juegos se usan valores numéricos más bajos que favorecen la estrategia, mientras que conforme nos acercamos a juegos más modernos usan valores más altos para dar mayor dinamicidad. También en FF Tactics podemos ver números pequeños para dar control al jugador. https://www.gamefaqs.com/ps/197341-final-fantasy-vii/faqs/22395.


Sunrider - En Sunrider se controla la dificultad únicamente a través de multiplicar los daños, dejando el mismo porcentaje de acierto en las habilidades (que depende de la distancia al enemigo y del arma usada). http://sunrider.gamepedia.com/Difficulty_setting


Fire Emblem - La saga Fire Emblem es un ejemplo de juego que da muchísimo control al jugador y se enfoca en la estrategia. Usa números pequeños y deja ver al jugador una estimación del resultado del combate.


Star Wars: Knights of the Old Republic - SW:KOTOR usa un sistema de turnos camuflado como una batalla en tiempo real.


World of Warcraft - Aunque WoW no usa turnos per se podemos estimar turnos a partir del cooldown de las habilidades. Además en WoW se ven números muy grandes para mayor sensación de epicidad y que el jugador se sienta más realizado.


Adventure Capitalist/Realm Grinder - Ejemplos en los que se ve perfectamente que números grandes que vayan creciendo dan una sensación de satisfacción al jugador.


Kamidori Alchemy Meister - En la humilde opinión del autor es el RPG táctico con el diseño de las mecánicas más sólido. Véanse también otros juegos de Eushully.


Daiteikoku/Daibanchou - Dos juegos donde se trabaja bastante con las probabilidades aleatorias y la estrategia combinada a corto y largo plazo. Véanse también otros juegos de Alicesoft.


Desktop Dungeons - Muy buen juego donde podemos apreciar el balance entre riesgo y estrategia.



Comentarios