Hay un artículo muy interesante sobre Gamasutra: Errores inteligentes: cómo incorporar la estupidez en su código AI , por Mick West.
Este artículo habla sobre un juego de billar AI. Al implementar una IA de este tipo, es bastante fácil hacer una bola en cada lanzamiento. Una forma simplista de hacer que la IA sea menos "inteligente" es, como se sugiere en otras respuestas, agregar un factor aleatorio al cálculo, haciendo que la IA pierda más.
Pero hay dos defectos principales con este enfoque. Primero, es impredecible. Para un jugador que juega en modo "Fácil", es inaceptable que la IA tenga "suerte". ¿Qué pasa si su factor aleatorio hace que la IA haga un tiro aún mejor, golpeando una bola más valiosa o haciendo un combo? No sabes lo que va a pasar, y tener suerte no debería ser una opción para la IA en un modo fácil.
La otra falla es que el jugador intentará identificar un patrón en los comportamientos de IA. Y con un factor aleatorio simple, no hay patrón. Pero eso no significa que el jugador no verá ningún patrón, sino todo lo contrario. Tan pronto como la IA tenga suerte, el jugador verá una estrategia en su comportamiento. En el artículo, los jugadores se quejan de que la IA juega una estrategia de posición. Cuando solo hay un factor aleatorio en la precisión angular .
Desde mi punto de vista, después de leer este artículo revelador, una IA no perfecta nunca debería usar la aleatorización como factor de simplificación. Es todo lo contrario. Una IA más fácil debería ser más inteligente, pero tratar de ayudar al jugador.
En el artículo Ejemplo de juego de billar, la mejor opción para implementar una IA de "modo fácil" era de hecho eliminar todos los factores aleatorios y agregar una estrategia de posicionamiento. La IA intentaría golpear bolas para preparar un disparo fácil e impresionante para el jugador .
De esta manera, el jugador pensará que tuvo suerte. Y eso es lo que esperas para un juego cuando lo juegas fácilmente.