Oh yeah... J'ai dépassé la barre psychologique des 5000 lignes!

Quoi de neuf, cette fois ci?

Désormais les fenêtres d'infos, les petites fenêtres sont déplaçables. Cela a l'air bête, mais je n'avais pas trouvé de moyen technique facile pour le faire. Grâce au forum de Panda, j'ai pu trouver des exemples, où des gens ont tenté de créer des GUI un peu plus sexy que ce qui est proposé en natif. Donc voilà, peut être que si le besoin s'en trouve, je les rendrai également redimensionnable.

Quoi d'autre? J'ai ajouté la gestion de marchand dans la base. Ils proposent des items par catégorie, pas toutes, cela dépend du marchand, et vous pouvez désormais acheter de nouveaux items pour équiper votre vaisseau. Je vais ajouter rapidement la possibilité de revendre également.

Désormais, quand on détruit un vaisseau, cela laisse des détritus. Ces détritus seront "recyclable". Il faut que j'établisse quelques règles de gestion sur ce qu'on peut récupérer sur un vaisseau détruit : Composants directement, ou matériaux. Pour cela, il va falloir équiper le vaisseau d'un équipement spécialisé dans le recyclage. Ensuite, le marchand prendra tout son intérêt :p hey hey.

Marchand

Je vais faire un peu de refactoring également sur le code, car je me rends compte que certaines parties ne sont pas assez évolutives. Typiquement, quand je modifie le template d'un vaisseau, il n'est pas répercuté dans le profil du joueur qui le possède.

Un ami à moi m'a donné de riches idées sur l'établissement de l'IA. Apparemment il existe des algorithmes "génétiques" qui donnent des résultats incroyables, et très performant. De ce que j'ai compris, c'est que chaque élément de contexte est valorisé (puissance, rapidité, situation, nombre de vaisseaux dans l'espace,...). La somme de ces éléments de contexte donne une valeur, et cette valeur ensuite est comparé à une attitude, et à des objectifs. En fonction de tout cela, l'IA réagit dans une certaine direction. Mais ce n'est pas figé. Chaque nouvel élément de contexte revalorise son attitude et ses décisions. Cela permet de gérer des situations complexes et inattendues, et permet également de gérer des intelligences de groupe.

J'étais partie dans le scriptage de tous comportements possibles avec des gros "if" imbriqués pour gérer informatiquement chaque situation en fonction de chaque attitude. Cela aurait donné des pages et des pages de scripting très laborieuse, et mécanique, pour donner des résultats invariants, et peu réalistes.

La création d'une IA par algo génétique, introduit une part d'aléatoire, et de variation importante dans le comportement, qui peut éviter d'avoir toujours les mêmes comportements, et surtout d'avoir des comportements subtilement différents quand une situation différente apparaît. Cela paraît assez confus comme cela, mais je pense que le résultat sera probant. Par contre, il va me falloir un peu de temps pour assimiler ces concepts, et les mettre en oeuvre, et ensuite du temps pour paramétriser toutes les variables inhérentes au jeu.

Un exemple concret, serait un groupe d'IA qui patrouille. Le premier repère un joueur dans son radar. Il vérifie son contexte, et comme il est en mode aggressif, il va directement en direction du joueur. Les autres, voyant un un contre un, enverront un 2e vaisseau en renfort. Si la situation dégènére ils pourront éventuellement tous y aller, ou plutôt battre en retraite, pour aller chercher de l'aide ou se mettre à couvert d'une base. Tous ne pourront pas réagir de la même manière en fonction d'un rôle. Mais l'important, est que même lors du combat, ils pourront changer de cible, pour atteindre des cibles plus critiques, ou plus faciles, ou fuir.

C'est important, ce système de réévaluation, car il permet de ne pas avoir un acharnement thérapeutique contre toute attente, ou raison logique. Si l'IA se trouve isolée, elle va essayer de retrouver ses camarades, pour être couverte, ou va fuir par exemple, et pas s'acharner sur le joueur.

BOn voilà beaucoup de travail en perspective en tout cas

Décompte:

client : 3497

Server : 1843