Status of AI in FlightGear: Difference between revisions

Jump to navigation Jump to search
Switch to the {{forum url}} and {{forum link}} templates for all forum links.
No edit summary
(Switch to the {{forum url}} and {{forum link}} templates for all forum links.)
Line 10: Line 10:
# failure management is meanwhile also scripted through galvedro's work: [[A_Failure_Management_Framework_for_FlightGear]]<br/>
# failure management is meanwhile also scripted through galvedro's work: [[A_Failure_Management_Framework_for_FlightGear]]<br/>
# bombable is pretty sophisticated, and could also be extended with NN for better AI
# bombable is pretty sophisticated, and could also be extended with NN for better AI
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=213439#p213439
   |{{cite web |url={{forum url|p=213439}}
     |title=<nowiki>Re: How advanced is FlightGear's AI?</nowiki>
     |title=<nowiki>Re: How advanced is FlightGear's AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 19: Line 19:
{{FGCquote
{{FGCquote
   |The whole "FGCanvas" effort thing is actually about something different, but it entails moving FDM, AP, RM etc into an "AircraftManager" class, which would be the main step required to allow AI aircraft to be also driven by FDM, AP and route manager (and possibly even an aircraft-specific Nasal instance)
   |The whole "FGCanvas" effort thing is actually about something different, but it entails moving FDM, AP, RM etc into an "AircraftManager" class, which would be the main step required to allow AI aircraft to be also driven by FDM, AP and route manager (and possibly even an aircraft-specific Nasal instance)
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=213487#p213487
   |{{cite web |url={{forum url|p=213487}}
     |title=<nowiki>Re: How advanced is FlightGear's AI?</nowiki>
     |title=<nowiki>Re: How advanced is FlightGear's AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 29: Line 29:
   |I went ahead to see how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup to easily make the whole shebang optional using a single --prop for "FGCanvas" use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably.<br/>
   |I went ahead to see how difficult it would be to put all aircraft related subsystems (fdm, replay, history, controls etc) into a single SGSubsystemGroup to easily make the whole shebang optional using a single --prop for "FGCanvas" use, but also to check if it's feasible to prepare things for later reuse by the AI traffic system (for AI traffic that uses actual FDMs, APs and RMs - but also so that things are affected by the environment) , and it's actually working - even though reset/re-init is obviously hard-coded currently, which I am breaking by shuffling around subsystems, but as long as  each SGSubsystemGroup implements the full SGSubsystem interface (postinit, reinit, shutdown etc), this could help clean up fg_init.cxx quite considerably.<br/>
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|450px]]
[[File:Dedicated-aircraft-subsystem-group-for-fgcanvas.png|450px]]
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214262#p214262
   |{{cite web |url={{forum url|p=214262}}
     |title=<nowiki>Re: FGCanvas Experiments & Updates</nowiki>
     |title=<nowiki>Re: FGCanvas Experiments & Updates</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 47: Line 47:
<br/>
<br/>
So if not for the Carriers, I think we could safely get rid of the AI scenarios - Nasal-driven Wingmen would be far superior in interactivity.
So if not for the Carriers, I think we could safely get rid of the AI scenarios - Nasal-driven Wingmen would be far superior in interactivity.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=176702#p176702
   |{{cite web |url={{forum url|p=176702}}
     |title=<nowiki>Re: AI-Scenarios</nowiki>
     |title=<nowiki>Re: AI-Scenarios</nowiki>
     |author=<nowiki>Thorsten</nowiki>
     |author=<nowiki>Thorsten</nowiki>
Line 62: Line 62:
Using Nasal, it would be possible to create AI traffic that responds to ATC instructions, and even ATC controllers that control simulated and AI traffic<br/>
Using Nasal, it would be possible to create AI traffic that responds to ATC instructions, and even ATC controllers that control simulated and AI traffic<br/>
So there's tons of flexibility here without C++ developers and their spare time being the bottleneck
So there's tons of flexibility here without C++ developers and their spare time being the bottleneck
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=176705#p176705
   |{{cite web |url={{forum url|p=176705}}
     |title=<nowiki>Re: AI-Scenarios</nowiki>
     |title=<nowiki>Re: AI-Scenarios</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 82: Line 82:
<br/>
<br/>
The second method is already in use for some model animations/movements and works well, so you could concentrate on the "real" AI part.
The second method is already in use for some model animations/movements and works well, so you could concentrate on the "real" AI part.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=71357&sid=87a1bbb8eef0a7421201c0257659a68a#p71357
   |{{cite web |url={{forum url|p=71357}}
     |title=<nowiki>Re: AI development (bots) / AI engine</nowiki>
     |title=<nowiki>Re: AI development (bots) / AI engine</nowiki>
     |author=<nowiki>glazmax</nowiki>
     |author=<nowiki>glazmax</nowiki>
Line 91: Line 91:
{{FGCquote
{{FGCquote
   |The AI system itself is not all that flexible, but the various scripted approaches (tanker.nas, bombable etc) do use it as the backend for placing traffic, even though all the control logic is then handled in scripting space.
   |The AI system itself is not all that flexible, but the various scripted approaches (tanker.nas, bombable etc) do use it as the backend for placing traffic, even though all the control logic is then handled in scripting space.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=189562#p189562
   |{{cite web |url={{forum url|p=189562}}
     |title=<nowiki>Re: Suitability of this software to run a swarm simulation</nowiki>
     |title=<nowiki>Re: Suitability of this software to run a swarm simulation</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 103: Line 103:
Another good example is the multiplayer pilot list, which also iterates over the property tree.<br/>
Another good example is the multiplayer pilot list, which also iterates over the property tree.<br/>
You only need to combine snippets from these two files to come up with what you need.
You only need to combine snippets from these two files to come up with what you need.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=103863&sid=287f5e97edb454a41f517f8c4d2eb7f3#p103863
   |{{cite web |url={{forum url|p=103863}}
     |title=<nowiki>Re: Working with AI/Multiplayer properties</nowiki>
     |title=<nowiki>Re: Working with AI/Multiplayer properties</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 114: Line 114:
<br/>
<br/>
Actually, you could even create scripted AI pilots and scripted AI ATC that interact with eachother - it's all doable, and doesn't require rebuilding FlightGear from source.
Actually, you could even create scripted AI pilots and scripted AI ATC that interact with eachother - it's all doable, and doesn't require rebuilding FlightGear from source.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=189488#p189488
   |{{cite web |url={{forum url|p=189488}}
     |title=<nowiki>Re: Suitability of this software to run a swarm simulation</nowiki>
     |title=<nowiki>Re: Suitability of this software to run a swarm simulation</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 135: Line 135:
You can start playing around with Nasal by using the so called "Nasal Console": [[Nasal_Console]]<br/>
You can start playing around with Nasal by using the so called "Nasal Console": [[Nasal_Console]]<br/>
[[File:Nasal_console.png|250px]]
[[File:Nasal_console.png|250px]]
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190385#p190385
   |{{cite web |url={{forum url|p=190385}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 152: Line 152:
<br/>
<br/>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/LL7bdHrR8uI" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/LL7bdHrR8uI" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=176169&sid=8f59a726b35a77c7a89ef3ccfcab542d#p176169
   |{{cite web |url={{forum url|p=176169}}
     |title=<nowiki>Re: Possibility to run a fully automatized mission ?</nowiki>
     |title=<nowiki>Re: Possibility to run a fully automatized mission ?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 172: Line 172:
<br/>
<br/>
Also, you'll inevitably need to look into the Nasal documentation, too: [[Nasal_scripting_language]]
Also, you'll inevitably need to look into the Nasal documentation, too: [[Nasal_scripting_language]]
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=146562&sid=5da9333fd84aa2d8c0e6f3235e6acb11#p146562
   |{{cite web |url={{forum url|p=146562}}
     |title=<nowiki>Re: Multiple intelligent flyers</nowiki>
     |title=<nowiki>Re: Multiple intelligent flyers</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 190: Line 190:
<br/>
<br/>
Like I said, it's all perfectly possible with the tanker.nas script.
Like I said, it's all perfectly possible with the tanker.nas script.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=96233&sid=5664929fd1b8b8832383a6240f882ba9#p96233
   |{{cite web |url={{forum url|p=96233}}
     |title=<nowiki>Re: Bird strikes script</nowiki>
     |title=<nowiki>Re: Bird strikes script</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 207: Line 207:
[http://flightgear.org/forums/viewtopic.php?p{{=}}123575#p123575 Subject: Custom dialog, nasal console etc. to fire a missile?]<br/>
[http://flightgear.org/forums/viewtopic.php?p{{=}}123575#p123575 Subject: Custom dialog, nasal console etc. to fire a missile?]<br/>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/UL7jQkl1qe4" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/UL7jQkl1qe4" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=182797&sid=2ecf81922a82af585bd2485f268dd39f#p182797
   |{{cite web |url={{forum url|p=182797}}
     |title=<nowiki>Re: F-14B's Weapon System  </nowiki>
     |title=<nowiki>Re: F-14B's Weapon System  </nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |date=<nowiki>Sun May 05</nowiki>
     |date=<nowiki>Sun May 05</nowiki>
Line 217: Line 217:
   |WRT generalizing things, you would first of all want to extract the part that interacts with the AI system and encapsulate that, so that the logic can be separately re-used and maintained.<br/>
   |WRT generalizing things, you would first of all want to extract the part that interacts with the AI system and encapsulate that, so that the logic can be separately re-used and maintained.<br/>
<br/>
<br/>
Scriptable AI and scripted FDMs are very popular and we still need to come up with good tutorials/howtos for those: [http://forum.flightgear.org/viewtopic.php?f{{=}}30&amp;t{{=}}20857 viewtopic.php?f{{=}}30&amp;t{{=}}20857]<br/>
Scriptable AI and scripted FDMs are very popular and we still need to come up with good tutorials/howtos for those: {{forum link|t=20857}}<br/>
<br/>
<br/>
the next step would ideally involve coming up with an OO framework for modeling different types of missiles, possibly using subclasses for each missile type. And then, there's obviously also the FDM part, which would ideally be a separate class, too.
the next step would ideally involve coming up with an OO framework for modeling different types of missiles, possibly using subclasses for each missile type. And then, there's obviously also the FDM part, which would ideally be a separate class, too.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=196554#p196554
   |{{cite web |url={{forum url|p=196554}}
     |title=<nowiki>Re: F-14B's Weapon System</nowiki>
     |title=<nowiki>Re: F-14B's Weapon System</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 233: Line 233:
<br/>
<br/>
A properly done design will support different aircraft, different FDMs, different missile types - but also use of these missiles in AI objects, such as in the bombable addon.
A properly done design will support different aircraft, different FDMs, different missile types - but also use of these missiles in AI objects, such as in the bombable addon.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=196554#p196554
   |{{cite web |url={{forum url|p=196554}}
     |title=<nowiki>Re: F-14B's Weapon System</nowiki>
     |title=<nowiki>Re: F-14B's Weapon System</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 245: Line 245:
   |I cannot think of a single C++ modification necessary to come up with a pretty compelling prototype doing scripted ATC/AI interaction.<br/>
   |I cannot think of a single C++ modification necessary to come up with a pretty compelling prototype doing scripted ATC/AI interaction.<br/>
Creating such a demo should be between 500-800 lines of code, e.g. by adapting existing sources - and you'd end up with two classes for creating AI pilots/controllers in scripting space.
Creating such a demo should be between 500-800 lines of code, e.g. by adapting existing sources - and you'd end up with two classes for creating AI pilots/controllers in scripting space.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=229629#p229629
   |{{cite web |url={{forum url|p=229629}}
     |title=<nowiki>Re: Anyone here play FSX?</nowiki>
     |title=<nowiki>Re: Anyone here play FSX?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 274: Line 274:
<br/>
<br/>
(One could even implement the AI ATC backend using Nasal by using the same approach, but that isn't as interesting due to the performance issues involved)
(One could even implement the AI ATC backend using Nasal by using the same approach, but that isn't as interesting due to the performance issues involved)
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=66463&sid=7d463c84e53286b9dada70fc2cbd629a#p66463
   |{{cite web |url={{forum url|p=66463}}
     |title=<nowiki>Making AI traffic & ATC work together</nowiki>
     |title=<nowiki>Making AI traffic & ATC work together</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 286: Line 286:
<br/>
<br/>
Just a little damper, Bombable is not really supported and imho wasn't conceived with software architecture in mind. I think it would be better to think on a robust and modular AI implementation so any other existing or future piece could use it without requiring Bombable. This doesn't say that Bombable couldn't use it.
Just a little damper, Bombable is not really supported and imho wasn't conceived with software architecture in mind. I think it would be better to think on a robust and modular AI implementation so any other existing or future piece could use it without requiring Bombable. This doesn't say that Bombable couldn't use it.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=161203&sid=cdbcaaa2eec329e95718082e84d7a04d#p161203
   |{{cite web |url={{forum url|p=161203}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>xiii</nowiki>
     |author=<nowiki>xiii</nowiki>
Line 297: Line 297:
I am disagreeing a little with xiii regarding the feasibility of using the bombability package for this, it's actually pretty well-written and well-commented source code. However, it is obviously a huge and complex piece of software. Just understanding how everything works, will take weeks or even months. <br/>
I am disagreeing a little with xiii regarding the feasibility of using the bombability package for this, it's actually pretty well-written and well-commented source code. However, it is obviously a huge and complex piece of software. Just understanding how everything works, will take weeks or even months. <br/>
In other words, it might be simpler to start out with something standalone - i.e. based on the tanker.nas example, so that you could first create an AI bot using NN which controls the tanker (or some other aircraft) and then consider integrating this with the bombable package later on.
In other words, it might be simpler to start out with something standalone - i.e. based on the tanker.nas example, so that you could first create an AI bot using NN which controls the tanker (or some other aircraft) and then consider integrating this with the bombable package later on.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=161383&sid=cdbcaaa2eec329e95718082e84d7a04d#p161383
   |{{cite web |url={{forum url|p=161383}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 316: Line 316:
* Also right now Bombable implements loops as a special/separate routine - but they are easy enough to trigger with the same API type of approach, just send the data along via the API to say 'start loop' and a few parameters to define what the loop will do.<br/>
* Also right now Bombable implements loops as a special/separate routine - but they are easy enough to trigger with the same API type of approach, just send the data along via the API to say 'start loop' and a few parameters to define what the loop will do.<br/>


   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=163315&sid=cdbcaaa2eec329e95718082e84d7a04d#p163315
   |{{cite web |url={{forum url|p=163315}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 331: Line 331:
<br/>
<br/>
So--I think this *could* be done with Bombable as a completely separate module that only interfaces with Bombable via an API type interface and furthermore, the API would be pretty simple.  I think.  (Famous last words, I know!)
So--I think this *could* be done with Bombable as a completely separate module that only interfaces with Bombable via an API type interface and furthermore, the API would be pretty simple.  I think.  (Famous last words, I know!)
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=163315&sid=cdbcaaa2eec329e95718082e84d7a04d#p163315
   |{{cite web |url={{forum url|p=163315}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 344: Line 344:
<br/>
<br/>
Making an complete, realistic AI fighter pilot module is a pretty daunting project, really!  The only thing that makes me think it is even possible at all is that the current Bombable pilot AI really only has a very, very few basic behaviors (attack in certain situations, evade in certain situations, do a loop in certain situations, retreat in certain situations--that's about it) and it really works much better than I ever imagined it would, given that absolute simplicity and complete unsophisticated-ness of the AI pilot model it's using.
Making an complete, realistic AI fighter pilot module is a pretty daunting project, really!  The only thing that makes me think it is even possible at all is that the current Bombable pilot AI really only has a very, very few basic behaviors (attack in certain situations, evade in certain situations, do a loop in certain situations, retreat in certain situations--that's about it) and it really works much better than I ever imagined it would, given that absolute simplicity and complete unsophisticated-ness of the AI pilot model it's using.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=163316&sid=cdbcaaa2eec329e95718082e84d7a04d#p163316
   |{{cite web |url={{forum url|p=163316}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 357: Line 357:
<br/>
<br/>
It should definitely be simpler to do this with some standalone aircraft, or maybe just the tanker.nas module. So that we could tackle this task separately, reuse as much of the bombable code as possible, and re-integrate the results later on via some sort of API, like you say.
It should definitely be simpler to do this with some standalone aircraft, or maybe just the tanker.nas module. So that we could tackle this task separately, reuse as much of the bombable code as possible, and re-integrate the results later on via some sort of API, like you say.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=163343&sid=cdbcaaa2eec329e95718082e84d7a04d#p163343
   |{{cite web |url={{forum url|p=163343}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 370: Line 370:
<br/>
<br/>
Also it's worth mentioning that there have been discussions on exposing the autopilot/route manager system and the FDM system to Nasal space via the property tree and/or new Nasal extension functions, that could also help to make some old code obsolete, i.e. because a real autopilot or FDM could be used for scripted AI traffic eventually.
Also it's worth mentioning that there have been discussions on exposing the autopilot/route manager system and the FDM system to Nasal space via the property tree and/or new Nasal extension functions, that could also help to make some old code obsolete, i.e. because a real autopilot or FDM could be used for scripted AI traffic eventually.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=163343&sid=cdbcaaa2eec329e95718082e84d7a04d#p163343
   |{{cite web |url={{forum url|p=163343}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 380: Line 380:
{{FGCquote
{{FGCquote
   |the AI in its current form is fortunately still hard coded and not based on [http://en.wikipedia.org/wiki/Artificial_neural_network neural networks], otherwise they may even predict your actions/evasive maneuvers
   |the AI in its current form is fortunately still hard coded and not based on [http://en.wikipedia.org/wiki/Artificial_neural_network neural networks], otherwise they may even predict your actions/evasive maneuvers
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=86630&sid=f642c30958be668ab3082d7fec56be32#p86630
   |{{cite web |url={{forum url|p=86630}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 389: Line 389:
{{FGCquote
{{FGCquote
   |If you know Nasal, you could certainly teach bombable to become a bit smarter, i.e. by adding support for standard combat maneuvers (like you mentioned). In its simplest form you could code a state machine that responds to standard situations with a randomly chosen standard response (and maybe some dynamic variation). It would be a matter of coming up with a state machine implementation in Nasal so that the AI can match up situations against suitable responses. It is definitely possible. I was in fact talking to flug a while ago about adding neural network-based AI to bombable. If there are enough people interested in this aspect of making bombable even smarter, then we could certainly come up with some more challenging AI bots.
   |If you know Nasal, you could certainly teach bombable to become a bit smarter, i.e. by adding support for standard combat maneuvers (like you mentioned). In its simplest form you could code a state machine that responds to standard situations with a randomly chosen standard response (and maybe some dynamic variation). It would be a matter of coming up with a state machine implementation in Nasal so that the AI can match up situations against suitable responses. It is definitely possible. I was in fact talking to flug a while ago about adding neural network-based AI to bombable. If there are enough people interested in this aspect of making bombable even smarter, then we could certainly come up with some more challenging AI bots.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140015&sid=45d53ccb09ba0869e875fe5ce253c3b8#p140015
   |{{cite web |url={{forum url|p=140015}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 405: Line 405:
<br/>
<br/>
There is also some good information available on creating autonomous dogfight agents: [http://www.kbs.twi.tudelft.nl/docs/MSc/2005/Solinger_David/thesis.pdf CREATING A DOGFIGHT AGENT: The design and implementation of a fully autonomous agent that can fly an airplane during a one-to-one dogfight].
There is also some good information available on creating autonomous dogfight agents: [http://www.kbs.twi.tudelft.nl/docs/MSc/2005/Solinger_David/thesis.pdf CREATING A DOGFIGHT AGENT: The design and implementation of a fully autonomous agent that can fly an airplane during a one-to-one dogfight].
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=86696&sid=313660611da3e2e0cc270be9151e6594#p86696
   |{{cite web |url={{forum url|p=86696}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 418: Line 418:
<br/>
<br/>
In fact, these "Norns" were even so good at doing their job in the simulated world, that they were immediately used to fly real aircraft, namely UAVs
In fact, these "Norns" were even so good at doing their job in the simulated world, that they were immediately used to fly real aircraft, namely UAVs
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=86696&sid=313660611da3e2e0cc270be9151e6594#p86696
   |{{cite web |url={{forum url|p=86696}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraft...</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 426: Line 426:
{{FGCquote
{{FGCquote
   |We talked about this a number of times, and the bombable developer (flug) repeatedly indicated an interest in adding this
   |We talked about this a number of times, and the bombable developer (flug) repeatedly indicated an interest in adding this
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=161287&sid=cdbcaaa2eec329e95718082e84d7a04d#p161287
   |{{cite web |url={{forum url|p=161287}}
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |title=<nowiki>Re: Possibility of incorporating "learning" AI?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 439: Line 439:
<br/>
<br/>
But, especially if there is interest to make like a neural net type intelligent/learning system for AI fighter aircraft I think both the Bombable and Flightgear problems could rather easily be solved.  The changes that would be required in FlightGear's C code are not that difficult, I believe.
But, especially if there is interest to make like a neural net type intelligent/learning system for AI fighter aircraft I think both the Bombable and Flightgear problems could rather easily be solved.  The changes that would be required in FlightGear's C code are not that difficult, I believe.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140349&sid=45d53ccb09ba0869e875fe5ce253c3b8#p140349
   |{{cite web |url={{forum url|p=140349}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 456: Line 456:
<br/>
<br/>
Considering the very, very basic nature of their behavior programming, they actually engage in some pretty complex behavior.
Considering the very, very basic nature of their behavior programming, they actually engage in some pretty complex behavior.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140351&sid=4aa5400d0368eaa508a44abd83e43073#p140351
   |{{cite web |url={{forum url|p=140351}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 470: Line 470:
As I've mentioned in a few other messages, Bombable is always limited by FG's native AI flight system, which is very sedate both as far as turning and (even more so) climbing &amp; diving.  It's really designed to model airliners flying sedately from there to there &amp; it will take just a few changes to the underlying C code to make more complex &amp; aggressive maneuvers possible.<br/>
As I've mentioned in a few other messages, Bombable is always limited by FG's native AI flight system, which is very sedate both as far as turning and (even more so) climbing &amp; diving.  It's really designed to model airliners flying sedately from there to there &amp; it will take just a few changes to the underlying C code to make more complex &amp; aggressive maneuvers possible.<br/>


   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140351&sid=4aa5400d0368eaa508a44abd83e43073#p140351
   |{{cite web |url={{forum url|p=140351}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 480: Line 480:
{{FGCquote
{{FGCquote
   |I'd suggest to get started by looking at the tanker.nas script instead - fox2.nas, the f14b demo and the bombable script are much more sophisticated, while tanker.nas is really pretty simple and straightforward: {{gitorious url|fg|fgdata|commit=01781f83715d90b6bf2df5c6210f766d0090083d|path=Nasal/tanker.nas}}
   |I'd suggest to get started by looking at the tanker.nas script instead - fox2.nas, the f14b demo and the bombable script are much more sophisticated, while tanker.nas is really pretty simple and straightforward: {{gitorious url|fg|fgdata|commit=01781f83715d90b6bf2df5c6210f766d0090083d|path=Nasal/tanker.nas}}
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190358#p190358
   |{{cite web |url={{forum url|p=190358}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 492: Line 492:
<br/>
<br/>
Also, it will be important if you are going to control the main aircraft, or some form of AI aircraft - because properties may differ then ...
Also, it will be important if you are going to control the main aircraft, or some form of AI aircraft - because properties may differ then ...
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190358#p190358
   |{{cite web |url={{forum url|p=190358}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 504: Line 504:
  <br/>
  <br/>
So this could then be used to create such "bots" (scripted pilots) for aircraft by using Nasal.
So this could then be used to create such "bots" (scripted pilots) for aircraft by using Nasal.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=70631&sid=87a1bbb8eef0a7421201c0257659a68a#p70631
   |{{cite web |url={{forum url|p=70631}}
     |title=<nowiki>Re: AI development (bots) / AI engine</nowiki>
     |title=<nowiki>Re: AI development (bots) / AI engine</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 525: Line 525:
<br/>
<br/>
So, basically, you really only need to set properties via setprop/prop.nas to control the route manager and/or autopilot, which will in turn allow you to control the main aircraft - this is much more straightforward than controlling AI traffic, because all these hooks aren't currently exposed yet.
So, basically, you really only need to set properties via setprop/prop.nas to control the route manager and/or autopilot, which will in turn allow you to control the main aircraft - this is much more straightforward than controlling AI traffic, because all these hooks aren't currently exposed yet.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190385#p190385
   |{{cite web |url={{forum url|p=190385}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 535: Line 535:
   |you will mainly use the autopilot to control the aircraft (since it has a real FDM it's kinda hard to control), and we would definitely recommend one with a developed autopilot (the 777s are really excellent with everything and has a good autopilot with all features you want). I don't fly in aircraft a lot, and like only three times with an autopilot, so I can't recommend any other aircraft with good autopilots. But one option with the 777 is that you could potentially use Nasal to dynamically edit routes that the aircraft just flies – not much work there. Another approach would be manually adjusting the autopilot parameters (like heading hold, bank angle, and stuff like that) through Nasal feedback algorithms for aircraft that don't have a.route manager. You could also couple this with the XML autopilot (now called "property rule") system to have real PIDs, easy lowpass, etc.<br/>
   |you will mainly use the autopilot to control the aircraft (since it has a real FDM it's kinda hard to control), and we would definitely recommend one with a developed autopilot (the 777s are really excellent with everything and has a good autopilot with all features you want). I don't fly in aircraft a lot, and like only three times with an autopilot, so I can't recommend any other aircraft with good autopilots. But one option with the 777 is that you could potentially use Nasal to dynamically edit routes that the aircraft just flies – not much work there. Another approach would be manually adjusting the autopilot parameters (like heading hold, bank angle, and stuff like that) through Nasal feedback algorithms for aircraft that don't have a.route manager. You could also couple this with the XML autopilot (now called "property rule") system to have real PIDs, easy lowpass, etc.<br/>


   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190395#p190395
   |{{cite web |url={{forum url|p=190395}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Philosopher</nowiki>
     |author=<nowiki>Philosopher</nowiki>
Line 544: Line 544:
{{FGCquote
{{FGCquote
   |there are two aspects to Nasal: that of interaction with itself and with the property tree. For your purposes, the property tree is going to be your communication with the wider FlightGear code. Nasal also can use its own mechanisms to interact with different things (file system, route manager, fgcommands, ...). In interest of the web browser analogy, XML in FlightGear is like HTML. Specifically it is responsible for setting up much of the property tree that FlightGear's subsystems act off of. David Megginson (creator of FG's property tree) once said that "XML should provide the nouns, Nasal should be the verbs" (or something, that isn't a direct quote) – so PropertyList XML is really good at providing data that Nasal can work off of. For like the fox2.nas script, this means that ideally all of the specific data about the missile would be taken from Nasal and stored in an XML file (which would be loaded by the Nasal file and the data would be copied over).
   |there are two aspects to Nasal: that of interaction with itself and with the property tree. For your purposes, the property tree is going to be your communication with the wider FlightGear code. Nasal also can use its own mechanisms to interact with different things (file system, route manager, fgcommands, ...). In interest of the web browser analogy, XML in FlightGear is like HTML. Specifically it is responsible for setting up much of the property tree that FlightGear's subsystems act off of. David Megginson (creator of FG's property tree) once said that "XML should provide the nouns, Nasal should be the verbs" (or something, that isn't a direct quote) – so PropertyList XML is really good at providing data that Nasal can work off of. For like the fox2.nas script, this means that ideally all of the specific data about the missile would be taken from Nasal and stored in an XML file (which would be loaded by the Nasal file and the data would be copied over).
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190395#p190395
   |{{cite web |url={{forum url|p=190395}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Philosopher</nowiki>
     |author=<nowiki>Philosopher</nowiki>
Line 553: Line 553:
{{FGCquote
{{FGCquote
   |Curt posted on his blog this article about circle holding which will be of interest: [http://gallinazo.flightgear.org/uas/spiraling-under-control/ http://gallinazo.flightgear.org/uas/spi ... r-control/]. If he isn't too busy, you could ask him about some more of the details or ask where to learn about the algorithms he used. I don't have time to reread it, but I think he used like the rascal or other small aircraft and a Nasal algorithm consisting of (I'm just guessing here) bank hold (to set up an approximate radius and to turn in a circle) and bank angle correction (to get the right radius, to stay on track and correct errors, etc.). He also mentions a lot of control mixing in the article required to maintain the fine balance of throttle/speed, bank angle/turn radius, and pitching/altitude, so it was probably more sophisticated than that.
   |Curt posted on his blog this article about circle holding which will be of interest: [http://gallinazo.flightgear.org/uas/spiraling-under-control/ http://gallinazo.flightgear.org/uas/spi ... r-control/]. If he isn't too busy, you could ask him about some more of the details or ask where to learn about the algorithms he used. I don't have time to reread it, but I think he used like the rascal or other small aircraft and a Nasal algorithm consisting of (I'm just guessing here) bank hold (to set up an approximate radius and to turn in a circle) and bank angle correction (to get the right radius, to stay on track and correct errors, etc.). He also mentions a lot of control mixing in the article required to maintain the fine balance of throttle/speed, bank angle/turn radius, and pitching/altitude, so it was probably more sophisticated than that.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190396#p190396
   |{{cite web |url={{forum url|p=190396}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Philosopher</nowiki>
     |author=<nowiki>Philosopher</nowiki>
Line 564: Line 564:
<br/>
<br/>
You could even fly a holding pattern automatically like this, without ever having to do any fancy maths.
You could even fly a holding pattern automatically like this, without ever having to do any fancy maths.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190403#p190403
   |{{cite web |url={{forum url|p=190403}}
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 581: Line 581:
<br/>
<br/>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/cvbtSG9cy20" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
<div id{{=}}"video"><iframe width{{=}}"420" height{{=}}"315" src{{=}}"http://www.youtube.com/embed/cvbtSG9cy20" frameborder{{=}}"0" allowfullscreen{{=}}""></iframe></div>
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=176169&sid=8f59a726b35a77c7a89ef3ccfcab542d#p176169
   |{{cite web |url={{forum url|p=176169}}
     |title=<nowiki>Re: Possibility to run a fully automatized mission ?</nowiki>
     |title=<nowiki>Re: Possibility to run a fully automatized mission ?</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 597: Line 597:
<br/>
<br/>
The underlying C++ code is already fairly sizable and complex, so it would be great if it could be controlled from scripting space and down-stripped to just provide the required interface itself, that should also make your job much easier.
The underlying C++ code is already fairly sizable and complex, so it would be great if it could be controlled from scripting space and down-stripped to just provide the required interface itself, that should also make your job much easier.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=134933&sid=b6751abc5e37df35975f178c70838e28#p134933
   |{{cite web |url={{forum url|p=134933}}
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 606: Line 606:
{{FGCquote
{{FGCquote
   |Note that I won't oppose other ideas, and if you have nasal code that would require certain components of the AI system to be shutdown, or need specific hooks to interface certain C++ components with nasal bindings, than I would certainly be willing to support that.
   |Note that I won't oppose other ideas, and if you have nasal code that would require certain components of the AI system to be shutdown, or need specific hooks to interface certain C++ components with nasal bindings, than I would certainly be willing to support that.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=134970&sid=b6751abc5e37df35975f178c70838e28#p134970
   |{{cite web |url={{forum url|p=134970}}
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |author=<nowiki>durk</nowiki>
     |author=<nowiki>durk</nowiki>
Line 622: Line 622:
<br/>
<br/>
For instance, the addition of support for DPs, STARs and IAPs is something that would quite obviously be useful for all 3 components, AI, ATC and the route manager. Same applies to RNAV support, I guess?
For instance, the addition of support for DPs, STARs and IAPs is something that would quite obviously be useful for all 3 components, AI, ATC and the route manager. Same applies to RNAV support, I guess?
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=134933&sid=b6751abc5e37df35975f178c70838e28#p134933
   |{{cite web |url={{forum url|p=134933}}
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 631: Line 631:
{{FGCquote
{{FGCquote
   |James and I have plans to unify our approaches. One of the reasons why I have put my plans to implement SIDs and STARs, as well as more complicated airway following in flight flightplans on the back burner is to give James some time to finish is work on the route manager. This way we can work towards a common format that is shared between the route manager and the AI system.
   |James and I have plans to unify our approaches. One of the reasons why I have put my plans to implement SIDs and STARs, as well as more complicated airway following in flight flightplans on the back burner is to give James some time to finish is work on the route manager. This way we can work towards a common format that is shared between the route manager and the AI system.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=134970&sid=b6751abc5e37df35975f178c70838e28#p134970
   |{{cite web |url={{forum url|p=134970}}
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |title=<nowiki>Re: New ATC / AI interactions</nowiki>
     |author=<nowiki>durk</nowiki>
     |author=<nowiki>durk</nowiki>
Line 640: Line 640:
{{FGCquote
{{FGCquote
   |I guess, it might be a good idea to eventually start collecting a list of things that would need to be changed, i.e. like what Thorsten did for prioritizing core-changes to improve his local weather system using the wiki.
   |I guess, it might be a good idea to eventually start collecting a list of things that would need to be changed, i.e. like what Thorsten did for prioritizing core-changes to improve his local weather system using the wiki.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140381&sid=4aa5400d0368eaa508a44abd83e43073#p140381
   |{{cite web |url={{forum url|p=140381}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 656: Line 656:
<br/>
<br/>
For your Nasal code, that would basically mean to set those new properties and handle those things in Nasal space instead. Maybe, you could come up with a list of "airliner-characteristics" that you would like to disable/control yourself eventually?
For your Nasal code, that would basically mean to set those new properties and handle those things in Nasal space instead. Maybe, you could come up with a list of "airliner-characteristics" that you would like to disable/control yourself eventually?
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140382#p140382
   |{{cite web |url={{forum url|p=140382}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 669: Line 669:
<br/>
<br/>
Then, using Nasal, we can just input our roll and vertical speed directly and not have the AI system try to change them.
Then, using Nasal, we can just input our roll and vertical speed directly and not have the AI system try to change them.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=140919#p140919
   |{{cite web |url={{forum url|p=140919}}
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |title=<nowiki>Re: AI & MP Dogfighting now working! Bombable ships, aircraf</nowiki>
     |author=<nowiki>flug</nowiki>
     |author=<nowiki>flug</nowiki>
Line 678: Line 678:
{{FGCquote
{{FGCquote
   |The AI System btw. has it's drawbacks regarding non-aircraft Entities. Also it is hard to pass specific Properties to an AI Model. It will always try to bank and pitch, which needs to be corrected per Model. This all can be solved by using animations and Nasal, but creates a lot overhead.
   |The AI System btw. has it's drawbacks regarding non-aircraft Entities. Also it is hard to pass specific Properties to an AI Model. It will always try to bank and pitch, which needs to be corrected per Model. This all can be solved by using animations and Nasal, but creates a lot overhead.
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=206786#p206786
   |{{cite web |url={{forum url|p=206786}}
     |title=<nowiki>Re: Tutorials/Missions/Adventures: requests for features</nowiki>
     |title=<nowiki>Re: Tutorials/Missions/Adventures: requests for features</nowiki>
     |author=<nowiki>DFaber</nowiki>
     |author=<nowiki>DFaber</nowiki>
Line 687: Line 687:
{{FGCquote
{{FGCquote
   |lug mentioned a while ago that he ran into the same issue with regard to his bombable/combat addon
   |lug mentioned a while ago that he ran into the same issue with regard to his bombable/combat addon
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=207065#p207065
   |{{cite web |url={{forum url|p=207065}}
     |title=<nowiki>AI support</nowiki>
     |title=<nowiki>AI support</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 696: Line 696:
{{FGCquote
{{FGCquote
   |If you can provide a list of problematic behavior patterns, I can check the C++ code to see if/how things can be made more configurable there, i.e. with a focus on non-aircraft, but also aircraft that may not fly like airliners
   |If you can provide a list of problematic behavior patterns, I can check the C++ code to see if/how things can be made more configurable there, i.e. with a focus on non-aircraft, but also aircraft that may not fly like airliners
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=207065#p207065
   |{{cite web |url={{forum url|p=207065}}
     |title=<nowiki>AI support</nowiki>
     |title=<nowiki>AI support</nowiki>
     |author=<nowiki>Hooray</nowiki>
     |author=<nowiki>Hooray</nowiki>
Line 716: Line 716:
<br/>
<br/>
These are some from the top of my head. More to come ...
These are some from the top of my head. More to come ...
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=207095#p207095
   |{{cite web |url={{forum url|p=207095}}
     |title=<nowiki>Re: AI support</nowiki>
     |title=<nowiki>Re: AI support</nowiki>
     |author=<nowiki>DFaber</nowiki>
     |author=<nowiki>DFaber</nowiki>

Navigation menu