Sur cette page tu trouveras comment :
Comme pour le labyrinthe tu vas avoir besoin de capteurs. Pour cela pense à bien créer une variable pour chaque capteur afin de récupérer la distance et à créer une fonction mesure que tu exécuteras sans rafraichissement d’écran pour que la mesure soit immédiate.
Créé un premier capteur puis dupliques le autant que nécessaire.
Fais bien attention de régler l’orientation de chaque capteur.
Ces deux questions sont liées et il faut faire des tests pour faire les bons choix.
Pour chacun des ces modes, on va créer un arrière plan différent et selon l’arrière plan affiché, on lancera le mode en question.
En fonction du mode de jeu choisit, les mouvements du personnage seront différents.
On va donc créer différentes fonction de mouvement du personnage pour chacun de ces modes. On verra par la suite comment les coder, pour l’instant on va s’intéresser sur le choix.
Pour cela on va juste utiliser des conditions sur l’arrière plan pour choisir le code à lancer.
Selon ton projet, tu auras aussi des blocs pour la création des obstacles, ou des clones …
Dans chaque cas demande toi est-ce que c’est le même fonctionnement quelque soit le mode, ou est-ce qu’il y a des codes différents à créer.
Une fois les capteurs fonctionnels, tu vas pouvoir utiliser ces données pour entrainer l’IA.
Pour que l’IA apprennes bien il faut créer les bonnes catégories. Pour cela demandes-toi quelles sont les actions du personnage.
S’il n’y a que du déplacement, tu as les directions, mais est-ce qu’il faut ajouter une catégorie attendre pour le cas ou tu ne fais rien?
Dans le cas ou il y a du tir, est-ce qu’on peut se déplacer et tirer en même temps ?
Si oui, on aura donc beaucoup plus de catégories et cela va impacter notre code.
Pour chacune des catégories il faut enregistrer des données.
Si tu n’as pas de système de tir, c’est assez simple il suffit d’adapter le code du jeu libre en ajoutant la récupération des données
Si tu as un système de tir, tu dois te souvenir si tu as tiré ou non, et si tu t’es déplacé ou non.
Dans ce cas les conditions seront un peu plus compliqué. Je te conseille de créer une variable pour mémoriser l’information sur le tir.
Puis dans chaque déplacement regardé si tu as tiré ou non.
Dans tous les cas pense à bien faire une mesure avant d’enregistrer tes données
C’est possible qu’au moment de remplir les blocs add_training_data, tu ne trouves pas les variables à mettre pour une donnée (notamment sur la position du joueur). Si c’est le cas pense à créer une variable (par exemple X_joueur) et à récupérer cette donnée sur le sprite (par exemple sa position)
Une fois que tout est terminé, fais plusieurs parties en mode entrainement pour collecter un maximum de données.
Attention : vérifies bien que tu ais suffisamment dans chaque situation et analyse tes biais.
Par exemple, dans les données ci-dessus j’ai beaucoup plus de données droite que gauche, ce n’est pas très logique…
Tu arrives maintenant à la fin du projet, et cette étape est la plus facile.
Tu vas créer les mouvements automatique du personnage. Pour cela c’est simple:
Petit plus : pour être sur que notre IA est bien entraînée dans la boucle de jeu principale, on peut ajouter un entrainement de notre réseau.
Une fois que tout fonctionne, tu as réussi à mener à bien ta création de jeu et l’IA qui va avec.
Félicitations !
Maintenant il ne te reste plus qu’à améliorer l’IA en te demandant qu’est qui marche, qu’est ce qui ne marche pas et comment l’améliorer !