Tengo una preguntilla que me he estado pasando por la cabeza desde hace tiempo... ¿cómo puede variar la IA del ordenador según en qué dificultad esté el juego? O sea, no me refiero a que si son más tontos o más listos, me refiero a qué características pueden tener respecto a su actitud.
Cita de: "JtR666"Tengo una preguntilla que me he estado pasando por la cabeza desde hace tiempo... ¿cómo puede variar la IA del ordenador según en qué dificultad esté el juego? O sea, no me refiero a que si son más tontos o más listos, me refiero a qué características pueden tener respecto a su actitud.
Pues tienes varias alternativas:
- diseñas a mano la inteligencia para cada nivel
- le dejas menos tiempo a los niveles bajos
- cortas algoritmos en los niveles bajos
Un saludo,
Vicente
Hombre, pues gracias, lo tendré en cuenta.
Una opcion es que diseñes los algoritmos teniendo en cuenta algunas variables "potenciometro". P.ej, el tiempo que comenta Vicente o añadas menos "sal" (lease, aleatoriedad) en los niveles menos dificiles.
A parte, en los niveles "faciles" igual los enemigos haran menos daño o iran a menos velocidad.
Recuerdo que p.ej Half Life los enemigos hacian mas o menos lo mismo, solo que tienes mas o menos armas... o Silent Hill, donde en nivel facil eres "el corte ingles".
Igual la IA no la tienes que cambiar mucho para cada nivel de dificultad... a menos que sea un FPS "multiplayer" (rollo con bots que tienen que buscar y matar al jugador y no guardar un sitio).
Sino, siempre te queda la opcion "hacer trampas" ... la IA ve TODO el mapa, sabe donde ir y donde esta el player, cuanto mas use la IA esas cosas, mas dificil sera de vencer... pero no debe ser invencible, o entonces no hay juego.
Si, entiendo, entonces en un juego de estrategia basado por turnos (pongamos un ejemplo... Civilization) se supone que en el nivel más facil, la IA no ve ni tres en burro con la niebla en medio, va más lento, es más pacífico que belicoso... Digo yo, vamos.
En uno de estrategia por turnos le dejas pensar menos y se acabo ;)
Un saludo!
Vicente
P.D.: pregunta en los foros del Galactic Civilizations sobre el tema, esos tios le dan mucho énfasis a la IA, y son muy majos.
Muchas gracias. Veré que puedo hacer.
No hay que olvidar que la trampa más usada es dar más recursos al jugador controlado por IA (léase warcraft, heroes of might and magic, etc).
Para limitarlo por tiempo por cierto, los algoritmos iterativos son muy buenos:
- busca hasta el nivel X
- Mira si te queda tiempo
- Si queda tiempo, X++ y vuelta al principio
Un saludo!
Vicente
Los turnos me parece que no tienen tiempo en los juegos de estrategia por turnos como Civilization. Sin embargo, puede que eso sirva para que los CPU's actuen más rápido o no.
De todas formas, estoy programando en BlitzBasic. ¿Alguna sugerencia?
EDIT: He estado hablando con la gente de Galactic Civilizations en el IRC, y me parece que me es suficiente con lo que me acaban de decir: necesito varios Decision Making's, planeamiento a gran escala... en fin, lo necesario. Y acabo de aprender una cosa: si el CPU es más "tonto", entonces no podrá acceder a ciertas subrutinas avanzadas.