DYNAMO: Discussion/Contribution/Beta test

Salle centrale dédiée à DCS World et ses modules -Questions, addon et support

Topic author
Cougar FFW04
Chef de patrouille
Chef de patrouille
Messages : 5692
Inscription : 20 janvier 2002

DYNAMO: Discussion/Contribution/Beta test

#1

Message par Cougar FFW04 »

Bonjour tout le monde,

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.} }
La j'ai pris vraiment des structures au hasard et j'ai vraiment aucune idée de ce à quoi ressemble les objets en question...
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.}, ... }
Bon tout ça est très clair dans ma tête mais pas si facile a expliquer...
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... } }
Et on pourrait par exemple décider que la valeur stratégique d'un site serait simplement le somme des nrjPod - nrjCons des différentes structures répertoriées sur le site en question (ici 2 FACTORY_A et un DORMITORY). Ce qui dans le cas présent, avec le bout d'exemple bidon donnerai pour ce site une valeur stratégique de 100+100-(20+20+17)=143

Bon allez c'est trop tard pour réfléchir plus....

@++
Dernière modification par Cougar FFW04 le jeu. févr. 20, 2020 3:45 pm, modifié 1 fois.
Avatar de l’utilisateur

usul
Pilote Philanthrope
Pilote Philanthrope
Messages : 1473
Inscription : 06 décembre 2003

Re: DYNAMO: Discussion/Contribution/Beta test

#2

Message par usul »

Merci pour le travail que tu fais. Une campagne dynamique dans DCS, c’était inespéré. Ça va redonner de l’intérêt à ce simulateur ou tout au moins lui donner cette profondeur qui lui manque.
i7 12700F - Gigabyte Z690 UD - RTX 4070 - 32Go RAM DDR4 - W11 64bits - WINWING F16EX - VPC MongoosT-50CM3 - Pro Flight Switch Panel - Pro Flight Radio Panel - Pro Flight Multi Panel - TQ6+ - 4 x FIP - Thrustmaster TPR - TrackIR 5 - 3x MFD avec 3 écrans HDMI 8" - VPC Controle Panel - VPC Rotor TCS Plus Base -VPC Hawk 60 Collective Grip - StreamDeck - Ecran 34" curved"
Avatar de l’utilisateur

phoenix
Pilote Philanthrope
Pilote Philanthrope
Messages : 14927
Inscription : 05 août 2001

Re: DYNAMO: Discussion/Contribution/Beta test

#3

Message par phoenix »

A surveiller de trés prêt. :yes:
Avatar de l’utilisateur

DID
Nouvelle Recrue
Nouvelle Recrue
Messages : 126
Inscription : 01 décembre 2002

Re: DYNAMO: Discussion/Contribution/Beta test

#4

Message par DID »

Merci pour ton boulot !!! J’espère que tu trouvera du monde pour t'épauler.
Avatar de l’utilisateur

white-sky
Pilote Confirmé
Pilote Confirmé
Messages : 3230
Inscription : 21 août 2012

Re: DYNAMO: Discussion/Contribution/Beta test

#5

Message par white-sky »

Salut, je pense que tu dois pouvoir récupérer les noms des maisons via leur fichier EDM, auquel cas ce serait soit dans Bazar/World/Shapes, soit directement dans Mods/terrain/caucasus.

Je pense hein. Dernière possibilité pour cela, tu as les fichiers texture par saisons du Caucase, on y trouve les textures de chaque bâtiment avec leur nom.
Image Amour sacré de la Patrie
Conduis, soutiens nos bras vengeurs !
Liberté ! Liberté chérie,
Combats avec tes défenseurs !
Sous nos drapeaux que la Victoire
Accoure à tes mâles accents !
Que tes ennemis expirants
Voient ton triomphe et notre gloire !
Répondre

Revenir à « DCS World : Salle principale »