Developer Diary # 36

Salle dédiée à la série des Batlle of :
Stalingrad (BOS) Moscou (BOM), Kuban (BOK)
Avatar de l’utilisateur

Topic author
Rodolphe
Pilote Confirmé
Pilote Confirmé
Messages : 2330
Inscription : 19 mars 2007

Developer Diary # 36

#1

Message par Rodolphe »

Avatar de l’utilisateur

Ghostrider
Grand Manitou
Grand Manitou
Messages : 28507
Inscription : 04 août 2001

Re: Developer Diary # 36

#2

Message par Ghostrider »

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)

Image
Moniteur F/A-18C à l AVM http://avm-fr.com/
ImageAmd 3700x - 64 go DDR 4 3200 -Asus Tuf x570 gaming wifi - RTX 4080 16 go - SSD : 1 to NVME ( OS + simus) + 1ssd 500 GO Mx 500 simus + 1 SSD 256 GO (games) + 5 To HD(s)+ TM Warthog + Grip F/A18 - Track IR 5 - Pallo TPR - Deskpit 2 MFD+ICP +Oculus tift
Avatar de l’utilisateur

Pollux
Chef de patrouille
Chef de patrouille
Messages : 5866
Inscription : 12 février 2010

Re: Developer Diary # 36

#3

Message par Pollux »

Heu et la traduction alors... :hum: :emlaugh:


:gl: lol
Avatar de l’utilisateur

UF_Zargos
Pilote Confirmé
Pilote Confirmé
Messages : 2561
Inscription : 22 avril 2002

Re: Developer Diary # 36

#4

Message par UF_Zargos »

Ben oui quoi !
Il y a du relâchement ... :exit:
Zargos
Avatar de l’utilisateur

Ghostrider
Grand Manitou
Grand Manitou
Messages : 28507
Inscription : 04 août 2001

Re: Developer Diary # 36

#5

Message par Ghostrider »

Je passe mon tour, l equipe BOS est plus compétente que moi (Pollux et Barda) :exit:
Moniteur F/A-18C à l AVM http://avm-fr.com/
ImageAmd 3700x - 64 go DDR 4 3200 -Asus Tuf x570 gaming wifi - RTX 4080 16 go - SSD : 1 to NVME ( OS + simus) + 1ssd 500 GO Mx 500 simus + 1 SSD 256 GO (games) + 5 To HD(s)+ TM Warthog + Grip F/A18 - Track IR 5 - Pallo TPR - Deskpit 2 MFD+ICP +Oculus tift
Avatar de l’utilisateur

Nonolem
WSO Co-pilote
WSO Co-pilote
Messages : 867
Inscription : 12 octobre 2009

Re: Developer Diary # 36

#6

Message par Nonolem »

Je ne vais pas m'y coller non plus, mais pour les anglophobes, en résumé, il y a une description détaillée du comportement de l'IA dans RoF et comment il a été modifié pour BoS. Certaines modifications du comportement de l'IA implémentées dans RoF depuis ce printemps et qui servent de modèle à l'IA de BoS ont été mises au point après moult discussions entre l'équipe des devs, un historien de la WWII et des joueurs très pointus d'IL2.

Les règles de comportement de l'IA (dans RoF et dans BoS) se décomposent grosso merdo en deux parties :

_ Les règles d'engagement (fuir, attaquer, ne pas attaquer une cible trop rapide ou volant trop haut, parce qu'inutile, la priorité des cibles, etc).
_ Le comportement de l'IA en vol (en attaque au sol comme en combat aérien, décollage, atterrissage, etc...).

L'IA dans BoS sera plus pointu que dans RoF en raison de la vitesse beaucoup plus grandes des avions qui fait que les combats sont beaucoup moins rapprochés, ce déroulent dans un volume beaucoup plus grand que dans RoF. L'IA de RoF est moins pointue et plus stéréotypée dans ce domaine car les trapanelles manquent de puissance, sont lentes et ne peuvent enchaîner des manœuvres sans perdre toute leur énergie (en gros dans RoF c'est "tourne serré, pique, exquive", à ce que je vois... c'est vrai que c'est dur de faire autre chose). De plus, la technique a évolué entre les deux périodes : dans BoS, le contrôle au sol et les communications radio permettront de guider des patrouilles, coordonner des attaques, etc.

L'IA de BoS sera capable d’enchaîner toutes les manœuvres traditionnelles du combat aérien (ciseaux, immelmanns, yoyo, etc.), et ce, espérons-le, à bon escient. L'équipe de BoS s'est fixé comme but que l'IA soit un vrai défi pour le joueur humain.

Et bien sûr, comme dans RoF, comme ça a été répété bien des fois, contrairement à beaucoup de simus, l'IA ne bénéficie pas d'un modèle de vol simplifié, mais rigoureusement du même modèle de vol que le joueur humain.

Voilà, il me semble, ce qu'on peut en dire en résumé.

Un point qui m'a paru particulièrement intéressant : les angles morts des cockpits seront modélisés. L'IA ne vous verra pas suivant l'endroit où vous vous trouvez, et cela dépendra bien sûr de l'avion qu'elle pilote ! De ce fait, l'IA peut vraiment désengager parce qu'elle a perdu de vue sa cible, ou se faire surprendre ! Le texte ne précise pas (ou je ne l'ai pas vu...) si l'IA pourra voir à travers les nuages, mais il parait probable que non, d'après ce qui précède.

Bon, mon anglais n'est pas parfait, si j'ai mal interprété un truc qu'on hésite pas à me corriger. :emlaugh:
Avatar de l’utilisateur

Barda
Pilote Confirmé
Pilote Confirmé
Messages : 4156
Inscription : 21 mars 2003

Re: Developer Diary # 36

#7

Message par Barda »

Je vais me lancer mais ça va me prendre un poil de temps quand même
Avatar de l’utilisateur

Barda
Pilote Confirmé
Pilote Confirmé
Messages : 4156
Inscription : 21 mars 2003

Re: Developer Diary # 36

#8

Message par Barda »

Voici l'intro et la partie sur ROF
Reste la partie BOS pour bientôt


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 choisi 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.
Avatar de l’utilisateur

Pollux
Chef de patrouille
Chef de patrouille
Messages : 5866
Inscription : 12 février 2010

Re: Developer Diary # 36

#9

Message par Pollux »

Merci pour le temps passé... :notworthy
Avatar de l’utilisateur

Barda
Pilote Confirmé
Pilote Confirmé
Messages : 4156
Inscription : 21 mars 2003

Re: Developer Diary # 36

#10

Message par Barda »

En entier

Sujet N°2: Fonctionnement de l'IA

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)
Avatar de l’utilisateur

UF_Zargos
Pilote Confirmé
Pilote Confirmé
Messages : 2561
Inscription : 22 avril 2002

Re: Developer Diary # 36

#11

Message par UF_Zargos »

Ben merci.
Ca va faire de la lecture pour les longues soirées d'hiver ... heu ... d'automne !
Zargos
Avatar de l’utilisateur

Topic author
Rodolphe
Pilote Confirmé
Pilote Confirmé
Messages : 2330
Inscription : 19 mars 2007

Re: Developer Diary # 36

#12

Message par Rodolphe »

...

Merci à Barda pour la traduction de ce texte technique.

Si la politique de la maison C6 le permet, est-il possible de transférer cette traduction vers le forum francophone de il2sturmovik.com ?

http://forum.il2sturmovik.com/forum/43- ... actualite/


...
Avatar de l’utilisateur

gris
WSO Co-pilote
WSO Co-pilote
Messages : 900
Inscription : 28 janvier 2008

Re: Developer Diary # 36

#13

Message par gris »

merci barda
Avatar de l’utilisateur

Barda
Pilote Confirmé
Pilote Confirmé
Messages : 4156
Inscription : 21 mars 2003

Re: Developer Diary # 36

#14

Message par Barda »

Je vais le faire

Edit : c'est fait

Par contre je ne peux pas poster dans la partie annonce (normal...) donc je l'ai mis dans la partie discussion gale
Avatar de l’utilisateur

Topic author
Rodolphe
Pilote Confirmé
Pilote Confirmé
Messages : 2330
Inscription : 19 mars 2007

Re: Developer Diary # 36

#15

Message par Rodolphe »

...
Barda a écrit :Je vais le faire

Edit : c'est fait

Par contre je ne peux pas poster dans la partie annonce (normal...) donc je l'ai mis dans la partie discussion gale
Merci Barda.

La partie annonce est effectivement réservée .

Sur cette partie du forum, Rama est notre inestimable et irremplaçable "Dieu Vivant" ! :exit:

...
Répondre

Revenir à « IL-2 Great Battles (Stalingrad, Moscow, Kuban...) »