Répartition des fonctions du Moteur Interne
Posté par JMM août 26
Pour ceux que cela intéresse éventuellement, une répartition en volume des diverses fonctions principales du moteur du jeu.
Actuellement, le source représente environ 1 million de caractères… soit environ 50 mille lignes ou encore 500 pages de listing.
Le programme peut être décomposé en 6 groupes
Grande Tactique et Tactique
Perception de l’environnement (moteur CMT pour Combat-Menace-Trajectoire)
Gestion des ordres, des Organisations, des Lignes Défensives
Séquenceur : combat, consigne, menace, trajectoire
Recherche au sens large (de place, de soutien, de priorité,…)
Divers (initialisation, élaboration des vitesses, …)
La fonction grande tactique (déjà évoquée dans un précédant article) élabore le plan tactique en mode Solo.
Les trois IA tactiques (Chef d’Armée, Chef de Corps, Colonel) prennent en charge la gestion au niveau hiérarchique approprié.
Les prises de décision s’appuient sur les données quantifiées par le moteur CMT.
Les décisions se matérialise sous forme d’ordres qui se propagent au moyen des fonctions »communication des ordres »
Chaque entité (unité, canon dételé) identifie son environnement suivant trois filtres:
Combat, ou plus généralement vision de ce que que voit l’unité en tenant compte des différents masquages.
Menace mélangeant vision et acoustique. La menace est polarisée, indiquant ainsi si l’entité est Ami ou Adversaire
Trajectoire indiquant les obstacles potentiels pour le déplacement
Cette fonction est de loin la plus gourmande en ressource temporelle.
Gestion des ordres, organisation, lignes défensives
ordres: gestion complète de la transmission des ordres avec prise en charge des captures et des remises différées
organisation: à réception d’un ordre de corps, l’IA prend en charge l’organisation en tenant compte des paramètres et des contraintes
lignes défensives: cette fonction est partagée en 2 groupes
corps: recherche de la meilleure ligne de défense en s’appuyant sur les obstacles présent le long de la ligne indiquée dans l’ordre
unité: affectation des différents bataillons aux secteurs définis lors de l’étape précédente
Pour chaque cycle de 1 minute, le moteur traite séquentiellement les 4 étapes:
évaluation des pertes lors des combats par la mousqueterie, le corps à corps et le tir des canons
élaboration des consignes pour le déplacement
identification des menaces et mise en place des réactions (avec modification éventuelle des consignes)
mise en place de la trajectoire
La fonction de recherche, fortement hétérogène, prend en charge des recherches à finalité variable
placement pour une unité arrivant sur sa zone de déploiement finale
identification d’un espace adapté à un combat, surtout pour les mêlées de cavalerie
identifications des différents paramètres d’une zone donnée (type, coefficient défensif, vitesse de déplacement….)
évaluation de la qualité d’une ligne de déploiement (prise en compte des surfaces inaccessibles)
identification des unités pour le soutien et le support
évaluation des priorités, par exemple pour passer un pont
…
Et pour en terminer ce tour d’horizon du moteur interne, quelques chiffres indiquant la part relative des différentes parties du code
6.5% Stratégie
6.1% Tactique
6.6% CMT
4.9% Lignes défensives
7.5% Ordres
6.1% Organisation
11.3% Menace
5.4% Combat
2.2% Consigne
18.6% Trajectoire
13.8% Recherche
11.1% Divers
JMM
Más o menos se entiende la explicación del motor del juego, motor de la IA.
Lo que más me gusta de JMM, es lo rápido que responde a los problemas de los usuarios con el juego. Con el tiempo este juego será un referente. Menudo trabajo se ha dado este señor con el juego
http://www.jm-mathe.fr/