PDA

View Full Version : Dumb Things the AI Does That You Want Fixed


LuftWolf
01-22-08, 12:24 AM
Hi!

Since the database update is out there somewhere being done, I've thought about doing some work on the AI doctrines.

Of course, since I haven't actually played any DW in the last six months (oh xbox live... turns out I'm a stone cold murderer in FPS's... amateur free agent cyber-athelete, currently with a bush-league clan on gamebattles.com :yep: :lol:) I'm not exactly sure what's doing on other than it's got doctrines and submarines...

SO, what AI behaviors would you have me tweak, assuming I can still do such a thing?

Now that my job situation is settled, perhaps I can actually give you guys what you ask for this time, as opposed to welching out like others in the past... which I told myself I wouldn't do. :ping:

Hope everyone has been good... seems like a nice flow of people coming through these days. :)

Cheers,
David

Blacklight
01-22-08, 12:34 AM
I'd really like to see those oil rigs able to be hit with all weapons, not just torpedoes and TSAMS, but the Sakurra mod is a definite great start !!!:D (His mod saved the campagn that I thought I was going to have to scrap)

AI ? Lets see... How about working with the special forces deployed from the subs. There are a lot of times when you release them to go to a target and they just run off in their own direction.
On a side note, I'd also like to see special forces be able to attack oil rigs as well instead of just sailing into it, crashing and taking damage. (Call me obsessed with the oil rigs... I'm trying to design a "Death Star" of an Oil Rig as well as an "Undersea Base" version of one as time allows)

I'd like to see "Collision avoidance" between AI ships tweaked. When I make a convoy wether they be in a line or in a carrier group (Spaced the proper distances that the ships in a carrier group should be from each other), the minute they see a weapon, they steer all over the place and crash into each other. It's like their attention focuses entirely on the approaching weapon, and not on each other's locations. Also... after the attack, when the convoy goes to maneuver back into a convoy formation, they don't see each other and crash into each other. All of this occurs to me even with "Collision Avoidance" turned on for each of the ships.:nope:
I'd like you to take a look at that if you could.:up:

SleazeyWombat
01-22-08, 12:50 AM
I was playing the Clyde mission this weekend, flying the P-3. I watched all of the following on the replay.

I had laid mines across the narrow part of the strait, and eventually, a southbound Ruski sub triggered a couple of the Captors.

The torps began snaking to the east toward the hapless sub, and a couple of southbound Russian Kara surface combatants which happened to be very close by at that moment. The Kara AI's both scrambled to avoid the torps in the water.

One Kara fled east; the other successfully evaded to the south. The sub released an active decoy. One torp hit the sub, but didn't kill it. The sub settled to the bottom at a depth of 150 feet or so. It didn't move for the remainder of the scenario; I guess it lost propulsion, which may have helped it to avoid the second torp.

The decoy fooled that torp, which continued snaking to the east, but there were no subs for it to acquire. The torp now appeared to me (and to the AI I'm sure) to be actively chasing the second Kara, which continued east at high speed, trying to avoid the torp snaking after it.

The Kara AI thought the torp was after it, not knowing that Captor torpedoes won't acquire surface vessels. Eventually the Kara grounded itself on the unforgiving coast.

Whether it was an AI failure or not, this was a cool little drama to watch!

Dr.Sid
01-22-08, 05:56 AM
DSRV , A to Z :up:

sonar732
01-22-08, 07:14 AM
Luftwolf,

Glad to see you back ol' bean. If you ever want to chat about old times, give me a pm! I haven't been playing DW that much either thanks to the step-son and my new found love of Star Wars games on the PS2. You've got to watch Chewy pull the arms off of a enemy in Lego Star Wars. :rotfl::rotfl::rotfl:

Molon Labe
01-22-08, 08:25 AM
The most annoying thing or me is that every ship/sub on a Side will flank to identify an unknown contact. I'd like to see that task handed off to aircraft whenever possible, or at least, for subs to proceed at no more than tactical speed if they are sent to investigate. Some platforms should not even be in the business of identifying unknown contacts at all, e.g., SSBNs.

Molon Labe
01-22-08, 11:16 AM
BTW, if we're going to get moving on this, I think we should have the involved parties get together and figure out what our priorities are going to be and how we should do what we plan to do. (In other words, I'm going to be pissed if I go forward on the damage scaling plan only to have to redo the whole thing in response to late feedback, or if the next installment simply isn't going to address that issue.) Amizaur has also been around a bit as of late and might be able to help with doctrine work; his main concern at the moment is creating more comprehensive documentation.

Doc Savage
01-22-08, 03:59 PM
Had more than a couple of occasions lately when my sub was fired on by AI surface ships using ASROCs. They always seem to shoot too far, as in the things shoot over my head and land far on the other side with no hope of ever hitting me. The AI seems to adjust its range after awhile but usually I am long gone by the time that happens.
I think they usually get a pretty good fix on me sometimes so its probably not bad AI TMA. In one occasion I was detected first by a helo on MAD which turned around after the ship fired to drop a torp neatly on my head (I guess he wanted to show the ship how it was done).


Anyway, I dunno if this has been discussed before (I remember reading something about an ASROC fix... or was it SUBROCS?) or if it is even fixable but...

GrayOwl
01-22-08, 04:49 PM
Hi!

Since the database update is out there somewhere being done, I've thought about doing some work on the AI doctrines.

Of course, since I haven't actually played any DW in the last six months (oh xbox live... turns out I'm a stone cold murderer in FPS's... amateur free agent cyber-athelete, currently with a bush-league clan on gamebattles.com :yep: :lol:) I'm not exactly sure what's doing on other than it's got doctrines and submarines...

SO, what AI behaviors would you have me tweak, assuming I can still do such a thing?

Now that my job situation is settled, perhaps I can actually give you guys what you ask for this time, as opposed to welching out like others in the past... which I told myself I wouldn't do. :ping:

Hope everyone has been good... seems like a nice flow of people coming through these days. :)

Cheers,
David

Very joyfully your returning! :up: :up: :up:

Dr.Sid
01-23-08, 05:57 AM
Had more than a couple of occasions lately when my sub was fired on by AI surface ships using ASROCs. They always seem to shoot too far, as in the things shoot over my head and land far on the other side with no hope of ever hitting me. The AI seems to adjust its range after awhile but usually I am long gone by the time that happens.
I think they usually get a pretty good fix on me sometimes so its probably not bad AI TMA. In one occasion I was detected first by a helo on MAD which turned around after the ship fired to drop a torp neatly on my head (I guess he wanted to show the ship how it was done).


Anyway, I dunno if this has been discussed before (I remember reading something about an ASROC fix... or was it SUBROCS?) or if it is even fixable but...

This was fixed in like first version of LWAMI. Do you use LWAMI ?

OneShot
01-23-08, 07:40 AM
@Lw : On a related note, I don't know if you are aware of it but there is a Project Tracker now for the LwAmi Mod here : http://www.commanders-academy.com/forum/project.php?projectid=2 . I'd suggest you check it out and let me know if you have any questions.

Might be helpful to start using it ...

SeaQueen
01-23-08, 08:03 AM
SO, what AI behaviors would you have me tweak, assuming I can still do such a thing?


The AI fires off torpedoes and VLA with complete disregard for it's own safety and that of other ships it's trying to defend. This is stupid and unrealistic. It'd be nice if it did things like set some presets to ensure it wouldn't hit itself, and maybe be more judicious about VLA salvos. Shooting off all 8 is a little bit excessive. The way it shoots it's almost as much of a danger to itself and everyone around it as it is to the thing it's trying to kill.

LuftWolf
01-23-08, 11:49 AM
Well, the biggest limitation of the way the DW handles AI, is that it isn't possible for a platform to reference two other platforms relative to each other.

In other words, if there is a distant target and a friendly or neutral in between, there is no way to say to the objective platform "don't fire on that target because there is a potential blue-on-blue". In DW, the AI going to fire, and the faith is that the automatic presets put on the weapon will prevent the friendly fire... obviously, this doesn't always happen. :88)

I've been thinking about how to get around this, but no luck so far...

Another limitation is that the doctrine system appears to merely provide the AI platforms with "suggestions" on what they should do in terms of weapons use and how they handle contacts. Very few of the doctrine commands actually command the AI to do something directly... it's more like it puts the idea of doing it on their proverbial radar, and then the AI core in the NavalSimEngine determines if they are actually going to do it.

I'd imagine the contract versions of DW have a much more reliable way of directing AI behavior... :stare:

Cheers,
David

Doc Savage
01-23-08, 03:58 PM
Had more than a couple of occasions lately when my sub was fired on by AI surface ships using ASROCs. They always seem to shoot too far, as in the things shoot over my head and land far on the other side with no hope of ever hitting me. The AI seems to adjust its range after awhile but usually I am long gone by the time that happens.
I think they usually get a pretty good fix on me sometimes so its probably not bad AI TMA. In one occasion I was detected first by a helo on MAD which turned around after the ship fired to drop a torp neatly on my head (I guess he wanted to show the ship how it was done).


Anyway, I dunno if this has been discussed before (I remember reading something about an ASROC fix... or was it SUBROCS?) or if it is even fixable but...

This was fixed in like first version of LWAMI. Do you use LWAMI ?

yes. 3.08. I had thought it had been fixed as well...

nevermind then. I must have it installed wrong or something.

Sea Demon
01-23-08, 07:58 PM
Thanks for the informative thread. When playing the FFG, I normally like to play it with hostile surface platforms on the prowl. And I normally am escorting an Arleigh Burke or Tico and I act as it's primary ASW escort, and let him handle most of the AAW/ASuW work.

When doing this, one thing I hate about the AI in the AB or Tico is whenever my Helo promotes a hostile surface platform to the link, the AB or Tico will immediately unload 6-8 Harpoons, without a refined range solution. This will sometimes cause the Harpoons to miss it's intended platform as range and bearing have not been refined enough for an adequate solution. I wouldn't know how this could ever be fixed, but the TAO's of the AB's and Tico's have too much of an itchy trigger finger. Perhaps make them fire only when solution confidence is high???

Kazuaki Shimazaki II
01-23-08, 08:04 PM
I'd imagine the contract versions of DW have a much more reliable way of directing AI behavior... :stare:

Cheers,
David

I'll be betting that they have a "Harpoon" or FC interface on the other side where Instructor commands every non-student unit in general (again, Harpoon-like) terms. That's the easiest way to ensure smart behavior.

caymanlee
01-25-08, 07:53 AM
DSRV behave totally wrong, big problem. can't reach the objective sub

@LuftWolf: may be a new doctrine for Attack Midget Sub which can attack submarine/ ship by Torpedo/Mine, release Special forces, and the midget sub can be launched and recover by a bigger sub(just like DSRV), for example: Russian project 865--known as LOSOS class

Cheers,
Cayman

SeaQueen
01-25-08, 07:56 PM
I'd imagine the contract versions of DW have a much more reliable way of directing AI behavior... :stare:


You know... that's an interesting question as to whether it does or not. My experience with most company's models is that they're really quite limited. They're good at doing something specific and that's it. Lots of companies market their models as all things to all people (HA! Like JWARS!) but really, that's just marketing. The best computer models are designed with a specific type of problem in mind, and while they can often be used to get insight into other problems, the further away you get from the original intent, the less applicable the model typically is.

The other problem is that the tendancy with computer models is to want to put more and more data into them for the sake of "realism" the problem with that is that the more things there are to vary in a model, the less insight it typically yields because it becomes possible for one to arrive at lots of possible outcomes making different assuptions about the various inputs. How likely are any of those? Who knows... maybe they ought to consult another computer model! HA!

I've actually calculated the results of various situations using pencil and paper and then built computer models to reproduce those results because the Navy customer demanded a computer model, even though I knew what the answer was without one. I'm not sure whether I should laugh at them or cry because of the sorry state of affairs in the Navy.

SeaQueen
01-26-08, 11:43 AM
I'll be betting that they have a "Harpoon" or FC interface on the other side where Instructor commands every non-student unit in general (again, Harpoon-like) terms. That's the easiest way to ensure smart behavior.

Yeah... that's how the USMC uses TACOPS from what I understand... with a "behind the scenes" team of instructors playing the red side.

SeaQueen
01-26-08, 11:45 AM
Perhaps make them fire only when solution confidence is high???

The other solution to that would be to only promote contacts that you have determined the range to.

Sea Demon
01-26-08, 03:37 PM
Perhaps make them fire only when solution confidence is high???

The other solution to that would be to only promote contacts that you have determined the range to.

That's true. You make an excellent suggestion. Perhaps it could somehow be fixed where our AI helo cannot promote contacts to the link unless we allow it. When this has happened in a scenario for me, it's always been that I'm at the FFG ASTAC station in single player, and I'm controlling an AI MH-60. And some enemy surface ship is blasting my helo with his radar. At that point the MH-60 will automatically detect the emitter as hostile, and promote without my control. And the range calculation is usually always innacurate. So maybe we could somehow make it so only the parent platform (me) can promote to the link when we are confident of a good solution.

Blacklight
01-26-08, 03:52 PM
Quote:
Originally Posted by SeaQueen
Quote:
Originally Posted by Sea Demon
Perhaps make them fire only when solution confidence is high???


The other solution to that would be to only promote contacts that you have determined the range to.


I don't know if it's feasable, but maybe assign percentages as to wether or not they fire. Maybe a 1% chance they fire at a low confidence target... a 10% chance or so for a medium confidence target and so on. This could potentially simulate an emergency snapshot.
I have no idea how the targeting and fireing doctrine works so I have no clue if this would work.:D

I don't like them only fireing when confidence is "High". There should be a small chance that they fire at a lower confidence target as well.

And as a reminder, "Collision Avoidence" doesn't seem to work in formations. The ships all start crashing into each other when they try to re-form together. It's like They don't see their own formation's ships. The only way I've been able to combat this so far is to make the fleet or group of ships not part of a formation, but set their speeds and directions so they look like they're in a formation but they really aren't.

LuftWolf
01-28-08, 11:02 PM
The DSRV is broken in the engine, so that can't be touched, by modders anyway.

The doctrine system is made of peaks and valleys... I wish there was a neat way to express to everyone what is and isn't capable, but frankly it would just be a list of random things, not really making much sense. And what makes it even crazier, is that the level of control varies by platform type. :doh:

I'll look at as much as I can... starting with the things that Thomas did in SCXIIc, since I've got a pretty good grasp on what can be carried over successfully.

Unfortunately, the inherent behavior of just about everything appears to have worked (from what I have heard) much better in SC than in DW, so there's so much more that needs to be fixed. :-?

Cheers,
David

Dr.Sid
01-29-08, 06:18 AM
For DSRV, I had better doctrine which could dive to target, get close (3 m) even if target was moving, stay there for a moment and then return to original coordinates, nad IIRC even dock to original platform if it still was there. There was some troubles, but I overcame all of them.
Unfortunatelly I lost the file (with many other stuff) in HD crash. Let's communicate this. I'll PM you my contact info, I wonder what are the problems you found.

caymanlee
02-01-08, 12:44 AM
The DSRV is broken in the engine, so that can't be touched, by modders anyway.

The doctrine system is made of peaks and valleys... I wish there was a neat way to express to everyone what is and isn't capable, but frankly it would just be a list of random things, not really making much sense. And what makes it even crazier, is that the level of control varies by platform type. :doh:

I'll look at as much as I can... starting with the things that Thomas did in SCXIIc, since I've got a pretty good grasp on what can be carried over successfully.

Unfortunately, the inherent behavior of just about everything appears to have worked (from what I have heard) much better in SC than in DW, so there's so much more that needs to be fixed. :-?


Good to know.
I wonder if you have an introduction regard to DW doctrine, or a list of doctrine's "command" and "value" , even half-baked version woulf be ok, if you do, could you send me a copy?---I'm good at FC docrine, but DW's much more sophisticated, any help would be appreciated:know:

LuftWolf
02-01-08, 07:40 PM
Is answer question? :)

Keep in mind, this was written for Sub Command, so a few of the commands, most notably the rudder control commands are different in DW. The existing DW doctrines are all holdovers from SC, so you can actually see the commented sections remaining in the doctrines to see the differences between the two systems in action.

AUTHOR: Sonalysts
Additions: JSteed

First a little about how doctrines work:
Every platform has a default doctrine assigned by the object database. It can also be specified per platform in the
scenario file by the DOCTRINE <filename> command. SC will evaluate this doctrine at regular intervals. Whenever a
platform detects a new contact, the platform doctrine is evaluated with "NewTrack" equal to true. Platform doctrine can
chose to assign a particular doctrine file to that contact using the SetTactic command. Thereafter, the original platform
doctrine continues to be evaluated as before, plus the assigned tactic doctrine is evaluated every time the contact is
updated. It's important to understand the distinction: the original platform doctrine is routinely evaluated without a
reference solution, except when a new contact is detected. When a new contact is detected, the platform doctrine is called
only once referring to the new solution. This is the only opportunity to set a tactic doctrine for that contact.
Following are some syntax specifications. Note that neither Sonalysts nor EA will support editing of doctrine files- Sub
Command was intended to run with the files as shipped. What you do with them after that is at your own risk.
Sub Command doctrine is very particular about whitespace. Everything must be separated by whitespace! Parentheses or
brackets not surrounded by spaces or tabs will result in unrecognized terms.
Operators:
+ Addition
- Subtraction
* Multiplication
/ Division
= Assignment x = y
+= Addition assignment (e.g. a += b is a = a + b)
-= Subtraction assignment as above
*= Multiplication assignment as above
/= Division assignment as above
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
== Equal to (numbers only)
$= Equal to (strings only, e.g. OwnName $= "Fred")
And Boolean and
Or Boolean or
Not Boolean not
& Logical AND (e.g. 255 & 128 == 128)
| Logical OR (e.g. 32 | 16 == 48)
() Expression delimiters
{} Command delimiters
Constants:
on 1
off 0
true 1
false 0
Math Funcs:
rnd <value> Returns a random floating point number between from 0 to <value>
abs <value> Returns the absolute value of <value>
sqrt <value> Returns the square root of <value>
<value1> mod <value2> Returns <value1> modulo <value2>
(e.g. 5 mod 3 = 2)
RelativeBearing <value1> <value2> Returns the relative bearing from <value1> to <value2>
XYBrg <value1> <value2> Returns true bearing from 0,0 to <value1>,<value2>
XYRng <value1> <value2> Returns range from 0,0 to <value1>,<value2>
Conditionals:
If <expression> Then <command> [Else <command>] [ElseIf <expression> Then <command>] EndIf
The basic conditional structure is:
If <expression> Then
<command>
EndIf
If <expression> evaluates to non-zero, then <command> will be executed. Note that this basic structure only expects one
expression and one command- to work with multiple expressions and commands, the expressions must be enclosed by
parentheses, and the commands must be enclosed by brackets. For example:
If ( <expression1> ) And ( <expression2> ) Then {
<command1>
<command2>
} EndIf
There is a also a conditional loop:
While <expression> <command>
As long as <expression> evaluates to non-zero, <command> will be executed over and over again. Be especially careful- an
infinite loop will halt the sim! Note that none of the original doctrines use this structure. Use it sparingly if at all.
Special Terms:
Var <variablename>
You can create as many variables as you like in a doctrine file. All variables are double precision.
func <functionname> <command>
You can define procedural functions to group commands that might be needed often in larger doctrine files, for example:
func Evade {
SteerEvasive
SetOwnSpd MaxSpeed
SetOwnAlt AltLayer
}
A single command "Evade" will perform all 3 commands. Grouping commands into a function isn't any faster (nor is it
appreciably slower), but it can make doctrines more compact and easier to read in some cases. Functions must be defined
before they are referenced, and are only available in the doctrine where they are defined.
Booleans:
Init Automatically set True the first time doctrine is accessed. Thereafter it is set False.
NewTrack Platform doctrine will be called with NewTrack true when a new target is detected
LostTrack Platform and tactic doctrines are called with LostTrack true when a target is about to be removed
Engaging Tactic doctrines are called with Engaging true when a platform is attempting to engage a target (this feature must be enabled in the .ini file)
WeaponAway Tactic doctrines are called with WeaponAway true at time of fire
Target Terms:
TgtBrg True Bearing from platform to target
TgtRng Range from platform to target (in yards)
TgtCrs Course of target
TgtSpd Speed of target (in knots)
TgtAlt Altitude/Depth of target, in feet, negative means below sea level
TgtX Target X position, in yards from bottom left of map
TgtY Target Y position, in yards from bottom left of map
TgtID ID of target. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtID $= "HOSTILE" THEN ...
TgtClass Class of target. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtClass $= "AIR" THEN ...
TgtMissileClass "<value>" Returns true or false based on whether "value" is a member of string expression TgtMissileClass listed below.
TgtAOB Target angle on the bow. This is the target's relative bearing from platform's course
TgtSILOS Target speed in line-of-sight (closing speed)
TgtSource Target sensor source. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtSource $= "Radar" THEN ...
TgtAge Time since last detection
TgtConf Confidence, 0-100. This level is based on detection strength, and for passive sonar, number of platform legs
AttackRng Optimal range to attack target from using best available weapon
ThreatRng Optimal range for target to attack platform from using its best available weapon
TargetName Target's name. This is a string value, and must be tested using $=, e.g. IF TargetName $= "Asheville" THEN ...
AssignedTarget True if the current target is the platform's assigned target (from the mission editor "TargetMode" feature)
OwnShip Terms:
OwnCrs Platform's course
OwnSpd Platform's speed (in knots)
OwnAlt Platform's altitude/depth, in feet, negative means below sea level
OwnX Platform's X position, in yards from bottom left of map
OwnY Platform's Y position, in yards from bottom left of map
PeriDepth Platform's periscope depth, in feet
MaxSpd Platform's max speed
LoiterSpd Platform's loiter speed
MinSpd Platform's min speed (0 except for aircraft)
MaxAlt Platform's max altitude
MinAlt Platform's min altitude
Pitch Platform's current pitch, -90 to 90
Alliance Platform's side (0-8)
OwnName Platform's name. This is a string value, and must be tested using $=, e.g. IF OwnName $= "Asheville" THEN ...
Order Platform's current order. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF Order $= "Track" THEN ...
DBCMFlags Bitfield of platform's countermeasure capabilities. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBCMFlags & 1 THEN ...
DBTargetFlags Bitfield of platform's target capabilities. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBTargetFlags & 1 THEN ...
DBOBjectFlags Bitfield of platform's object attributes. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBOBjectFlags & 1 THEN ...
DBUser1Flags Platform's user1 database value.
DBUser2Flags Platform's user2 database value.
GetEntVar "<platvar>" Returns value of variable <platvar> in platform doctrine (from target doctrine)
Misc Terms:
Time Time in seconds from start of scenario
Layer Depth of thermal layer
TerrainAlt Altitude/Depth of ground at platform or target position
TacticName Name of target tactic doctrine
Reserved Variables:
WaypointReached True when a helo has reached a random box waypoint
PreEnableCourse Weapons preset pre-enable course
PreEnableSpeed Weapons preset pre-enable speed, in knots
PreEnableDepth Weapons preset pre-enable altitude/depth, in feet
Enabled True when a weapon is enabled
RunToEnable Weapons preset run-to-enable range, in yards
Runout Weapons preset shutdown range, in yards
Floor Weapons preset floor, in feet
Ceiling Weapons preset ceiling, in feet
AcousticMode Torpedo preset - true for passive mode
These next 2 variables must be declared in Var instructions before they can be used.
DestX Missile preset target x, in yards from lower left of map
DestY Missile preset target y, in yards from lower left of map
SearchDepth Weapons preset search altitude/depth, in feet
OrderedDepth Weapons preset ordered altitude/depth, in feet
DetonateDepth Weapons preset destruct altitude/depth, in feet
CircleSearchPattern Torpedo preset search pattern - true for circle, false for snake
DoctrinePriority Target-dependent recommended priority
Commands:
SetCrs <value> Set own course to <value>
SetSpd <value> Set own speed to <value>
SetAlt <value> Set own alt/depth to <value>
SetAltLayer Set own alt/depth to opposite side of layer
SetPitch <value> Set pitch to <value>
SteerAbeam Set course to put contact abeam
SteerTo Set course toward contact
SteerOblique <value> Set course toward contact with AOB of <value>
SteerAway Set course to put contact astern
SteerEvasive Steer contact off rear quarter
SteerXY <value1> <value2> Steer to point <value1>,<value2> (yards from lower left of map)
Intercept Set intercept course
TerminalHome Set collision course
WakeFollow Set course to follow target's wake
TacticCenter Move search pattern to center on current position
Identify "<value>" Set solution classification to value. Possible values listed below, must be in quotes.
Attack "<value>" Attack target using weapon <value>, must be in quotes
AttackBest Attack contact using best available weapon
FireBest Fire best weapon at target, ignoring firing constraints
Drop Drop current target
Countermeasure "<value>" Launch specified countermeasure
Detonate Explode platform
TimedDetonateTgt <value> Explode target at time <value> (in seconds from start of scenario)
Shutdown Shut platform down, without detonating
Enable Enable all sensors
PreEnable Disable all sensors
Snake <value> Perform a snake pattern centered on course <value>
Circle Perform a circle pattern
PassiveEnable Enable all passive sensors
SensorEnable "<value1>" <on/off> Turn sensor <value> on or off
Launch "<value>" Launch aircraft of name <value>
LaunchWithLoadout "<value1>" "<value2>" <value3> Launch aircraft of name <value1> with mission <value2>. Possible mission values listed below. What value3 represents is unknown.
Land Land at parent airstrip
SetDoctrine "<value>" Set platform doctrine to <value>
SetTactic "<value>" Set target tactic doctrine to <value>
SetPriority <value> Set current command priority to <value>
SetPersist <value> Set current command persistence to <value> seconds
DebugOut <value> Output <value> to debug stream
DebugValueOut "<value>" Output <value> to debug stream, must be in quotes
SetEntVar "<value1>" <value2> Set variable <value1> in platform doctrine to <value2> (from target doctrine)

String expression values:
Mission:
ASW, SUW, AAW, Strike, Recon, Comms, MineSweep
Order:
NONE, VID, TRACK, ENGAGE, RETURNTOBASE, COVER, SCRAM, RETURNTOSTATION, MOVE, TRANSIT, RESCUE, SEARCH
TgtClass:
UNKNOWN, SUB, SURF, AIR, HELO, MOBILE_LAND, LAND, MINE, WEAP, MISSILE, PROJECTILE, DOWNED_PILOT
TgtID:
UPD, UEV, UAF, UAE, HOSTILE, FRIEND, FIGHTER, STRIKE
TgtMissileClass:
AAM, ASM, SSM, SAM
TgtSource:
Active Sonar, Active Intercept, ESM, Visual, MAD, Infrared, Passive Sonar, Radar, FCRadar, IFF, CM

Bitfield values:
DBCMFlags Types of countermeasures a platform is equipped with
1=Chaff
2=IRFlare
4=AcousticCM
8=TowedAcousticCM
16=ECMJammer
DBTargetFlags Types of targets a weapon is capable of targeting
1=Sub
2=Surf
4=Air
8=Helo
16=Land
32=Torpedo
64=Mine
128=Missile
DBOBjectFlags
1=AAM This object is an air-to-air missile
2=ASM This object is an air-to-surface missile
4=SSM This object is a surface-to-surface missile
8=SAM This object is a surface-to-air missile
16=Tanker This aircraft is a tanker capable of refueling other aircraft
32=Terrain Follow This weapon can terrain follow
64=Guided This weapon is guided by the firing platform
128=Thrown This weapon has no propulsion, but is thrown by the firing platform
256=Refuelable This aircraft can refuel in-flight
512=Feedback This weapon feeds its target info back to the firing platform
1024=Prelock This weapon must acquire before it fires
2048=Smokeless This weapon doesn't leave a smoke trail
4096=Reattack This weapon can re-attack if it misses
8192=Remote This weapon can be fired on remote targeting info
16384=Snapshot This weapon receives a snapshot of the target at time of fire
32768=Ballistic This weapon follows a ballistic trajectory


Cheers,
David

caymanlee
02-02-08, 03:28 AM
Is answer question? :)

Keep in mind, this was written for Sub Command, so a few of the commands, most notably the rudder control commands are different in DW. The existing DW doctrines are all holdovers from SC, so you can actually see the commented sections remaining in the doctrines to see the differences between the two systems in action.
..........


Got it! Thank you very much! :up:

Molon Labe
02-06-08, 10:24 PM
@Lw : On a related note, I don't know if you are aware of it but there is a Project Tracker now for the LwAmi Mod here : http://www.commanders-academy.com/forum/project.php?projectid=2 . I'd suggest you check it out and let me know if you have any questions.

Might be helpful to start using it ...

Awesome, I wish I'd noticed this earlier. I just wrote up a bunch of 'tasks.' Let's come to a consensus on what needs to be done and move forward a bit.

LuftWolf
02-14-08, 12:52 PM
Sorry guys, I've been having some computer problems that have knocked me offline for a bit...

The case of duct tape finally came in, so I'm catching up on all my online activies (and there are way too many...) in the next few days.

Basically, the next activity I've got is to do some doctrine tuning for the AI and also to include in the LWAMI package (or perhaps just as a patch since people are using the other mods) the corrected helo dipping doctrine that will prevent the FFG MH60 from pinging on launch and recovery.

Cheers,
David

PS Disable your system restore and disk indexing processes, if you have an older computer with a smaller HD, after time, there is a good chance the processes will completely take over your CPU and write to every possible open space on your HD... ah windows.

GrayOwl
02-14-08, 02:59 PM
Sorry guys, I've been having some computer problems that have knocked me offline for a bit...

The case of duct tape finally came in, so I'm catching up on all my online activies (and there are way too many...) in the next few days.

Basically, the next activity I've got is to do some doctrine tuning for the AI and also to include in the LWAMI package (or perhaps just as a patch since people are using the other mods) the corrected helo dipping doctrine that will prevent the FFG MH60 from pinging on launch and recovery.

Cheers,
David

PS Disable your system restore and disk indexing processes, if you have an older computer with a smaller HD, after time, there is a good chance the processes will completely take over your CPU and write to every possible open space on your HD... ah windows.



You can it too switch on:

VAR TEMP1
VAR TEMP
VAR MSPD
VAR MODE
VAR DELAY
VAR OrdDpth
VAR DeepTgt
var ddd
var delta
var Fl
var Cei
var GotHim
var u
var u1
var k
IF INIT THEN {
k = 0.5
GotHim = 1
ddd = 0
MSPD = ( MinSpd + 10 )
IF ( DBBuoyFlags & 3 ) THEN { MSPD = MaxSpd } ENDIF
temp1 = ownspd
temp = ownalt
} ELSE {
IF ( LostTrack == 0 ) THEN {
IF ( GotHim == 1 ) THEN {
GotHim = 0
MODE = GetEntVar "AcousticMode"
Fl = GetEntVar "Floor"
Cei = GetEntVar "Ceiling"
IF ( MODE == 1 ) THEN {
MSPD = MAXSPD
DELAY = 7
} ELSE {
MSPD = MSPD
DebugValueOut MSPD
DELAY = 3
} ENDIF
} ENDIF
IF ( ( TgtClass $= "AIR" ) AND ( NOT ( TargetName $= "Towed Decoy" ) ) ) THEN {
; DebugOut "SKIP"
; Drop
; LOSTTRACK = TRUE
} ELSE {
IF ( TgtAge < DELAY ) THEN {
TEMP1 = OWNSPD
TEMP1 = ( TEMP1 + 3 )
IF ( TEMP1 > MSPD ) THEN { SETPRIORITY 255 TEMP1 = MSPD } ENDIF
} ELSE {
IF ( OWNSPD > MINSPD ) THEN {
; DEBUGOUT "No Given Signal From A Sensor Control - Reduce Speed"
TEMP1 = OWNSPD
TEMP1 = ( TEMP1 - 3 )
IF ( TEMP1 < MINSPD ) THEN { TEMP1 = MINSPD } ENDIF } ENDIF } ENDIF

IF TGTALT < Fl THEN { DeepTgt = 1 } ELSE { DeepTgt = 0 } ENDIF
IF ( TGTALT > CEI ) THEN { DeepTgt = 1 } ELSE { DeepTgt = 0 } ENDIF
DELTA = ABS ( OWNALT - TGTALT )

IF ( ( ddd == 1 ) AND ( TGTRNG < 60 ) AND ( DELTA < 60 ) AND ( TGTALT >= ( FL - 15 ) ) AND ( TGTALT <= ( CEI + 15 ) ) ) THEN {
IF ( TgtClass $= "Weap" ) AND NOT ( TargetName $= "Towed Decoy" ) THEN {
Drop
DebugOut "Drop Non Towed CM"
} ELSE {
ddd = 2
IF ( TargetName $= "Towed Decoy" ) THEN { SETPRIORITY 255 shutdown } ELSE { SETPRIORITY 255 Detonate } ENDIF
LostTrack = 1
} ENDIF } ENDIF

IF ( ( tgtrng >= 140 ) and ( DDD == 1 ) ) THEN { DDD = 0 } ENDIF
IF ( ( TgtRng < 140 ) AND ( DDD == 0 ) AND ( DELTA < 70 ) ) THEN {
ddd = 1 } ENDIF
IF ( ( TGTRNG < 600 ) AND ( DeepTgt == 0 ) ) THEN {
temp1 = mspd
IF ( DDD == 0 ) THEN {
SETPRIORITY 255
TerminalHome } ELSE {
OrdDpth = ( TGTALT )
IF TGTALT > CEI THEN { OrdDpth = CEI } ENDIF
IF TGTALT < Fl THEN { OrdDpth = ( FL + 30 ) } ENDIF
SETPRIORITY 254
SETALT OrdDpth
if tgtrng > 500 then { setcrs tgtbrg } else {
u = TGTAOB
u1 = ( k * u )
u = abs ( u )
if u < 0.2 then { SetRudder ( 0 ) } else { SetRudder u1 } endif } endif

} ENDIF
; DEBUGOUT "Final Phase Attack"
} ELSE {
; DEBUGOUT "FollowToTarget"
OrdDpth = TGTALT
OrdDpth = ( TGTALT )
IF TGTALT > CEI THEN { OrdDpth = CEI } ENDIF
IF TGTALT < Fl THEN { OrdDpth = ( FL + 30 ) } ENDIF
SETPRIORITY 254
SETALT OrdDpth
if tgtrng > 500 then { setcrs tgtbrg } else {
u = TGTAOB
u1 = ( k * u )
u = abs ( u )
if u < 0.2 then { SetRudder ( 0 ) } else { SetRudder u1 } endif } endif
} ENDIF } ENDIF
SETSPD ( TEMP1 )
IF ( TGTAGE > ( 10 ) ) THEN { DROP } ENDIF } ENDIF} ENDIF

Real "Live" Track Noise and Radiation Square Events....

We wich Reality Conditions....

LoBlo
03-01-08, 10:33 PM
Here are a couple of AI pet-peves.

1. I hate how the AI Aircraft carriers don't maximize the amount of aircraft they launch.

From what I've seen the AI CVs only launch and sustain 2-3 aircraft overhead to counter surface/air threats. I'ld like to see the CVs launch more continuous streams of squadrons. Sure you could script, prefabricated air-stations with fighters, but then their patrol zones would be locked-in and not flexible to where the carrier was located or locations of the threats.

2. The AI ASW aircraft don't drop sonabuoys when they should. Mainly the P3 and sometimes the S3 Vikings.

3. AI platforms running into dry land. Why sometimes the AI subs turn toward a landmass and decide to run into it even when "land avoidance" is on, is beyond me.:doh:

4. AI Surface ships blasting sonar even past washout speeds. This is more of a scenarios design issue. But nonetheless perhaps a addition to the doctrine to auto-turnoff active sonar if ship speed is above washout? Perhaps.

5. No "sprint and drift" option for escorts. Its in the AI programming of Harpoon 3; why not DW. Especially since the games is primarily a ASW sim. Surface and subs should have had this as an option in the mission editor platform tatics. A pretty annoying oversight OMHO.

Whether any of these are fixable or not is beyond me.

LuftWolf
03-03-08, 11:25 AM
Ok, as part of the effort to get the modding process off the ground, and to get everyone on the same page, I'm going to go through the few threads we have running now and do a matrix of all the suggestions that everyone has offered, what I can do about each issue, and what could theoretically be done if I were not limited by technical obstacles that I have the power to resolve.

In looking back, 3.08 comes pretty close to fixing all the fixables... so there are really only a few loose ends that can be tied up.

Most of the focus at this point can/should be adding new features... which some other modders have done successfully.

In terms of adding the advanced torpedo features... wow that's a big project, but I've already put so much work in, it would dissappoint me if I never got a working version out for the community.

I wish the job I had now wasn't as chaotic and my life was way more settled... more like the summer of 2006 when I worked about eight weeks straight on this mod like 50+ hours a week with all the testing and extra playing. Now that was fun. :up:

Cheers,
David

Dr.Sid
03-03-08, 03:02 PM
Luftwolf, I still wonder what unfixale bug in DSRV you have encountered. :88)

Molon Labe
03-03-08, 05:20 PM
Ok, as part of the effort to get the modding process off the ground, and to get everyone on the same page, I'm going to go through the few threads we have running now and do a matrix of all the suggestions that everyone has offered, what I can do about each issue, and what could theoretically be done if I were not limited by technical obstacles that I have the power to resolve.

In looking back, 3.08 comes pretty close to fixing all the fixables... so there are really only a few loose ends that can be tied up.

Most of the focus at this point can/should be adding new features... which some other modders have done successfully.

In terms of adding the advanced torpedo features... wow that's a big project, but I've already put so much work in, it would dissappoint me if I never got a working version out for the community.

I wish the job I had now wasn't as chaotic and my life was way more settled... more like the summer of 2006 when I worked about eight weeks straight on this mod like 50+ hours a week with all the testing and extra playing. Now that was fun. :up:

Cheers,
David

I'm already a step ahead of you. Check out http://www.commanders-academy.com/forum/project.php?projectid=2. It won't have any of the very new stuff, but most of the suggestions from this thread at the lwami patch suggestions thread are there.

Hitman
03-04-08, 03:34 PM
I find it most annoying that in the quick missions the enemy AI submarines go at high speeds, making detection & tracking of them very easy. :damn: No idea if this has something to do with doctrines or with the instructions the game gives them when creating the mission, but it ruins that nice feature, which I missed so much in Sub Command :shifty:

Dr.Sid
03-04-08, 04:02 PM
I'm afraid this is unfixable. But what I hate more on quickmissions is that sometimes the enemy sub is generated 1 nm from you, which means it will launch torpedo at you in like 10 seconds.

Molon Labe
03-04-08, 04:45 PM
I find it most annoying that in the quick missions the enemy AI submarines go at high speeds, making detection & tracking of them very easy. :damn: No idea if this has something to do with doctrines or with the instructions the game gives them when creating the mission, but it ruins that nice feature, which I missed so much in Sub Command :shifty:

They are sprinting to identify a platform reported as unidentified by their Side. (I griped about this earlier in the thread)

Sea Demon
03-04-08, 05:02 PM
I'm afraid this is unfixable. But what I hate more on quickmissions is that sometimes the enemy sub is generated 1 nm from you, which means it will launch torpedo at you in like 10 seconds.

If I were Sonalysts, and I wanted to propagate and improve something from DW, this is an area I'd commit time to. In addition to releasing more playables as well. For the Quickmission, the doctrines/scripting needs to be fixed, starting distances need adjustment, and opposing forces need to be appropriate. For example, in a 688(I) generated mission, why am I tasked to go hunt down and destroy a British carrier?

GrayOwl
03-04-08, 05:18 PM
Luftwolf, I still wonder what unfixale bug in DSRV you have encountered. :88)

Variable TgtAlt is not passed in the doctrine from the NavalSimEngine.

1. It is not known what depth should to borrow DSRV at rapproachement with the Sunk Sub.

2. Not the static situation of the sunk Sub - DSRV is floating on the originally received coordinates of the Target. However Target does not cost on a place - she is gradually displaced, as there is no complete statics of object.
DSRV comes in the given point and the saved submarine already left in other position (And it thus that the speed is established on 0, however object all the same has displacement - he not completely static).
Damn It…:down:

Dr.Sid
03-04-08, 05:42 PM
1. It is not known what depth should to borrow DSRV at rapproachement with the Sunk Sub.

This is not problem of the engine. It's because DSRV has no sensor which could detect target altitude. I overcame this by creating new sensor, HF sonar, with flag 'reports target alt'. Then the target depth WAS passed to the doctrine.

GrayOwl
03-04-08, 08:32 PM
1. It is not known what depth should to borrow DSRV at rapproachement with the Sunk Sub.

This is not problem of the engine. It's because DSRV has no sensor which could detect target altitude. I overcame this by creating new sensor, HF sonar, with flag 'reports target alt'. Then the target depth WAS passed to the doctrine.



Yes, you can be right...

Should exist " of a Gold Eye " Sensor...

Then it is impossible to enable to emerge DSRV on a surface - data from " of a Gold Eye " will be send on LINK 11 For All Ships.

GrayOwl
03-04-08, 09:12 PM
Dr.Sid, You never receive contact for a sensor control DSRV - NavalSimEngine does not give the data on detecting FRIENDLY contact. :hmm:

:huh:

Dr.Sid
03-05-08, 05:48 AM
Now that is correct, I remember that. I tested it with 'red' Typhoon.
Ok .. that's the point. Since it can't be used to original purpose, there is little reason to fix it.

LuftWolf
03-08-08, 05:32 PM
The DSRV has never detatched from any sub I have ever used.

So, since the engine doesn't even detatch the DSRV from my main submarine, there isn't a whole lot I can do about it.

If anyone does know how to get the DSRV to detach from the submarine, I'd love to hear it, because it simply will not on my machine. :-?

Cheers,
David

Dr.Sid
03-08-08, 05:48 PM
Now that is simple.

- Choose DSRV as loadout in mission editor.
- Target must be sub and it must be different side, not sure about alliances. Different side, peace time works.
- You must be under 3 kts, then you use popup menu on nav map, same as spec ops.

DSRV should launch, and as it can't read target depth (it reads zero) it surfaces, slows down to 3kts on surface, starts to cavitate as hell. Anyway it still tries to get toward the target.

It needs new sensor reporting depth, totally new script, and some testing and thinking about the side trouble.

GrayOwl
03-10-08, 05:38 PM
Now that is correct, I remember that. I tested it with 'red' Typhoon.
Ok .. that's the point. Since it can't be used to original purpose, there is little reason to fix it.

I have repaired stupid navalsimengine - now data on depth of the rescue sub are pass in the doctrine for correct work DSRV unit.
The small displacement all in :damn: 5 bytes :damn: was required - The patient needed surgical operation - without it, he is dead.:lol:

GrayOwl
03-11-08, 02:01 PM
Now that is simple.


- Choose DSRV as loadout in mission editor.
- Target must be sub and it must be different side, not sure about alliances. Different side, peace time works.
- You must be under 3 kts, then you use popup menu on nav map, same as spec ops.

DSRV should launch, and as it can't read target depth (it reads zero) it surfaces, slows down to 3kts on surface, starts to cavitate as hell. Anyway it still tries to get toward the target.

It needs new sensor reporting depth, totally new script, and some testing and thinking about the side trouble.



Hi DSid!

For an example, I give you a hint -

File FCTD.Dll For 688I:

Replace in FCTDt.Dll { Offset [0 x00009507] } value 0B to meaning 06.

In File Weaponloadout.dll (688I interface folder) - [0 x00002328] value 0B to meaning 06.

Waiting Depth Data in Sim For DSRV correct work completed……:dead: :dead: :dead:


--------------------------------------

GrayOwl
03-11-08, 02:02 PM
Now that is simple.



- Choose DSRV as loadout in mission editor.
- Target must be sub and it must be different side, not sure about alliances. Different side, peace time works.
- You must be under 3 kts, then you use popup menu on nav map, same as spec ops.

DSRV should launch, and as it can't read target depth (it reads zero) it surfaces, slows down to 3kts on surface, starts to cavitate as hell. Anyway it still tries to get toward the target.

It needs new sensor reporting depth, totally new script, and some testing and thinking about the side trouble.



Hi DSid!

For an example, I give you a hint -

File FCTD.Dll For 688I:

Replace in FCTDt.Dll { Offset [0 x00009507] } value 0B to meaning 06.

In File Weaponloadout.dll (688I interface folder) - [0 x00002328] value 0B to meaning 06.

Waiting Depth Data in Sim For DSRV correct work completed……:dead: :dead: :dead:


--------------------------------------