|
From: Durk T. <dur...@gm...> - 2016-11-11 13:20:13
|
Hi Everyone, After a long break, I feel the time is right for picking up where I left off in early 2012: The continued development of the FlightGear AI Traffic system. After a couple of years of intense involvement, development came to quite a sudden halt after my day job responsibilities had to take precedence. I’ve been very reluctant to pick up the pace again afterwards, because I’ve been in much doubt whether to continue with the existing code base or to restart from scratch. To summarize, in the current code base, world wide AI Traffic is controlled from an aircraft and flight information database, known as the Traffic Manager. Whenever an aircraft is sufficiently close to the user’s aircraft, a more detailed simulation is set up using the AIModels code. Currently, the user controlled aircraft can interact with the AI generated flights in a very limited fashion. Although I am willing to, and probably will continue to develop the current code base, I’m becoming aware of a number of severe limitations of the current approach and therefore I’ve decided that it is probably a much better idea to start developing something new from scratch. So my main focus will probably be on developing a new system, I will probably continue to devote some time to maintain and improve the existing code base until the new code base takes can support the current functionality. More specifically, I’m aware of the following fundamental limitations in the current code base: · AI Traffic is not synchronized across multiple instances of FlightGear · Unclear distribution of labor between the AIModels, ATC, and Traffic Manager subsystems · A single set of (hard coded) traffic rules may work well at one airport, but fail miserably at another one. · The development cycle is slow due to the requirement to recompile, restart and wait until specific conditions are met. · The currently huge traffic database results in slow updating of all Traffic Manager controlled aircraft, resulting in slow and inconsistent initializations To eliminate these problems, I’m proposing to slowly deprecate the current approach, in favor of a more distributed approach. The idea is to write a standalone program that is interacting with the FlightGear multiplayer system. I won’t go into details yet, but the general idea is that this new program can either transmit AI traffic data via a multiplayer servers, or that it directly mimics communicates with FlightGear by acting as a multiplayer server itself. I still need to work out the details, but the general idea is that the new traffic generator will receive positional information from FlightGear, and in exchange generate traffic information for a small radius surrounding the user-controlled aircraft. At this stage, my ideas are still in a relatively rough stage, but I think it’s time to start working on it, as the inspiration I regained at FSWeekend is still fresh. This is why I’m posting a rough outline of my current ideas here. Question #1 is: What would the best approach to add this to the git repository: As a new target within the existing FlightGear git repository, or as a new git repository within the FlightGear project? Comments are welcome. Cheers, Durk |