Un petit mot sur quelque chose qui pourrait vous intéresser :
DYNAMO pour DYNAmic MOdel mission engine
L'idée remonte à quelques temps déjà quand j'ai commencé a bidouiller l’éditeur de mission DCS http://www.checksix-forums.com/viewtopi ... 5&t=202842 et que je me suis dit qu'il pourrait être sympa d'automatiser les choses ce qui m'a conduit la http://www.checksix-forums.com/viewtopi ... 5&t=203505
Suite à quelques problèmes personnels j'avais mis tout ça en standby mais comme j'ai vidé toutes les bouteilles de schnapz d’Alsace il m'a fallu trouver une nouvelle source pour noyer mon chagrin alors tant bien que mal je me suis remis doucement a tout ça... Et tant qu'a faire table rase je me suis mis en tête de faire pareil avec le code déjà bien avancé.
Donc aujourd'hui c'est un tout nouveau code, un peu mieux optimisé, paramétrable plus facilement via un certain nombre de variables déterminantes et puis aussi une approche fondamentalement différente par rapport à la conception du théâtre, dernier point qui m'a incité à ouvrir ce message aujourd'hui. A ce jour DYNAMO sait faire environ 60% de ce que savait faire son ancêtre mais ça avance assez vite du fait que je peux reprendre certaines parties du code et surtout que les écueils ont déjà été surmontés. Je ne vais pas détailler comment le théâtre était construit précédemment puisque j'ai tout changé ni sur ce qu'il était déjà possible de faire puisqu'il vous suffira de regarder le dernier message pointé pour le savoir.
En gros DYNAMO se veut a terme pouvoir faire tourner automatiquement sur un temps indéfini (sauf condition de victoire) une sorte de campagne dynamique (au sens ou les vols/convois sont définis au fur et a mesure en fonction des résultats des vols/convois précédents) avec à terme gestion des ressources. Bon il reste encore pas mal de travail en perspective pour en arriver la d'autant que la gestion des ressources sera seulement pour une version 2. Néanmoins cet aspect doit être pris en compte et réfléchi dés maintenant si possible d’où ce message.
Alors l'idée du théâtre est assez simple : se baser sur les structures 3D déjà présentes sur la map. Pas l'ensemble de celles-ci mais seulement un certain nombre a la discrétion du concepteur et choisi par le concepteur. Ça peut être sympa pour faire des théâtres avec des "géométries" différentes et des rapport de force différent. Alors pour ce faire c'est assez simple et ça fonctionne déjà même s'il reste encore quelques petites choses à coder. La seule chose que le concepteur doit faire c'est de placer dans sa mission autant de zones de déclenchement que voulues, assignées (via une convention de nom) au coté rouge ou bleu. Pour donner une importance stratégique plus ou moins forte a chacun de ses sites potentiels, il suffit de régler à sa guise le rayon de la zone de déclenchement. Le code va alors détecter automatiquement toutes les structures 3D présentes sur le théâtre dans la limite de ce rayon et construire ainsi la base de donnée des sites stratégiques du théâtre (avec pour chaque site les cibles potentielles) qui servira pour la planification des vols de l'ATO et des convois de l'OOB toujours bien sur avec la notion de brouillard de guerre déjà introduite.
Alors tout ca c'est bien beau, mais dans le périmètre scanné par le code on peut trouver tout un tas de bâtiments pas forcément stratégiquement importants. Et c'est la que j'aurais besoin de la contribution d'un ou plusieurs volontaire(s) pour aider a dresser une liste la plus exhaustive possible de toutes les structures 3D présentes sur la map avec dans l'idée de construire une table des structures les plus intéressantes a cibler pour les vols/convois.
Dans le principe il suffira de construire une table Lua qui ressemblera a ca (il ne faut pas trop s'attacher a la forme du code, ca c'est mon affaire, c'est juste pour fixer les idées:
Code : Tout sélectionner
local theater3DObjects = {
{name = "GARAGE_A_NEW", data1 = 10., data2 = 125., data3 = 0., data4 = 64.},
{name = "HOME1UG_B", data1 = 1., data2 = 15., data3 = 10., data4 = 25.},
{name = "HOME1_C", data1 = 1., data2 = 15., data3 = 10., data4 = 15.},
{name = "GARAGH-SMALL-A_NEW", data1 = 31., data2 = 1., data3 = 0., data4 = 17.},
{name = "HOME1_A_NEW", data1 = 2., data2 = 5., data3 = 10., data4 = 5.},
{name = "SKLAD_NEW", data1 = 11., data2 = 153., data3 = 0., data4 = 5.},
{name = "DOMIK1A_NEW", data1 = 7., data2 = 25., data3 = 7., data4 = 2.},
{name = "MAGAZIN_NEW", data1 = 4., data2 = 27., data3 = 0., data4 = 0.}
}
Possible que dans tout ça il y ai une cabane de jardin ou des toilettes ce qui ne sont pas forcément des cibles très stratégiques vous en conviendrez LOL
Et l'idée de la contribution serait de faire le tri dans tout ça pour ne garder que les bâtiments qui visuellement ont un sens pur un conflit. Par exemple une usine, un QG, une tour de communication et d'en faire un petit document avec nom + screenshoot pour servir de référence. Je fournis bien sur le code qui va chercher le nom des objets 3D dans la zone ciblée. Bon je sais que ça peut paraitre un peu flou mais le mieux serait d'en discuter de vive voie à l’occasion s'il y a une personne désireuse de faire ça... Ça peut-être un peu chiant quand même je ne le cache pas...
Maintenant le second point c'est que comme vous pouvez le constater, dans la table au dessus je ne me suis pas fait chier au sens ou j'ai attribué à chaque objet 3D 4 data (data1 a data4) mais bien sur l'idée est de mettre la dedans des choses pertinentes qui serviront par la suite a la gestion des ressources pour moduler les décisions de l'ATO et de l'OOB mais aussi pour déterminer l'importance d'un site stratégique... Et c'est la que j'ai besoin de vos idées pour savoir quoi mettre à la place des différents datax. Alors je donne un exemple bidon mais mon exemple au dessus pourrait par exemple prendre la forme suivante à terme :
Code : Tout sélectionner
local theater3DObjects = {
{....
{name = "FACTORY_A", fuelProd = 0., fuelCons = 125., nrjProd = 100., nrjCons = 20.},
{name = "RAFINERY_B", fuelProd = 70., fuelCons = 0., nrjProd = 0., nrjCons = 17.},
...
}
J'espère quand même que vous voyez le principe...
Donc voila s'il y en a qui ont des idées sur quels pourrait être les "data" importants à prendre en compte pour gérer les ressources d'un théâtre et quelle pourrait être l'impact de ces différents data en particulier sur l'ATO et l'OOB et bien je suis tout ouie...
Alors comme j'ai dit, dans un premier temps tout ca ne servira QUE pour choisir les meilleurs sites stratégiques (a cibler ou à défendre) pour l'ATO et l'OOB mais sans aucune impact positif ou négatif sur le reste.
Un dernier petit exemple pour que ce soit peut-être un peu plus clair.
Supposons que notre concepteur ai mis dans sa mission une zone de déclenchement sur la map qu'il a appelée "blue Brovnick Factory".
Le code va se débrouiller pour trouver tout les objets présents sur la map dans la limite du rayon de cette zone de déclenchement et ne garder que ceux qui auront été référencés dans la base de données des objets intéressants. On pourrait par exemple obtenir un truc du genre:
Code : Tout sélectionner
local startegicTab = {
name = "Brovnick Factory",
position = construit par le code,
selfDefAAA, selfDefSam, selfSup, selfDefCAP = 1., 1., 1., 1.,
AAtarg, AGtarg, RECtarg, spoted = 1., 1., 1., 1.,
stratVal = nil,
targets = {
{....
{name = "FACTORY_A", fuelProd = 0., fuelCons = 125., nrjProd = 100., nrjCons = 20.},
{name = "FACTORY_A", fuelProd = 0., fuelCons = 125., nrjProd = 100., nrjCons = 20.},
{name = "DORMITORI", fuelProd = 0., fuelCons = 10., nrjProd = 0., nrjCons = 17.},
whatever...
}
}
Bon allez c'est trop tard pour réfléchir plus....
@++