Bombable development roadmap

From FlightGear wiki
Jump to navigation Jump to search
TODO LIST FOR BOMBABLE
(for FlightGear ver 1.9.0, 1.9.1, 2.0, 2.4.0)

Brent Hugh, brent .AT. brenthugh.com
Available at http://brenthugh.com/flightgear/bombable4-2.zip

Some of these have been accomplished--marked with an X.






Before 4.5 release
-------------------
* Bug: If the terminal velocity code is omitted, FG crashes.  http://forum.flightgear.org/viewtopic.php?f=6&t=5742&p=141749#p141688 
 
* Bug: After say 15 minutes of dogfighting, the AI will sometimes just start hugging the ground. They fly so low that you need nerves of steel to track them. They're not taxiing, but they're flying at less than 25 AGL, even though I've set the combat ops floor to 2000 AGL! http://forum.flightgear.org/viewtopic.php?f=6&t=5742&p=141748#p141763
 
* Some users report the AI bullets are never seen.


For 4.4 
-------------- 

X All scenarios work but any attempt to select livery or logo on any 
aircraft results in an immediate crash with: Fatal error: "$" found 
in property name after "

X Bombable gets extra menus on re-init, reposition.

X Bombable could move the submodels (bomb explosion, bullet hits) 
from the point that FG detects (at the fairly large damage cylinder 
around objects) to their point of nearest approach to the object, 
which is what Bombable uses to calculate damage. It would probably 
look a lot more realistic.


* Bombable resets the blackout & redout values whenever it is 
running. This is to ensure fairness/compatibility between different 
people playing with Bombable over MP, but Bombable probably 
shouldn't do this except for its own specially set up Bombable 
aircraft. [As of 4.4 this is turned off for all aircraft except the 
ones distributed with the Bombable release, but this may require
testing/refinement to be sure.]

X Smoke/contrails seem to be missing from the main aircraft.

X Users are reporting that smoke/flares/fires 
don't work. [Might be fixed in 4.4]

X Need to test whether damage reset broadcasts properly over MP.

X Damage radius for bombs (especially smaller ones) may need some 
tweaking. They seem to severely damage objects too far distant.

* After AI aircraft damage is repaired aircraft still stay 
sunk/crashed/immobile.

* Bombable assumes that that damage radius is centered at the (0,0,0)
point of the aircraft. This appears to be wrong in many cases 
(often (0,0,0) is in the nose or front/middle, rather than the 
center of the aircraft) so figuring out this offset per aircraft 
would increase realism quite a bit. There could be a different 
damage radius center for the main damage radius and the vital damage 
radius.

* Bombs/rockets may need to have fuse distance taken into consideration. 
Currently in Bombable, any armament that comes within FG's damage 
cylinder (50 ft above & below the aircraft & 100 ft radius) is 
assumed to have exploded at the point of the armament's nearest 
approach to the target aircraft. Then the armament's damage radius 
is applied (which is quite large, for large-sized ordinance). This 
doesn't take into account the fact that some ordinance may just go 
harmlessly whistling by, ie if it exploded at 20 meters distance 
there would be huge damage, but if it just passes by at 20 meters 
and explodes 4000 meters down, there could be zero damage. Right now 
this isn't a huge problem because FG also explodes the ordinance at 
the point where it enters the impact cylinder (ie, the 'fuse' 
setting for submodels actually sets a fuse at the given fuse 
distance **from the impact cylinder** not from the object itself.) 
So (in most cases) it does look real--the ordinance explodes and 
then has the distance effects it would have if it exploded (at the 
nearest point to the target aircraft, though--that is Bombable's way 
of calculating it).

* Code clean-up; removing dead code and un-needed comments from 
previous version.

* Integrate into main FG for next FG release.
 
* Put Bombable into a subdirectory of the Nasal directory & split it 
into several smaller, better organized files

X Revamp menu.

X Ferries' weapons are extremely/too damaging, even when set to very 
weak/ineffective levels.

* A-10 starts with G-force/Acceleration damage off though it should 
be on.

* Make sure that **everything** turns off when the Bombable Module 
Enabled button is de-selected. For instance, the smoke/fire/contrails 
may still show up, even when Bombable is deselected in the main menu.

* Make sure that everything turns back on properly when the Bombable 
Module Enabled button is re-selected after being de-selected.

X Add 'reset your aircraft damage to 0%' and 'reset all AI objects 
damage levels to 0%' buttons to menu.

* When multiplayers change their callsign in-game using the FG menu 
Bombable MP gets messed up or confused for a while or permanently.  
Not sure why.

* Create damage/vulnerabilities/dimensions/etc. system to hold 
needed properties for **main aircraft** similar to the one existing 
for AI/Multiplayer aircraft. And integrate it with the current 
system so you could create one file that would apply to both AI and 
Main aircraft.

* Make the bombable settings files for both AI and Main aircraft an 
XML file rather than Nasal code (current situation). Make the 
different options (attack, weapons, smoke, etc) settable as options 
in the XML file rather than requiring calls to bombable functions on 
load/unload. Bombable can check which aircraft are added/removed 
under AI/models and update appropriately with the needed timers & 
listeners, rather than having each AI object call its own code.

X Bombable menu loses debug/print setting on relocate/reinit.

X Lee's Summit scenario tanks are hanging way up in the air. [They 
were mis-labeled as type=aircraft in the scenario files, thus 
causing them to take extreme measures to avoid ground collision. 
This was fixed in this scenario and a few others.]

X Scenario files - wrong directory name in some (-bombable vs 
-Bombable).  Other technical problems in others [fixed].  [Some 
problems might remain.]

* Generally need scenario file and AI Aircraft cleanup. [Some work 
on this accomplished for 4.4.]

* If AI damage is reset and the aircraft is crashing, it keeps on 
crashing even though damage is reset.  Also if aircraft are crashed/
stopped they stay stopped even though damage is reset.

Feature requests:

* AI aircraft could fire at the main aircraft using the particle
system.  Just mount a particle generator at each gun point,
in the same direction & location, and with a trigger in the 
property tree, and appropriate shooter with speed 500-1000mps.  
Whenever that aircraft has the main aircraft in its sights, 
pull the trigger.  It wouldn't actually create impacts (the
particle system doesn't do impacts) but it would look great
and could be done with essentially no impact on the framerate.
The is the way to show MP aircraft shooting (on the remote FG)
as well--just have a particle generator mounted at the proper
point and direction and trigger it whenever the MP aircraft
shoots.  It won't exactly mirror the remote aircraft's aim
but at least it would give a good visual indication of shooting,
and aim/damage detection is done on the remote computer anyway.  

* Scoring system/way to keep track of how many hits, misses, 
enemies downed.

* MP pilots menu showing stats/damage level for all MP bombable 
pilots online, when they reset damage, etc.

* Notify other MP pilots when one pilot reloads ammo (esp. if not 
on the ground/stopped)

* Enemy pilots exit plane & parachute after the plane is 100% 
disabled (could be easily done with the particle system and perhaps 
a bit of nasal code to make the parachutes sway convincingly). *

* Main pilot can eject (could be done with a Nasal script to change 
the pilot viewpoint & eject, then float down).

* Allow heading/altitude 'swivel distances' for Ai weapons, rather 
than just a single fixed angle. For now, the guns could fire 
randomly or aim within their range of motion and eventually you 
could realisticaly model their rate of movement as they aim, track, 
etc.

* System failures depending on damage (even better, depending on 
location of damage). Be able to reset this when the damage is reset 
to zero.

For 4.3 
--------------

X We can now calculate kinetic energy using the speed_mps of impact. 
However we need to integrate this into the damage calculations of 
test_impact. [We switched this to momentum, however, on the basis of 
http://eaw.wikispaces.com/Technical+Tools--Gun+Power]

* For some reason FG 2.4.0 is re-initializing all of the AI models 
at certain points. Without unloading them. The result is they are 
all loaded twice (or even 3, 4 times) and this is one reason things 
tend to slow down after FG hfas been running a while. We have 
duplicate listeners set up for each AI object, etc. Not sure why 
this is happening or how it can be prevented. Sometimes crazy other 
items (like joystick input devices) introduce themselves to Bombable 
and ask it to initialize them as a Bombable object. I've set up some 
code to block all this from happening but the ultimate solution is 
to stop it from happening on the FG end. [Kludge code is implemented 
to fix the immediate problem but FG needs to implement internal 
fixes for a more permanent solution.]

* Need to thoroughly test different aircraft/armament/scenarios in 
FG 2.4.0.

X Need to test multiplayer in FG 2.4.0.

* Some AI objects, ie Fokker and perhaps others, are having a 
problem with detecting when they have hit the ground/crashed. Might 
be related to the re-init problem.

X Damaging SPAD/Fokker/Camel with Camel seems too easy/too large 
damage too often. Meanwhile they don't have any change of doing 
large damage to you.

X AI Aircraft suddenly flip in roll degrees when maneuvering, rather 
than rolling smoothly, in some situations. [Not fixed, but worked on 
it and it won't be fixed by changes to Bombable, but to FG. Found 
the cause of this but unfortunately the solution cause *much* bigger 
problems. We are about at the end of what Bombable can do in 
controlling aircraft while 'fighting' the FG AI aircraft control 
system. We need to integrate at least a few key functions that 
Bombable is doing in controling aircraft into the AI system and get 
them out of Bombable. In the meanwhile, this is about the best we 
can do for controlling aircraft in a realistic way to attack, dodge, 
etc.]

* On changing location in FG 2.4.0 (via the menu), AI aircraft seem 
to lose all damage and start moving but their smoke/fires are still 
burning and don't move.

X AI A10s (Warthogs) seem to be pathetically bad at hitting you with 
their weapons.  [Accuracy and power of weapons can now be set per 
aircraft.]

X Weapons parameters in AI aircraft files so that different guns can 
be mounted in different places & aiming in different directions; 
also range, accuracy etc can be set per gun/per AI aircraft. [Partly 
implement in 4.3, but ability to add several weapons in different 
locations/directions is needed.]

* Make main aircraft crash (ie, force down/lose control) rather than 
just stop engines suddenly in flight. Even more sophisticated, make 
it lose different capabilities or control depending on damage.

* Make AI aircraft dodge/try to miss main aircraft at last moment 
rather than just flying straight in.

* Real weapons fire/submodels for AI aircraft, rather than the 'fake 
simulated/probabalistic weapons' now working.

X Some menu items still don't save/restore correctly, particularly 
the debug print option.

X Need to revamp the Bombable menu a bit to make the difficulty 
levels more sensible--make a different control like a radio button 
to select overall difficult level (easy/super easy etc)

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

* MP dogfighting, sometimes when the remote person resets/0% damage 
the damage doesn't get reset locally. Result is, next time a weapon 
hits that plane it transfers all the previous damage level.

* When MP dogfighting, on reinit when damage is reset to 0 and sent 
to other players on the MP network, there needs to be a handshaking 
thing happen where the other aircraft send back to the main aircraft 
that they have received the re-init signal and set damage back to 0. 
If acknowledgement is not received then it could re-try several 
times & then, if no acknowledgement received, ignore damage totals 
sent from that aircraft from that time forward.

* Include even more damage sources similar to 
acceleration/g-force/overspeed--overheating/damaging engine, hard 
landings, etc.

* Improve the vulnerabilities/velocities/dimensions/etc framework 
for main aircraft similar to that we have in place for AI/MP 
aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
* Improve the vulnerability parameters for AI/MP aircraft, along the 
lines of density of vulnerable components, overall mass (which 
approximates how resistant the craft is to damage), etc. Per 
discussion here, 
http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650

* Some way to coordinate difficulty level (easy mode, etc) between MP 
players, or at least inform various players about which difficulty 
level each is using.

X Listeners still give an error when MP aircraft unload.

X A way to control climb/descent realistically and as easily as 
turns/roll. [Not fixed but improved in ver. 4.3.]

* Remove some of the locks & excess complexity in the MPsend/receive 
routines now that the underpinnings have been improved.


For 3.0p
--------------

* AI fighters with their new more aggressive altitude maneuvering 
have a tendency to crash into mountains etc. Partly but not 
completely fixed in 3.0p.

* AI fighters have a few strange quirks/maneuvers. They will 
suddenly change from one roll angle to another rather than smoothly 
changing. Similarly when first reaching 100% damage, they will flip 
around randomly/not smoothly.

* Make main aircraft crash (ie, force down/lose control) rather than 
just stop engines suddenly in flight. Even more sophisticated, make 
it lose different capabilities or control depending on damage.

* Make AI aircraft dodge/try to miss main aircraft at last moment 
rather than just flying straight in.

* Make AI aircraft adjustments to avoid ground collisions smooth 
rather than jerky.       [Improved ver 4.3.]

* Real weapons fire/submodels for AI aircraft, rather than the 'fake 
simulated/probabalistic weapons' now working.

X Weapons parameters in AI aircraft files so that different guns can 
be mounted in different places & aiming in different directions; 
also range, accuracy etc can be set per gun/per AI aircraft

* Some menu items still don't save/restore correctly.

* Need to revamp the Bombable menu a bit to make the difficulty 
levels more sensible--make a different control like a radio button 
to select overall difficult level (easy/super easy etc)

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

* MP dogfighting, sometimes when the remote person resets/0% damage 
the damage doesn't get reset locally. Result is, next time a weapon 
hits that plane it transfers all the previous damage level.

* When MP dogfighting, on reinit when damage is reset to 0 and sent 
to other players on the MP network, there needs to be a handshaking 
thing happen where the other aircraft send back to the main aircraft 
that they have received the re-init signal and set damage back to 0. 
If acknowledgement is not received then it could re-try several 
times & then, if no acknowledgement received, ignore damage totals 
sent from that aircraft from that time forward.

* Include even more damage sources similar to 
acceleration/g-force/overspeed--overheating/damaging engine, hard 
landings, etc.

* Improve the vulnerabilities/velocities/dimensions/etc framework 
for main aircraft similar to that we have in place for AI/MP 
aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
* Improve the vulnerability parameters for AI/MP aircraft, along the 
lines of like density of vulnerable components, overall mass (which 
approximates how resistant the craft is to damage), etc. Per 
discussion here, 
http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650

* Some way to coordinate difficulty level (easy mode, etc) between MP 
players, or at least inform various players about which difficulty 
level each is using.

X Listeners still give an error when MP aircraft unload.

X A way to control climb/descent realistically and as easily as 
turns/roll. [Not fixed but improved in ver. 4.3.]

* Remove some of the locks & excess complexity in the MPsend/receive 
routines now that the underpinnings have been improved.



For 3.0n
--------------

* AI fighters have a few strange quirks/maneuvers. They will 
suddenly change from one roll angle to another rather than smoothly 
changing.

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

* MP dogfighting, sometimes when the remote person resets/0% damage 
the damage doesn't get reset locally. Result is, next time a weapon 
hits that plane it transfers all the previous damage level.

* When MP dogfighting, on reinit when damage is reset to 0 and sent 
to other players on the MP network, there needs to be a handshaking 
thing happen where the other aircraft send back to the main aircraft 
that they have received the re-init signal and set damage back to 0. 
If acknowledgement is not received then it could re-try several 
times & then, if no acknowledgement received, ignore damage totals 
sent from that aircraft from that time forward.

* Include even more damage sources similar to 
acceleration/g-force/overspeed--overheating/damaging engine, hard 
landings, etc.

* Improve the vulnerabilities/velocities/dimensions/etc framework 
for main aircraft similar to that we have in place for AI/MP 
aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
* Improve the vulnerability parameters for AI/MP aircraft, along the 
lines of like density of vulnerable components, overall mass (which 
approximates how resistant the craft is to damage), etc. Per 
discussion here, 
http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650
* 
Some way to coordinate difficulty level (easy mode, etc) between MP 
players, or at least inform various players about which difficulty 
level each is using.

* Listeners still give an error when MP aircraft unload.

* A way to control climb/descent realistically and as easily as 
turns/roll.

* Remove some of the locks & excess complexity in the MPsend/receive 
routines now that the underpinnings have been improved.


For 3.0m
--------------

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

* Include even more damage sources similar to 
acceleration/g-force/overspeed--overheating/damaging engine, hard 
landings, etc.

* Improve the vulnerabilities/velocities/dimensions/etc framework 
for main aircraft similar to that we have in place for AI/MP 
aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
   
X Make an "aircraft crash" routine for AI ( and MP ) aircraft that will take control of it once it reaches 100% damage and fly/crash it into the ground very quickly.

X Could make right/left turn routines similar to AI crash routines that would give AI aircraft much more realism & make them much harder targets.

X Add more vulnerability parameters for AI/MP aircraft, along the lines of like density of vulnerable components, overall mass (which approximates how resistant the craft is to damage), etc.  Per discussion here, http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650
 
X Save/Restore menu options  

X Excessive damage report bug


For 3.0L
--------------
X bombableListenerid is not found when destructor for bombable AI or 
MP objects runs; runtime error

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

* Include even more damage sources similar to 
acceleration/g-force/overspeed--overheating/damaging engine, hard 
landings, etc.

* Improve the vulnerabilities/velocities/dimensions/etc framework 
for main aircraft similar to that we have in place for AI/MP 
aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
   
* Make an "aircraft crash" routine for AI ( and MP ) aircraft that 
will take control of it once it reaches 100% damage and fly/crash it 
into the ground very quikcly.

* Add more vulnerability parameters for AI/MP aircraft, along the 
lines of like density of vulnerable components, overall mass (which 
approximates how resistant the craft is to damage), etc. Per 
discussion here, 
http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650
   


For 3.0K
--------------

* bombableListenerid is not found when destructor for bombable AI or 
MP objects runs; runtime error

* When MP dogfighting, damage levels seems to rise a few percentage 
points higher when the remote aircraft sends back its damage level, 
than the levels actually registered by the attacking craft

X Include more damage sources similar to 
acceleration/g-force--overspeed, overheating/damaging engine, hard 
landings, etc.

X Related, make a vulnerabilities/velocities/dimensions/etc 
framework for the main aircraft similar to that we have in place for 
AI/MP aircraft. This could record the maximum velocity, maximum 
accelerations, and other limits of the aircraft, as well as damage 
rates when the limits are exceeded. Then each aircraft can have this 
framework customised to its particular characteristics.

* Put Bombable into the main development tree for FG.  To do this it needs
   - its own communications node (similar to wildfire module)
   - transfer the bombable menu into the Environment menu (similar to wildfire 
   module)
   - turn off bombable by default
   - turn off debug messages by default
   
   
* Make an "aircraft crash" routine for AI ( and MP ) aircraft that 
will take control of it once it reaches 100% damage and fly/crash it 
into the ground very quikcly.

* Add vulnerability parameters for AI/MP aircraft, like density of 
vulnerable components, overall mass (which approximates how 
resistant the craft is to damage), etc. Per discussion here, 
http://forum.flightgear.org/viewtopic.php?f=17&t=5742&p=82743#p82650