Jump to content
Sign in to follow this  
C6-Barda

Traduction du Dev Diary 36

Recommended Posts

Je poste ici la trad du dev diary 36 

 

C'est fait main, alors il y a sans doute des fötes et des trad sujettes à caution

Je corrigerai en fonction de vos remarques....

 

 

Bonjour les amis !
 
On m’a rapporté que vous avez apprécié mes précédents textes sur l’histoire et les principes des “Modèles de vols” dans notre jeu et que vous vouliez en savoir plus .
 Bien, c’est dur pour moi, le Chef Projet, d’écrire des textes intéressants sur notre travail ; parceque c’est très « technique ». C’est rempli de définitions complexes et de sujets ardus, mais bon essayons.
 
Comme mon précédent texte parlait des modèles de vols des avions, cette fois, parlons de l’intelligence articielle des pilotes de ces avions.
 
Commençons par des définitions importantes :
 
Généralement, il est difficile de trouver des différences dans les systèmes IA des simus de vol modernes parce que les principes appropriés  sont largement connus et utilisés par les dév.
 
Les IA pilotes comme les autres IA contrôlant un véhicule sont connus comme des « Machines à états » .  Cela veut dire que la totalité des tâches gérées par l’IA est découpé en régle basique numérique (un état) dans lequel  le comportement de l’IA  peut-être décrit comme son propre algorythme simple contenant un minimum de conventions.
 
Pour un pilote de la 2e guerre mondiale (WW2), nous parlons d’entre 20 et 30 variations de ces états :
 
Taxier (rouler), décoller, faire le point, suivre le leader, trouver et désigner des cibles, engager une cible aérienne, combat aérien etc…
Il y a des conditions particulières pour chaque état qui détermine son activation ou sa désactivation.
 
Chaque état contient un algorithme pour chaque commande de vol d’avion, système et armement.
Par exemple, l’état « Engager une cible au sol » a 5 niveaux de décision basique :
 
1- L’IA construit une trajectoire de vol et un gabarit de vitesse décrivant sa trajectoire dépendant de sa position et de celle de la cible
 
2- L’IA contrôle le manche,palonnier et gaz pour rester sur sa trajectoire et garder une vitesse appropriée, Tout en prenant en compte l’altitude courante et les caractéristique spécifiques de l’avion.
 
3- L’IA continue en permance d’évaluer la situation de l’avion. En cas d’apparition de menace ou si la cible effectue des manœuvres d’évitement, ou si une cible de plus haute priorité apparait ; l’IA casse « l’état d’engagement » et entre dans un autre « état » plus approprié aux nouvelles circonstances.
 
4- L’IA continue de suivre les commandes provenant du script de mission. Quand une nouvelle commande arrive, il désengagera et entrera dans l’état approprié déterminé par le script. 
 
5- L’IA surveille l’état de son appareil. Si les quantités de carburant ou de munitions sont estimées trop faible pour procéder à l’attaque, il désengagera et entrera dans l’état « Retour à la base ».
 
Ainsi, comme mentionné auparavant, cette approche est pratiquement utilisée dans toutes les simulations de vol modernes. Ce qui amène la question suivante :
Pourquoi les logiques d’IA sont-elles si  différentes dans les différents jeux ?
 
Comme toujours le diable est dans les détails, même si l’architecture de l’approche commune du comportement des IA a été réglée depuis des années. Les algorithmes  de décision qui permettent de passer entre les états, ainsi que les circonstances qui causent la bascule d’un état à l’autre, sont implémentées de manières différentes dans tous les projets.
 C’est à ce niveau qu’on peut voir les différences entre les IA des différentes simus  de vol et où les IA trouvent leur individualité.
 
 
 
Les avions IA dans ROF
 
Quand nous avons travaillé sur l’IA pour ROF, nous avons travaillé de façon similaire à tous  ses prédécesseurs; toutefois nous avons ajouté un zeste de ce qui l’a différencié compare aux IA précédentes. Nous avions choisi d’ajouter 2 caractéristiques :
 
Les pilotes IA dans ROF volent avec exactement le même avion que le joueur, sans aucune amélioration de physique. Cela plait au joueur quand une IA bouge comme si elle était vivante ; au décollage et à l’atterrissage, quand elle manœuvre, en dog fight ou quand elle est touchée.
 
Les joueurs ne se sentent pas bernés par une IA qui vole sur des rails, et ils trouvent gratifiant de contrer une manœuvre d’IA ennemie parce qu’elle n’utilise pas de modèle de vol simplifié. On ré-équilibre la situation.
 
 Un effort particulier a été porté sur l’approche complexe des logiques d’état (comme “Recherche”, “désignation de la priorité des cibles »).  L’algorithme a été complexifié de beaucoup d’embranchements, avec des conditions additionnelles multiples dans le but d’améliorer l’effet du monde virtuel sur les avions contrôlés par l’IA. Ceci afin de rendre vraiment significative cette influence quand il est crucial de prendre des décisions tactiques comme choisir une cible ou la désigner à son ailier.
 
J’ai mentionné la 1ère caractéristique dans ma précédente note, donc je vais me concentrer sur le 2e sujet.
 
Donc, comment avons-nous créé l’algorithme pour choisir une cible ? En tout premier lieu, on commence par examiner comment c’est fait en vrai, à la fois par un pilote expérimenté et par un débutant.
 
C’est pourquoi, nous avons invité 2 joueurs expérimentés d’IL2 et un consultant historique, et passé des heures à leur demander de décrire leur raisonnement de combat qui influence la priorité de désignation des cibles. Evidemment, nous avions besoin d’un système de référence, un « banc d’essai » qui nous permettrai de comparer tous les autres facteurs d’une situation de combat. Cette référence pourrait nous aider à les évaluer puis à les comparer entre eux.
 
Le paramètre de « Temps d’entrée en portée de tir » (closing time) fut choisit comme référence, et des tonnes de questions sont arrivées :
 
« Imaginez que vous avez 2 cibles dans les 12, vous croiserez la cible A dans 1 min et la B dans 2 min, mais la cible B  est plus rapide (donc plus dangereuse). De combien doit-être la B plus rapide pour que vous choisissiez de l’attaquer en 1er en ignorant la A ? »
Et l’expert a dit : « J’attaquerai la cible la plus rapide si la différence de vitesse dépasse 100km/h ». 
Nous avions une référence montrant l’importance du différentiel de vitesse et du « closing time ».
 La même approche fût utilisée pour d’autres paramètres incluant :
 
Différence de vitesse max des cibles à l’altitude actuelle
 
Différence de taux max de montée des cibles actuelles
 
Différence d’altitudes entre les cibles
 
Différence de supériorité numérique en avions ennemis proches de la cible
 
Différence  de types de cibles (chasseur, reco, bombardier)
 
Nous avons travaillé avec ces références et fait  les corrections nécessaires pour les réglages de niveaux de difficulté et nous avons obtenu une méthode standard de priorité de désignation de cibles. Par exemple, un temps de jonction de 60sec ajoute « +1 » au compteur de priorité, donc 120 sec donnera « +2 ». La situation décrite précédemment par l’expert a conduit vers le fait qu’une différence en vitesse max de 100km/h ajoutera aussi « +1 » en priorité, alors que 50km/h donnera « +0.5 » et ainsi de suite. 
 
Après ça, le pilote IA doit choisir une cible entre celles qu’il peut voir. En premier, on élimine  les cibles selon  les critères suivants :
 
- Les cibles qui prendraient trop de temps à intercepter (trop loin, trop hautes ou trop rapides)
 
- Les cibles entourées par plus d’avions ennemis et d’avions alliés autour de l’IA, ce qui sous-entend un suicide (cette condition est très utilisée par les pilotes IA de rang As) 
 
-La cible est plus haute que  l’alti max de l’avion IA
 
-Les cibles sont plus hautes et leur taux de montée plus élevé que l’avion IA
 
Après avoir éliminé les cibles non atteignables, on commence à trier les restantes par priorité. A ce moment, on passe toutes les cibles qui ont passé le filtre d’élimination et on les compare aux autres cibles restantes selon les catégories précédemment citées. On compare les paramètres de priorité des cibles 2 à 2. Puis chaque cible reçoit son score et on les trie par ordre croissant. 
 
 
Au final, on dispose d’une liste  de cibles filtrées par priorité. Quand c’est fait, il est temps de désigner ces cibles à l’ailier. Ceci se déroule en fonction du niveau de l’IA et du nombre de cible.
 
Un chef IA de haut niveau, s’il domine en altitude et en nombre d’ailiers, donnera l’ordre d’attaquer mais seulement à une quantité réduite d’ailiers. Le reste de la formation restera en altitude et fournira la couverture haute en cas de menace subite.
 
Un chef IA de bas niveau désignera 1 chasseur par cible en commençant par celles qui ont la plus haute priorité, alors qu’un chef IA de haut niveau en désignera 2 par cible et ainsi de suite.
 
De plus, les ailiers IA observant aussi la scène en continu. Ils attaqueraient la cible donnée par le leader, mais en cas de danger, ils abandonneront la tâche en cherchant à se protéger eux-même.
 
Ainsi, les ailiers IA surveillent leur chef, et s’il est attaqué par une cible non désignée, ils l’engageront et lui fourniront une protection. Et ils stopperont aussi leur attaque si elle les emmène trop loin de leur chef, en retournant en formation.  
 
Au final, ROF a donc un algorithme pour la priorité de désignation de cible fourni par le chef de section qui était le plus réaliste et sans précédent en son temps. Le système était transparent et pouvait être façilement modifié en bougeant  les paramètres appairés. En plus, ROF possédait des comportements IA comme : 
Manœuvres évasives anti DCA, système de visibilité prenant en compte l’éclairage, la couverture nuageuse, les projecteurs de recherche etc…. 
 
Le paramètre « éclairage » prennait en compte aussi les sources lumineuses de l’avion lui-même, les flashes de tir et l’incendie des structures. 
Je dois noter, qu’une part de la communauté à pris ces caractéristique comme des bugs. Par exp, quand un chef de formation IA refusait d’attaquer un joueur en cas d’infériorité numérique.
 
Actuellement ce chef IA refuse une attaque suicidaire qui le mènerait à la mort avec ses ailiers.
 
Une autre situation sujette à discussion était que le chef IA n’attaquait pas un vol de reconnaissance directement au-dessus de sa formation à haute altitude.La raison est simple :Le chef IA estimait le temps de montée à cette altitude et réalisait qu’il arriverait trop tard, la reco pourrait rejoindre son secteur du front. Dans ces situations, nous avons dû expliquer aux joueurs que les pilotes IA haut niveau n’étaient pas idiots et qu’ils ne se laisseraient pas embarquer dans une telle aventure.
 Bien sûr, un tel niveau de complexité de l’IA peut causer des bugs au début, mais nous les avons trouvé et réparé depuis le temps. Je dois particulièrement remercier Alexander Patryaev, le programmeur IA, qui a créé l’architecture du programme et qui a écrit le code qui fonctionne dans ROF depuis 4 ans et demi.
 Son travail sert de base à l’IA de notre nouveau projet IL2.
 
 
 
Les avions IA dans IL2 :BOS
 
 
Laisser moi admettre que l’IA pour un pilote de la première guerre mondiale dans ROF a été conçue avec une perspective de développement à long terme vers les avions de la 2e guerre mondiale.
 
Basiquement, on aurait pu la transporter directement de ROF avec des changements minimaux et l’implémenter dans IL2 BOS. Toutefois nous avons décidé de la porter vers un nouveau plus haut niveau et d’effectuer des changements espèrés par la majorité (des joueurs). Dans ROF nous étions concentrés sur les algorithmes de recherche de cibles et de priorités de désignation. Dans IL2 BOS, nous portons nos efforts sur les manœuvres de combat en dogfight. Une décision typique d’un pilote IA de ROF dans un « état d’attaque de cible aérienne » est de réaliser une manœuvre de pilotage standard – effectuer un virage serré vers la cible, peu importe où elle se trouve (à droite, à gauche, au-dessus ou en dessous). Pour la WW1, ceci à un sens, les combats étaient très compacts, avec des mouvements rapides et de grand taux de virages. Toutefois, les vitesses de manœuvres étaient très faibles (parfois moins de 100km/h)
 
 
La WW2 montre un visage complétement différent : Le combat requiert un espace significatif, la distance entre les adversaires est plus grand la majeure partie du temps, les vitesses sont plus grandes et les taux de virages plus faibles. Dans cette situation il est plus facile de concevoir une structure de manœuvre de combat et de lui donner une forme spécifique. Cette  mission a été donnée à notre nouveau programmeur, Ilya « Naryiv » Steshov. Ilya a commencé par modifier finement et polir l’IA de ROF, les améliorations réalisées depuis le printemps 2013 lui sont dus.
 D’une autre part, une liste de besoins a été établie avec l’assistance d’experts invités, consultés au sujet des manœuvres de combat : Quelle astuces sont utilisées, quand ont-elles été utilisées, comment joue le niveau du pilote sur la capacité à réussir des manœuvres particulières, quelles sont les conditions pour telle ou telle manœuvre etc……
Avec l’expertise très riche obtenue, nous avons trouvé une voie pour résoudre cette tâche :  « L’état d’attaque de cible aérienne » est monté au niveau de macro fonction en contenant lui-même une « machine à état »à un niveau inférieur. Ainsi chaque manœuvre de dogfight a été construit comme un « état » individuel de cette « machine à état ». 
Ce qui veut dire que la logique de cette macro fonction reste fonctionnelle en accord avec chaque condition d’entrée/sortie, ce qui nous a permis d’implémenter cette mise à jour dans ROF sans changement significatif d’architecture sur la macro-fonction
 
Maintenant, jetons un œil sur les manœuvres varies qu’un IA peut utiliser dans un dogfight dans BOS:
 
“Tourne et tire”- Un mode basique similaire à celui utilisé dans ROF. Utilisé si uune cible est proche de la ligne de tir et tout IA doit ajuster sa trajectoire par un virage et faire feu.
 
“Montée à énergie verticale” – l’avion grimpe fort à régime moteur max, en convertissant la vitesse en altitude. Usuellement utilisée pour sauver de l’énergie quand l’IA est plus rapide que l’ennemi et pourrait le dépasser.
 
“Immelman”-  L’avion fait un demi looping en montée, pratiquement le même effet que la montée à l’énergie.
 
“Montée forte”-L’avion monte fort, mais pas verticalement. L’idée générale est la même que la montée à l’énergie : convertir vitesse en altitude
 
“Virage de combat” – L’avion monte en suivant une spirale ascendante, reduisant sa vitesse. Utilisée après avoir engagé une cible par-derrière.
 
“Spirale montante” – L’avion tourne en direction approximative de la cible au régime moteur max, conservant vitesse et gain d’altitude. Cet algorithme est utilisé si une cible est à plus de 100-200 mètres au-dessus et sur le côté (pas directement devant) 
 
“Spirale descendante” – L’IA engage son virage si la cible est plus basse de 100-200 m et pas directement devant. Peut-être utilisée pour « sortir » un ennemi de la queue de l’IA si l’altitude est suffisante (la spirale descendante implique des G positifs forts et prolongés)
 
“Virage au régime max” – L’IA tourne dans le plan horizontal au régime moteur max (et prend les G max) si la cible se situe dans l’hémisphère avant, grossièrement à la même altitude.
 
“Virage standard” – L’IA tourne dans le plan horizontal au régime moteur max, mais en limitant l’excès de G pour obtenir une vitesse optimale de virage.  Ce virage est utilisé dans toutes les autres situations.
 
“Yoyo haut” – Pendant le virage,l’IA reduit son rayon de virage pour un court instant, convertissant un peu de vitesse en altitude. Ceci est pratique si la vitesse est plus élevée que l’optimal  durant le virage et l’IA converti une partie de celle-ci en altitude pour ne pas la gaspiller.
 
“Yoyo bas” – Pendant le virage, l’IA augmente légèrement le rayon pendant un bref instant, convertissant un peu d’altitude en vitesse, réduisant le temps nécessaire au virage, mais en augmentant les G. L’IA fait ceci si l’angle à la cible ne se réduit pas depuis un temps prolongé ( ce qui veut dire que les 2 avions ne peuvent se départager en virage)
 
“Split S” – L’IA se retourne sur le dos et poursuit par un immelman au régime moteur max avec beaucoup de G. Peut-être utiliser pour sortir un ennemi  de la queue de l’IA si la réserve d’altitude est suffisante.
 
“Queue de poisson”  - L’IA ajuste le gouvernail tout en compensant pour garder la ligne de vol. Ceci peut conduire un ennemi à tirer mal de trop loin, pensant que l’IA change de direction.
 
“Ciseaux à plat” – L’IA reduit sa vitesse et vire de gauche à droite pour sortir un ennemi de sa queue,si la réserve d’altitude est insuffisante, car l’IA est plus stable à basse vitesse que l’ennemi.
 
“Break de dégagement – Tuck-under break” – L’IA tire nez haut et engage un tonneau barriqué. Encore une autre astuce pour sortir l’ennemi des 6. Ceci n’est pas une manœuvre simple et est seulement accessible aux IA As.
 
“Virage defensif” – Le pilote IA garde l’ennemi sur sa perpendiculaire en montant ou descendant en permanence. Utilisé pour éviter le tir précis de l’ennemi spécialement à longue portée.
 
Mis à part le nouveau système multivoie pour les manoeuvres de  combat rapproché qui dépend du niveau de l’IA, nous avons travaillé sur l’ajout de plus de réalisme pour le comportement du chasseur IA en dogfight.
 
Nous avons implémenté un système qui  limite la vision d’une cible par l’IA qui dépend de la construction du cockpit. Il est ajusté à chaque avion et ne prend pas seulement en considération le pilote qui tourne la tête mais aussi les autres mouvements possibles (quand le pilote se redresse, se penche ou regarde par-dessus l’épaule)
 
- Dans l’”état Dog fight” nous avons introduit une nouvelle sous-routine de recherche de cible, quand la cible est perdue pour une raison ou une autre (L’IA penche l’avion et essaye de réacquérir la cible. Si ça ne suffit pas, l’IA penche l’avion de l’autre côté jusqu’à ce qu’il estime l’avoir complétement perdue)
 
- Aussi dans l’”état Dogfight”, pour les cas où la cible est presque trop haute, nous avons implémenté un mode de la montée plus optimale pour que l’IA puisse la rattraper. 
 
Pour échapper aux chasseurs ennemis, les avions d’attaque et les bombardiers ne font plus seulement des manœuvres évasives, mais peuvent plonger si l’altitude et la distance avec l’ennemi sont suffisantes.
Pour échapper aux attaques de chasseurs, bombardier et avions d’assault ne sont plus limités aux virages en S, mais peuvent plonger si l’altitude et la distance avec l’ennemi sont suffisantes.
 
Plus tard cet hiver, nous prévoyons d’ajouter un contrôleur aérien avancé, qui evaluera la situation de combat du secteur et dirigera les avions vers les cibles par radio. Ensuite les IA pourront coordonner leurs attaques avec le contrôleur.
 
- En plus du système existant d’attaque au sol, les IA seront capables d’utiliser des missile non guidés, pendant que le JU87 et le PE2 pourront bombarder en piqué vertical. 
 
- Avec les hautes vitesses, et la variété des armes, nous avons eu besoin de revoir à la fois le calcul et la trajectoire des tirs de précision. L’IA ne se contera pas juste du déplacement de sa cible mais aussi devra prendre en compte la balistique des différents canons et mitrailleuses
 
Mieux encore :
 
Les pilotes IA sont capables des comms radio avec l’aérodrome et leur chef/ailiers
Les IA sont capables de rouler du parking au décollage, puis de revenir au parking après l’atterrissage.
 
-Et bien sur, les IA savent utiliser les systèmes qui n’existaient pas pendant la première guerre mondiale, et qui sont apparus à la seconde : trains rétractables, volets, bloquage de la roulette,feu de nav, feu d’atterrissage, lampes de cockpit,aérofreins, freins de roues, surcompresseur, conservateur de vitesse, verrière ouvrante, parachutage etc…..
 
Il est intéressant de mentionner que tout ce qui relate ici est realisé, et que vous pourrez le tester avec la version d’accès premium. Le système d’IA de ROF était déjà joliment sophistiqué, mais il est devenu plus complexe dans BOS et conduira surement à d’inévitables bugs. Mais nous devrions avoir suffisamment de temps pour le polir et jusqu’à la sortie pour obtenir un niveau d’IA de très haute qualité
 
Une grande question : Quelle est la raison de tout ça ? La réponse est simple – nous essayons de créer une bataille aérienne aussi proche de la réalité que possible, pas seulement en créant des modèles de vols réalistes ( le sujet du dernier texte) mais aussi avec un comportement IA logique réaliste sophistiqué et multivoies pour les alliés et les ennemies.
 
La prochaine fois , je vous expliquerai comment nous faisons pour rendre le combat aérien plus réaliste et fascinant, car les modèles de vols et les IA ne sont pas les seuls composants du succès.
 A Plus !
 
 
ZAK : Comme vous vous souvenez , nous avons promis une skin unique du Bf109 F4 pour ceux qui ont précommandé BOS avant le 1er octobre. Maintenant nous vous suggeronsde faire votre choix et de décider celui que vous préférez. Pour les détails allez voir le sujet intitulé Unique skin for Bf109 F4 suggestions
 
Notez que le vote démarré pour donner l’opinion des fondateurs sur l’exclusivité du mod R7 pour 109F4 est toujours ouvert
 
Et pour le dessert, les fond d’écran avec le lagg3 portant la skin gagnante du précèdent vote (16/9 et 4/3)
 
 
L'original

 

Greetings Friends!
 
I've been told that you liked my previous story about the history and the principles of the FM in our game and that you'd like to know more about other aspects of the product. Well, it's hard for me, the Project Manager, to tell interesting stories about our work because it's very “technical”. It's full of complex definitions and dry topics, but I will try. Since the previous story of mine was about the planes' FM then this time it makes sense to talk about AI of the pilot flying these planes.
 
For starters, let's clear out several important definitions. Generally, it is pretty hard to find differences between AI systems in modern flight-sims because all effective and appropriate methods are widely known and used by the developers. AI pilots like every other AI controlling a vehicle is known as a state machine. This means that the entirety of tasks entrusted to the AI is split into numerous basic regimes (states) in which the AI behavior can be described with its own quite simple algorithm containing a minimum of conventions. For a WWII pilot we're speaking of 20-30 variations of such states including: taxiing, take-off, taking the point, following the leader, finding and designating targets, engaging an aerial target, aerial combat, and so on.
There are particular conditions for every state that determine its activation or deactivation.
Each state contains an algorithm for all plane controls, systems and weapons in each possible situation. For instance, the "engaging a ground target" has 5 basic decision levels:
 
AI constructs a flight trajectory and speed chart describing its changes on this trajectory depending on plane's and target's position.
AI controls stick, rudder and throttle to stay on this trajectory and keep appropriate speed, also taking into account current altitude and specific plane's parameters.
AI continues to evaluate the situation the plane is in all the time. In case if a threat appears, or if the target evades, or if targets of a higher priority appears - AI breaks the "state of engaging" and enters another state that would be more appropriate in the new circumstances.
AI keeps tracking commands coming from the mission scripts. When a new command comes, it will disengage and enter the state determined by the mission script.
AI is monitoring the condition of the plane. If the remaining fuel or ammo is estimated as insufficient to proceed to attack, it will disengage and enter the "return to base" state.
And, as I pointed out, this approach is used practically everywhere in flight sims. This brings up the question: why is the AI logics so different in different games? As always the devil is in details, even though the common approach to AI architecture has been set for several years. Inner algorithms of decision making within those "states", as well as circumstances that cause switching between states, are implemented differently in all projects - this is the level where you can see obvious differences between AI in flight sims and this is where AI achieves individuality.
 
Aircraft AI in ROF
 
When we were working on AI for ROF, we made it generally similar to all its predecessors; however we had to give it a zest that would set it apart when compared to earlier developed AIs. So we chose to add two key features:
AI-pilot in ROF flies exactly the same aircraft as the player, no simplification of physics at all. It pleases a player when AI moves like its alive - on take-off and landing, when maneuvering, dog-fighting and taking damage. Players don't feel like being cheated by the AI "moving on rails", and at the same time they find it challenging to out-maneuver an AI enemy because it's not using a simplified FM. Everything's fair for everyone.
Particular effort was applied to a complex approach to logics of states (such as "search", "target priority designation". The algorithm was made quite branchy, with multiple additional conditions aimed to boost the effect of the world on the AI-controlled plane, too make this influence really significant in situation when it makes tactical decisions like choosing a target or designating them for wingmen.
I've mentioned the first feature in my previous blog note, so I'm going to focus on the second one. So, how exactly do we create the algorithm of choosing a target? First of all, we started with an examining how it was done in real life; both for an experienced and a rookie pilot.
That's why we invited a couple of experienced IL-2 Sturmovik players and a historical consultant and spent hours asking them about key factors of combat that influence  the target priority designation. Obviously what we needed also was a reference system, a benchmark that would allow us to compare all the other factors of a combat situation. That reference would help us to evaluate them and then compare them with each other.
 
Closing time was chosen for the role of that reference. And then a whole bunch of questions came up: "Imagine you have two targets on your 12. You'll meet Target A in 1 min, and target B - in 2 minutes, but Target B is moving faster (so it's more dangerous). How much faster should Target B be so that you'd choose to attack it first and ignore Target A?"  And the expert said, "Well, I would attack the faster target if the difference in speeds would have been more than 100km/h." Thus we got reference showing importance of the difference in speeds and closing time. The very same approach was then used for other parameters, including:
Difference of max speeds of targets on their current altitude
Difference of max climb rate of targets on their current targets
Difference of altitudes the targets are at
Difference by number of enemy planes nearby the target
Difference by types of targets (fighter, recon, bomber)
We worked with those references and made necessary corrections regarding levels of difficulty settings and we got a standard method of priority target designation. For instance, a 60 sec closing time add "+1" to the priority counter, then 120 sec would mean "+2". Situations described by the experts also let us state that difference in max speed equal to 100km/h also means "+1" to priority, while 50km/h would mean "+0.5" and so on and so on.
 
After that the AI pilot needs to choose a target from those that it can see. First of all some targets are filtered out:
- Targets that will take too much time to intercept them (they may be too far, or too high, or too fast)
- Targets surrounded by more enemy fighters than the number of allies around the particular AI plane, which would mean suicide (this condition is mostly considered by Ace AI pilots)
- Target is higher than AI plane can possibly climb
- Targets are higher and their climb rates are bigger than those at the AI plane
 
After the unpromising targets are filtered out we start to arrange them by their priority. At this stage we take each target that passed the filter and compare it to other remaining targets judging by the categories listed above. We compare the priority parameters for pairs of targets. After every target receives its value we sort them by final sum from high to low.
And here we finally have a list of targets filtered by their priority. When it's done it is time to designate targets for wingmen. How this works depends on the level of AI and the number of targets.
A high level AI leader if it dominates by altitude and number of wingmen would order to attack but only to a few member of the team. The rest of them would stay and provide cover from above in case of sudden danger.
A low-level AI leader would designate 1 fighter per an enemy, starting from the ones with the highest priority; while a high-level AI would designate two per target and so on.
Furthermore, AI-wingmen are also observing the scenery all the time. It would attack a target designated by the wing leader, but when it's in danger the leader's assignment would be abandoned so the wingmen could protect themselves. Also, wingmen are watching after their leader and if it attacked by undesignated targets they would engage them and provide protection. And they would also stop the attack if it took them too far from the leader, and return to it.
 
As a result ROF got an algorithm for target priority designation performed by an AI-leader that was the most realistic and also unprecedented at that time. The system was transparent as well so we could easily tune it by just modification of those paired parameters. In addition to that, ROF has such AI behavior features as: AAA evasive maneuvers, system of visibility calculations considering lightning, cloud coverage, search light spotting, etc. The lighting parameter also takes into account light sources on the plane itself, like landing lights, machine gun flashes and fire on the airframe.
I must note that a part of the community took some of these features as bugs. For instance, when an AI squad leader used to refuse to attack a player when was outnumbered. Actually this AI-leader tried to evade a suicidal attack that would destroy him and his wingmen. Another situation that generated discussion was when AI-leader was not attacking a recon flying straight above their squad at a higher altitude. The reason is simple: AI-leader estimated the time it would take him to climb that high and realized that he would reach the necessary altitude too late, and the recon would escape to his home sector. In situations like these we had to explain to players that high level AI pilots are not dumb at all and that they'd never embark on such a venture. Of course such a high level of complexity of AI couldn't help but cause some bugs in the beginning, but we've been finding and fixing them over time. I'd like to say my special thanks to Alexander Patryaev, the AI programmer who created the program architecture and wrote the code that has been serving ROF for 4.5 years. This work will be the basis of the AI in our new IL-2 project.
 
Aircraft AI in IL2:BOS.
 
Let me admit that AI for a WWI pilot in ROF was designed with a long-term perspective to use it at WWII era planes. Basically we could just take it from ROF and with minimal changes implement it with IL2”BOS. However we decided to bring it to a new, higher level and made changes where they were expected the most. In ROF we focused on algorithms of searching for targets and priority designations for them. In IL2BOS we concentrated our efforts on combat maneuvers in dogfights. A ROF AI pilot’s typical decision in an “aerial target attack state” is to perform one standard issue maneuver – make a sharp turn to the target no matter where the target is located (to the right, to the left, above or below). For the WWI setting it made perfect sense – dog fights used to be very compact, with quick movements and tighter turn rates. However, maneuvering speeds were much lower (even less than 100km/h sometimes).
 
WWII shows a completely different face: combat requires significant space, distance between dueling planes is larger most of the time, speeds are much higher and turn rate is lower. In this situation it’s easier to draw a structure of the combat maneuvering and give it a specific form. This mission was put on our new programmer, Ilya “Naryv” Steshov.  Ilya first started with fine tuning and polishing the AI in Rise of Flight, so all the improvements there that have been made since spring 2013 are his achievements. Also, a requirements list was drafted with assistance of invited experts that consulted us about combat maneuvering: what tricks were used, when they were used, how did pilot’s skill influence the ability to perform particular maneuvers, what were the conditions for this or that maneuver, etc. With the rich expertise we obtained, we found a way to solve this task: “aerial target attack state” has been determined at a “macro-level” while containing its state machine on a lower level. So each dog-fight maneuver was constructed as an individual “state” of this state machine. Meanwhile the logic of the “macro-level” remained functioning in accordance with all input and output conditions, which allowed us to implement this update to ROF without significant architecture changes on the “macro-level”.
 
So, let's take an overview of various maneuvers AI can use in a dogfight in Battle of Stalingrad:
'Turn and Fire' – A basic mode similar to one used in ROF. Useful if a target is near the firing line and all AI needs to do is adjust aim by turning and then fire.
'Vertical Power Climb' - The Plane sharply climbs on maximum engine power, effectively converting aircraft speed into altitude. Usually this maneuver is used for saving energy in a situation where the AI has a higher speed over enemy and may fly past it.
'Immelmann' – The plane makes half of a loop climb. It’s useful in the same situations as Vertical Power Climb.
'Steep Upward Climb' - The plane sharply climbs, but not vertically. The general idea of this maneuver is the same as of Vertical Power Climb - converting speed to altitude.
'Combat Turn' - The plane climbs following a tight spiral trajectory, reducing its speed. This can be used after engaging a target from behind.
'Upward Spiral' - The plane turns around to a general direction of a target on maximum engine thrust, keeping the same speed and gaining altitude. This algorithm is used if a target is more than 100-200 meters above and to the side (not directly ahead).
'Downward spiral' - The AI engages in this turn if a target is more than 100-200 meters lower and not directly ahead. Can be used to shake a pursuing enemy from AI tail if altitude is high enough (downward spiral draws very high and prolonged positive G).
'Max Power Turn' - The AI turns in horizontal plane using maximum engine thrust (and drawing maximum G) if a target is in forward hemisphere and on roughly the same altitude.
'Standard Turn' The AI turns in horizontal plane using maximum engine thrust, measuring out excess G to achieve optimal turning speed. This turn is used in all other situations.
'High Yo-Yo' - During the turn, the AI slightly reduces the roll for a short time, trading a bit of speed for a bit of altitude. This is useful if speed is much higher than optimal during the turn and AI converts part of it to altitude to not squander it.
'Low Yo-Yo' - During the turn, AI slightly increases the roll for a short time, trading a bit of altitude for a bit of speed, reducing the time needed for a turn, but increasing excessive G. AI does this if angle to target doesn't reduce for a prolonged amount of time (this means that two planes can't 'out-turn' each other).
'Split-S' - The AI plane rolls over 'on its back' and follows with Immelmann with maximum engine thrust resulting in maximum excessive G. This can be used for shaking an enemy from AI's tail if it has a sufficient altitude reserve.
'Fishtail' - AI adjusts the rudder, simultaneously compensating for it to keep flying straight. This may lead an enemy firing at it from far distance into thinking that it is changing course and aim wrong.
'Rolling Scissors’ - The AI plane reduces speed and makes turns to left and right to shake a pursuing enemy, if altitude reserve is insufficient, but AI plane is more stable at low speeds than an enemy plane.
‘Tuck-under break’ - The AI pilot breaks the nose up and then starts a barrel roll. Just another trick used to drop the enemy off the tail. This isn’t a simple maneuver and it’s only available to AI aces.
 ‘Defensive turn’ - The AI pilot holds the enemy on a perpendicular course, permanently ascending or descending. It’s usually used to prevent enemy from precise aiming especially for attacks from a long range.
 
Apart from the new multipath system for the close combat maneuver that depends on the AI level, we have we worked on adding more realism to the AI fighter behavior in dog fight:
- We have implemented a system of limiting the visibility of a target for the AI depending on a specific cockpit construction. It is adjusted in a unique way for every plane and takes into consideration not only all pilots’ head turns, but all other possible moves as well (when a pilot half rises, ducks or looks over the shoulder).
- In the dog fight state we have introduced a new target seeking sub-mode when a target was lost for some reason (AI pilot banks the plane and tries to acquire the target once again. If this doesn’t help the AI pilot banks the plane in a counter direction until he decides that he has completely lost the target). 
- Also in the dog fight state, for the cases when the target is way too high we have implemented the mode of the most optimal climbing for the AI pilot to be able to could catch up the target.
- While deviating from enemy fighters, attack planes and bombers now not only make evasive maneuvers, but also nose dive when the altitude and the distance to the enemy allow them to do that.
- Evading fighter attacks, bomber and assault planes are not limited with the S-turns anymore, but they may also try power diving when altitude and distance to the enemy are appropriate.
- Later this winter we plan to add a forward air controller that would be evaluating the combat situation in the sector and direct planes to the targets using radio-comms. And right after that, AI-pilots will also be taught to coordinate their attacks with the air controller.
- Along with the existing system of attacking ground targets the AI planes will be able to use unguided missiles when diving, while the Ju-87 and the Pe-2 will get to drop bombs in a vertical dive.
- With the higher speeds and the variety of firearms, we needed to improve both the calculation and leading of the target for precise shooting. AI pilots are not just considering target’s motion parameters, but also have in mind the difference in ballistics for different cannons and machine guns.
 
Moreover:
- AI pilots were taught to exchange radio traffic with the airfield and with their leader/wingmen.
- AI planes were also taught to perform taxiing-out to take off and perform the taxiing operation after landing. 
- And of course the AI planes now know how to use systems that were not available during World War I. but appeared during WWII: retractable landing gears, flaps, blocking the tail wheel, navigation lights, landing lights, cockpit lamps, air brakes, wheel brakes, air-brakes, wheel-brakes, controllable supercharger, speed governor, operable canopy, parachuting, etc.
 
It is worth mentioning that everything mentioned above has been made and you’ll be able to test all of this during the early access. The AI system in ROF was already pretty sophisticated, but in BOS it became more complex and that will of course lead to inevitable bugs. But we should have enough time for polishing it up and by the time of the release we plan to have AI pilots on a very high quality level.
One might ask – what is the whole reason for doing this? The answer is simple – we are trying to create the air battle as close to reality as possible by not only by making a realistic flight model (the topic I covered last time), but by multipath, sophisticated and realistic logic of AI behavior for allies and enemies.
 
Next time I will tell you what we are doing to make air combat more realistic and fascinating because the flight model and AI are not the only components of success. See you!
 
ZAK: As you remember we promised a unique skin for Bf.109 F-4 to everyone who preordered IL2BOS before October 1st. And now we suggest you to make your choice and decide what it will look like. For details please visit the special thread called Unique skin for Bf.109F-4 - suggestions 
 
Note that the Poll started to find out founders' opinion about the exclusiveness of the R7 mod for Bf.109F-4 is still open (open this topic)
 
And for the dessert - wallpapers with LaGG-3 wearing the winning the skin which won the previous poll (16:9 and 4:3)
 
post-19-0-09619800-1381493905.jpg

 

  • Upvote 2

Share this post


Link to post
Share on other sites

J'avais commencé à le faire, mais puisque Barda a été plus rapide, un grand merci à lui.

Je vais copier sa trad dans la partie annonce.

 

Par contre, s'il y a des corrections à faire, me les faire parvenir par PM, et je les intègrerais à la traduction (Sur ce forum, il n'est pas possible d'éditer ses propres 15 minutes après leur édition, sauf si Zak modifie les droits pour une discussion donnée).

Share this post


Link to post
Share on other sites

Post copié, avec une petite mise en forme pour une meilleure lisibilité et quelques corrections d'orthographe.

Share this post


Link to post
Share on other sites

Merci pour la traduction.

Lecture très intéressante et qui donne envie ...

Share this post


Link to post
Share on other sites

Bonjour,

 

Peut-on éventuellement traduire le Developer Diary 33 afin d'avoir la première partie en français.

 

En vous remerciant d'avance.

Oui je serais également très intéressé par une traduction de ce post , histoire d'avoir un bonne aperçu de leur approche de la simulation.

Share this post


Link to post
Share on other sites

Barda, j'en ai fais les 2/3. Je termine ce soir ou demain.

(juste histoire que tu ne t'y colle pas aussi).

Share this post


Link to post
Share on other sites

Merci Rama.

 

J'en profite pour remercier tout le monde afin de rendre accessible toutes ces données.

 

Cdt

Olivier

Share this post


Link to post
Share on other sites

la traduction sur les modèles de vols est vraiment intéressante même si j'ai pas tout compris

franchement cela va dans le bons sens

il risque d'y avoir un choc de compétitivité dans nos escadrilles

on va tous repartir de 0 question sensation

Share this post


Link to post
Share on other sites

S'il y a des choses que tu n'a pas compris, c'est peut-être parce que je ne les ai pas bien traduites.

Dis-moi les phrases qui posent problème, et je verrais ce que je peux faire.

Share this post


Link to post
Share on other sites

Je viens de finir la lecture de la traduction sur les modèles de vol.

Très intéressant même si certains subtilités techniques me passent au-dessus.

Quand on fait la synthèse entre les FM et l'IA on se dit que cette simu a tout pour elle et que comme dit Hally ça va faire comme un choc !

Plus ça va plus je suis impatient de toucher la première release !

 

PS : un grand merci aux traducteurs pour leur travail.

Edited by UF_Zargos

Share this post


Link to post
Share on other sites

En parlant de traduction , j'espère qu'ils traduiront l'éditeur de missions en français.

Si il sera plus facile à utiliser ....

C'est quand même la base pour construire nos futurs projets.

Edited by LAL_Wolf

Share this post


Link to post
Share on other sites

Et qu'il y aura aussi des check-list pour les procédures de démarrage moteur !

Share this post


Link to post
Share on other sites

En parlant de traduction , j'espère qu'ils traduiront l'éditeur de missions en français.

Qui ça, ils?

Pour RoF, le jeu, l'éditeur, le manuel, tout cela a été traduit en français pas des amateurs francophones.

Pour BoS, ce sera bien sur pareil. Et le dev fera passer la traduction du statut de mod à officiel une fois qu'elle sera terminée.

 

Pour ce genre de chose, le truc qui fonctionne, c'est "aide-toi, et le dev t'aidera un peu à la fin".

 

 

Et qu'il y aura aussi des check-list pour les procédures de démarrage moteur !

Pour ça, je suis sur qu'il y aura rapidement des joueurs pour les faire.

 

Perso, les check-list... bof... mais je suis sur que certains les feront et que d'autres les utiliserons.

Share this post


Link to post
Share on other sites

Perso, les check-list... bof... mais je suis sur que certains les feront et que d'autres les utiliserons.

 

Ça me surprend un peu.

En tant que pilote pour de vrai (de planeur, certes, mais pour de vrai quand même), tu ne mets pas les fesses dans un cockpit sans avoir lu le manuel de vol.

Je n'ai pas la pratique du vol moteur, mais je pense que dans tout manuel de vol, on trouve la procédure de démarrage du moteur, non ?

La check-list (on  appelle ça le CRIS chez les vélivole) est une procédure incontournable avant de décoller, je trouverai dommage que BOS fasse l'impasse dessus.

Share this post


Link to post
Share on other sites

Ça me surprend un peu.

En tant que pilote pour de vrai (de planeur, certes, mais pour de vrai quand même), tu ne mets pas les fesses dans un cockpit sans avoir lu le manuel de vol.

Je n'ai pas la pratique du vol moteur, mais je pense que dans tout manuel de vol, on trouve la procédure de démarrage du moteur, non ?

La check-list (on  appelle ça le CRIS chez les vélivole) est une procédure incontournable avant de décoller, je trouverai dommage que BOS fasse l'impasse dessus.

Oui, bien sur qu'en vol moteur on utilise les check-list, au moins pour le démarrage moteur et pour les essais moteurs/sécurité.

 

Quand je dis "bof", ce n'est pas pour l'intérêt des check-list dans la vie réelle, mais pour leur utilisation dans le simu. Je comprend que certains veuille les utiliser, en ce qui me concerne, je peux totalement m'en passer. Les impératifs sécurité ne sont pas ce qui me motive dans une simu de combat aérien. Je ne prépare pas une mission virtuelle en me tapant le plan de vol, la météo, les NOTAM, la fiche de centrage, la planification des déroutement, etc... pas plus que je ne fais le tour de l'avion virtuel pour voir si les rivets ne bougent pas, si les axes sont bien en place, si les plaquettes de frein sont correctes, etc...

De la même façon, toujours en virtuel, je peux tout à fait me passer de me réciter la liste des actions à faire en cas de panne moteur au décollage, et des check-lists qui suivent.... et je ne suis pas sur que quand un pilote de la WWII sautait dans le pit de son avion préparé par les mécanos, moteur déjà en marche et chaud, il suivait ensuite ses check-lists avec son doigt pour ne rien oublier...

Personnellement, les check-lists dans un simulateur de combat aérien, cela me ferait rire la première fois, et ensuite cela m'ennuierait autant que le temps de chargement de la mission.

 

Mais bon c'est moi... je comprend tout à fait que d'autres soient intéressés par les check-list. Et c'est pour cela que je suis sur que des joueurs vont les dresser, et d'autres les suivre.

Share this post


Link to post
Share on other sites

Ah ! Je crois que je me suis mal exprimé.

En fait je parlais tout simplement de la procédure de démarrage du moteur qui décrit quelles actions exécuter et dans quel ordre.

Genre :

- magnétos sur 1

- ouvrir arriver essence

- gaz sur 15%

- ouvrir radiateur

- contact ON !

Effectivement je te rejoins sur le fait que pour une simulation il n'est sans doute pas nécessaire de faire une visite pré-vol, et de se tartiner toute la liste des contrôles.

Mais je n'aimerai pas me retrouver dans mon cockpit sans avoir au moins la liste des actions à mener pour démarrer le moteur.

:biggrin:

 

Share this post


Link to post
Share on other sites

Qui ça, ils?

Pour RoF, le jeu, l'éditeur, le manuel, tout cela a été traduit en français pas des amateurs francophones.

Pour BoS, ce sera bien sur pareil. Et le dev fera passer la traduction du statut de mod à officiel une fois qu'elle sera terminée.

 

 

 

 

Ben les Devs Rama...

Je sais que le manuel a été traduit par des joueurs de la communauté ..

je sais que Criquey , Snake , et Rodolphe sur check six ont fait des tutos pour les triggers et les commandes , mais je n'ai rien en pdf sur l'éditeur ou alors j'ai raté quelques choses .

Si vous avez des infos je suis preneur.

Edited by LAL_Wolf

Share this post


Link to post
Share on other sites

Ben les Devs Rama...

Et avec quel budget?

Je vais redire des choses qui me semblaient évidentes: ce je n'est pas et ne sera jamais un blockbuster. Il n'y aura jamais assez de budget pour payer des traductions professionnelles en français, espagnol, allemand, italien, etc... de tous les éléments localisables du jeu, à moins bien sur de virer une partie de l'équipe et de réduire significativement le contenu du jeu.

Donc si les francophones veulent un jeu traduit, il n'existe qu'une seule possibilité: le faire nous-même. L'autre alternative éventuelle c'est une traduction google... ce qui attirerait plus de critiques que de satisfactions (d'ailleurs, peut-être certains s'en rappellent, la toute première version de RoF était partiellement localisée avec une traduction google... pour les parties que je n'avais pas traduite.

 

Je sais que le manuel a été traduit par des joueurs de la communauté ..

Et pas que le manuel. La totalité du jeu lui-même (campagne comprise, avec les articles de presse, les bios, etc...)

 

mais je n'ai rien en pdf sur l'éditeur ou alors j'ai raté quelques choses .

Effectivement, il n'y a pas eu d'initiative francophone de traduction de l'éditeur. Autant pour moi.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...