Programmation Orientée Jeux

Les Jeux de Stratégie - L'IA

Comment gérer l'IA ?

Nous allons voir dans cette section comment établir un comportement similaire à un joueur humain. Il ne faut pas rêver, votre IA ressemblera plus à un automate qu'à une entité pourvue de créativité. L'objectif sera d'arriver à faire jouer l'ordinateur de manière autonome. Il devra entre autre savoir construire, produire, et attaquer... le tout au bon moment.

1) Établissement des priorités

Avant que l'ordinateur ne fasse quelque chose, il faut qu'il sache ce qu'il doit faire. L'idée est de lui faire reproduire ce que vous feriez pour des cas bateaux. Par exemple, avant de construire une usine de production, il faut avoir une base économique (ex: un Péon à l'or, un autre au bois...). Avant de construire un bâtiment pour l'amélioration, il faut avoir de quoi produire des unités... bref, il faut établir une hiérarchie des priorités.

Pour que cela fonctionne, il faut jouer sur 3 variables:

En jouant avec ces 3 valeurs, il sera facile de lancer des tâches précises sans débordement.

Il faut ensuite découper les priorités en phase:

Phases et priorités

2) Un choix

Toujours dans la partie camps de base, une question se pose: comment savoir où construire ?
En voilà une bonne question ! Que faites vous quand vous jouez de manière générale ? Vous construisez votre ferme à 3km du centre, et le baraquement devant le centre ennemi ? Et bien quand vous implémentez votre IA, c'est à vous de lui décrire ce qu'il est possible de faire, et ensuite de choisir (via un random, ou selon des paramètres). Le cas simple consiste à construire autour du camps en faisant une recherche circulaire de la première place libre. Pour éviter d'avoir toujours le même camps, il est possible d'ajouter de l'aléatoire dans les choix (aller de droite à gauche ou l'inverse, sauter une case...).

Même chose pour les ressources, il faut que votre unité sache où aller, et où revenir. Recherche circulaire afin de trouver les ressources les plus proches, garder en mémoire la coordonnée du centre de stockage, et c'est partit !

Concernant la sélection des unités, il faut là aussi établir des priorités. Que faites vous lorsque vous n'avez plus de travailleurs oisifs ou à disposition ? Vous dérangez le bonhomme qui bosse, ou vous en recrutez un nouveau ? Là encore c'est à vous de décider pour que l'ordinateur puisse choisir. Si l'ordinateur possède assez de ressources, alors il peut recruter un nouveau travailleur. Sinon, il peut soit attendre un certain temps, ou prendre le premier qu'il trouve et lui affecter une nouvelle tâche.

Zone de recherche

3) Attaque kamikaze ou prudente ?

A propos de l'attaque, le principe est le même. Lorsqu'il y a assez d'unités disponibles, et qui sont sélectionnables, elles sont placées dans une liste d'attaque. Selon la structure des unités, on peut définir des champs désignant le degré d'attaque:

Il est ensuite facile d'activer l'accès à des fonctions vérifiant la présence d'unités dans un certain rayon, ou de riposter en cas de dommages.
A moins de réaliser une IA capable d'apprendre d'elle même, vous devrez définir tout ce qu'il est possible qu'elle fasse.


Lire la suite: Les Jeux de Stratégie - Conclusion

Programmation Orientée Jeux ©2010-2014
Byron 3D Games Studio