Saltar la navegación

4.3 Ajuste de la IA de NPCs

No siempre los NPCs deben tener una IA tremendamente competitiva. Hay que buscar un equilibrio entre su efectividad y la inclusión premeditada de pequeños “fallos” para evitar la frustración del jugador.  Para ilustrar esto mostraremos un ejemplo sencillo, usando como base el juego Pong (Figura 6). Como es sabido, el juego es una simplificación del tenis que consiste en mantener una bola en un peloteo continuo entre dos jugadores, que controlan una “pala”. Si alguno de ellos falla devolviendo la bola, se sumará un punto al rival.

Figura 7: Versión del juego Pong (Atari, 1978). Fuente:Wikimedia Commons

Ejemplo

Componentes de la IA:

  • Sensor 🡪 lectura de posición de la bola.
  • Actuador 🡪 mover pala.

El motor de la IA podría definir el comportamiento del actuador de esta forma:

Pala.Y = Bola.Y

Es decir, sería una IA que únicamente se dedicaría a mover el centro de la pala para estar siempre en la misma coordenada vertical que la pelota.

Si, según las reglas físicas del juego, la bola nunca alcanzase una velocidad mayor que la velocidad de movimiento de la pala, esta IA sería perfecta (imbatible). Esto acabaría provocando frustración en el jugador, que abandonaría el juego finalmente.

Para solucionar esto, habría que forzar “errores” en la IA, por ejemplo, algo como:

Pala.Y = Bola.Y + Aleatorio(-3,3)

Con esto, conseguiríamos que la posición de la pala no fuese la óptima muchas veces, sino que tendría un pequeño error (el número aleatorio que se suma o se resta), que haría que la IA fallase algunas veces. Esta decisión significaría que el jugador podría ganar y, por tanto, no se frustraría de la misma forma y tendría interés en seguir jugando.

Este tipo de decisiones “con errores” hay que incluirlas de manera artificial en algunas ocasiones, a fin de conseguir IAs a las que puedan ganar los jugadores.