SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997 |
|
|
Thread Tools | Search this Thread | Display Modes |
11-27-07, 01:04 PM | #16 | |
Chief
Join Date: Dec 2005
Posts: 326
Downloads: 5
Uploads: 0
|
Quote:
Here is what we’ve done in less than 2 years time regarding creating a scenario with in-game dynamics. But missing some vital points recently learned and verified. More points will be included in a features list of a MP map set currently WIP that will go into greater detail of new lessons learned and what we did to accomplish in-game dynamics. The following points are: Suppression of Predictability / Optimized In-Game Dynamics - I’ve learned that the only way to optimize in-game dynamics is to suppress predictability as much as possible. One big no-no that plays into predictability is spawning platforms as such to where detection WILL BE made by the same opposing platforms each time the map is loaded, or some period after heading into a general direction, or both. This doesn’t give players many options to choose from, which equates to limitation of tactics and strategy. Sooner or later the player will know the map as such that there really isn’t a need for tactics or strategy, only deployment of weapons. There are other ways to suppress predictability based on scenario design. The more you suppress predictability while balancing playability, the more you optimize in-game dynamics, something I call ‘optimized in-game dynamics’ LWAMI & AI – in achieving in-game dynamics I want to say we’ve accomplished our objective in harnessing what LW/AWI does for us in terms of AI. Sometimes AI has a mind of its own and at best to make ai contribute to in-game dynamics is use of RSB / DL combo along with RS tactic. The wider the area the more dynamic the experience, but be mindful of SSP type and balancing (more later). Thorough scripting can make AI just as effective as humans and use of scripts can make AI even more robust. It could be argued that AI can’t react and adapt to situations as a human can. But since LWAMI allows AI to be influenced by humans, in some regard AI can adapt to an ever-changing situation. IIRC that SC editor does not include scripts and AI is crappy, for those two reasons SC scenarios will fall on their face w/o use of lw/ami & DW. Since AI is AI, AI is limited to lack of reaction time and adaptation to an ever-changing situation. For that reason any scenario involving AI w/o at least 1 human ally would assume a linear performance curve. Human Intervention – Simply put human intervention definitely makes up for Ais’ ability to react and adapt to the situation. Contributions of AI to in-game dynamics are limited by how robust you make them in editing, and nothing more. Spawning & SSP / Sense of Freedom – Spawning should be as such to where it offsets ‘guaranteed detection’ so that form of predictability is reduced. In the same token be mindful of the SSP and not create a scenario that isn’t playable. By means of extensive testing under normal conditions of the map, a ‘base detection’ can be determined where SSP and spawning over the area are contributing factors to this number. Base detection should be optimized for 50%, which gives both sides 50% chance of countering each others’ tactics and strategy. What this does it gives players a true sense of freedom and room for their personal skill sets to contribute to the scenario and vary the opposing sides chance of success. Hope this helps, good luck |
|
11-27-07, 04:42 PM | #17 | |
Chief
Join Date: Dec 2005
Posts: 326
Downloads: 5
Uploads: 0
|
Quote:
You’ll find some limitations beyond control such as 'suicide attack' script. but with some creativity and sharing ideas with others you can come up with a way to workaround it or something better. For example I ran into a fuel problem with su-27 interceptors flying a 4.5 hour CAP after leaving the airport. The workaround was ‘converting’ a tu142 bear or IL May into ‘in-flight refueling aircraft’ for the flankers using some triggering w duration and scripting. The tanker and CAP will fly formation and refuel every 2 hours (1:30 dw time w 30 minutes duration 15 minutes / plane) but if the 27’s make contact w hostile, they engage afterburners for 6 minutes breaking formation w tanker, engage contact w either missiles and guns, and when the contact is destroyed they return to formation w the tanker and resume CAP. I think I can be far more descriptive in ‘how’ we did it when the features list is complete for the beta I’m releasing soon. But for now use the use this as reference and any questions you have about scripts, triggering & whatnot I’ll be glad to offer assistance. |
|
11-27-07, 04:49 PM | #18 |
Ace of the Deep
Join Date: Jul 2002
Posts: 1,134
Downloads: 93
Uploads: 0
|
So, are the only serious mission/hardcore players all playing DW MP?
DW is regarded to have better general characteristics than SCXIIc? SP is regarded as no way to create really and interesting/challenging scenarios? That's what I am getting from reading between the lines. I must say that I have gone through 30-50 SC 1.08 scenarios and I have generally been dissappointed with play and challenge. Thus, my inclination that despite having a written a scenario or two that I could do, at least, as well if not better.
__________________
War games, not wars! --- Only a small few profit from war (that should not stand)! |
11-27-07, 05:02 PM | #19 |
Soundman
Join Date: Sep 2004
Location: Compartment № 5 /Silos/
Posts: 149
Downloads: 0
Uploads: 0
|
Very good doctrine - Has no been equal in reality.
Compatible only with AI Helos - NOT FOR CONTROL HELO FROM FFG! The helicopter will not be clued any more never. ; Reinforce Alert Add On AI Helo Doctrine. ; -- HeloDipping.txt Original Name Doctrine --- ; Compatible for LWAMI 3.08 var DipTimer var TargetCount var WaypointReached var Pinging var Dipping VAR TIME_ZVON VAR FLAG_PADENIE VAR T_NOPADENIE VAR OLD_SPD var LAST_CONT var GaugesOn var GaugesOff var TR1 var TakeOff var TimeInit VAR ROK VAR RX VAR RY VAR RokRng VAR PROZVON VAR TEMP VAR Delay var Lock IF INIT THEN { ; DebugOut "AI Helo_Dipping Doctrine INIT" PROZVON = 0 ROK = 0 GaugesOn = -1 GaugesOff = 0 TR1 = True TakeOff = True TimeInit = ( Time + 60 ) LAST_CONT = 0 FLAG_PADENIE = 0 TIME_ZVON = -1 Lock = 0 Delay = 0 TargetCount = 0 WaypointReached = 0 DipTimer = -1 } ENDIF IF ( GaugesOn != -1 ) THEN { IF ( ( OwnAlt < 50 ) AND ( NOT TakeOff ) AND ( OwnSpd <= 5 ) ) THEN { Enable Lock = 1 DebugOut OwnName Debugout "SENSORS ON" GaugesOn = -1 GaugesOff = 0 } ENDIF } ENDIF IF ( GaugesOff != -1 ) THEN { IF ( ( OwnAlt > 50 ) OR ( OwnSpd > 5 ) ) THEN { Preenable DebugOut OwnName DebugOut "SENSORS OFF" Lock = 0 GaugesOff = -1 GaugesOn = 0 } ENDIF } ENDIF IF ( Lock == 0 ) AND ( GaugesOff == -1 ) THEN { Delay = ( Delay + 1 ) } ENDIF IF ( Delay > 2 ) THEN { Enable SensorEnable "AI Dip Active" 0 SensorEnable "AI Dip PassiveS" 0 SensorEnable "AI Dip PassiveD" 0 DEBUGOUT "RADAR,ESM,MAD,Visual - ENABLED / Acoustic SENSOR DISABLED" Delay = 0 Lock = 1 } ENDIF ; Covert TakeOff, Don't Ping Near Parent Ship! IF ( ( Time > TimeInit ) and TR1 ) THEN { TR1 = false TakeOff = false } ENDIF IF NEWTRACK AND ( ( OwnAlt <= 55 ) AND ( ( TgtSource $= "Passive Sonar" ) OR ( TgtSource $= "Active Sonar" ) ) ) THEN { IF ( TgtClass $= "SUB" ) THEN { SETTACTIC "HeloDipping" } ENDIF } ENDIF IF ( ( OwnSpd <= 13 ) AND ( OWNALT > 150 ) AND ( ( TIME_ZVON == -1 ) OR ( TIME > TIME_ZVON ) ) ) AND NOT TakeOff THEN { DEBUGOUT "Dipping Sonars" SETPRIORITY 250 SETPERSIST 90 SETSPD 0 SETALT 45 DipTimer = ( TIME + 90 ) TIME_ZVON = ( TIME + 300 ) } ENDIF ; Assign Dipping Tactic IF NEWTRACK THEN { ; Sub? IF ( ( ( TgtClass $= "SUB" ) OR ( TgtClass $= "SURF" ) ) AND ( ( NOT ( ORDER $= "TRANSIT" ) ) ) ) THEN { DEBUGOUT "Assigned Dipping Sonar" TACTICCENTER LAST_CONT = ( TIME ) ROK = 0 SETTACTIC "DippingSonar" Pinging = 0 WaypointReached = 0 DipTimer = -1 TargetCount += 1 } ENDIF ; Missile? IF ( ( TgtClass $= "MISSILE" ) AND ( ( TgtMissileClass "AAM" ) OR ( TgtMissileClass "SAM" ) ) ) THEN { SETTACTIC "AirEvadeMissile" } ELSEIF ( ( TgtClass $= "MISSILE" ) AND ( TgtMissileClass "SSM" ) ) THEN { DEBUGOUT "Missile CheckUp" IF ( ROK == 0 ) THEN { RX = TGTX RY = TGTY ROK = 1 } ENDIF } ENDIF ; Enemy Plane? IF ( ( TgtClass $= "AIR" ) AND ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UAE" ) OR ( TgtID $= "UPD" ) ) ) THEN { SETTACTIC "AirEvadeAir" } ENDIF } ENDIF ; lost track IF LOSTTRACK THEN { DEBUGOUT "Helo Doctrine, Lost Track!" ; decrement target count IF ( TgtSource $= "Active Sonar" ) OR ( TgtSource $= "Passive Sonar" ) THEN { TargetCount -= 1 ; lets make sure our variable doesn't go negative! IF TargetCount < 0 THEN { TargetCount = 0 } ENDIF } ENDIF } ENDIF ; Check Up Point Missile Start IF ( ( TargetCount == 0 ) AND ( ROK == 1 ) AND ( NOT ( ORDER $= "TRANSIT" ) ) ) THEN { TEMP = XYBRG ( RX - OWNX ) ( RY - OWNY ) STEERXY ( RX - OWNX ) ( RY - OWNY ) SETSPD ( 110 ) ROKRNG = xyrng ( OwnX - RX ) ( OwnY - RY ) IF ( ROKRNG < 500 ) THEN { ROK = 0 PROZVON = 1 } ENDIF } ENDIF ; Search only IF ( NOT ( ORDER $= "Transit" ) ) THEN { ; Dip IF ( WaypointReached == 1 ) OR ( PROZVON == 1 ) THEN { ; game has just clued us we've reached a waypoint DEBUGOUT "Waypoint Reached,Lower Dipping Sonars" SETPRIORITY 249 SETPERSIST 90 SETSPD 0 SETALT 45 Pinging = 0 WaypointReached = 0 PROZVON = 0 Dipping = True } ENDIF ; Start pinging IF ( ( Pinging == 0 ) AND ( Dipping == 1 ) AND ( OwnAlt < 50 ) ) THEN { DEBUGOUT "Commence Check Point" SETPRIORITY 249 SETPERSIST 90 SETSPD 0 SETALT 45 Pinging = 1 DipTimer = ( TIME + 90 ) } ENDIF ; Stop Dip IF ( ( DipTimer != -1 ) AND ( TIME > DipTimer ) ) THEN { DEBUGOUT "Check Is Completed, Raise Dipping Sonars" SETPRIORITY 250 SETPERSIST 60 SETSPD MAXSPD SETALT 300 Pinging = 0 DipTimer = -1 Dipping = False TACTICCENTER } ENDIF } ENDIF ; Don't Dive! IF ( ( OwnSpd > 100 ) AND ( OwnAlt < 80 ) AND ( FLAG_PADENIE == 0 ) ) THEN { OLD_SPD = OwnSpd ; DEBUGOUT "Helo Stall" FLAG_PADENIE = 1 T_NOPADENIE = 0 SetPriority 251 SetPersist 20 SetAlt 150 SETSPD ( OWNSPD - 15 ) } ENDIF IF ( FLAG_PADENIE == 1 ) THEN { T_NOPADENIE = ( T_NOPADENIE + 1 ) } ENDIF IF T_NOPADENIE > 30 THEN { SetPriority 251 SetPersist 40 SetAlt 200 SETSPD OLD_SPD T_NOPADENIE = 0 FLAG_PADENIE = 0 ; DEBUGOUT "Refresh Spd" } ENDIF ================================================== ================================== Second Doctrine For Helo.... ; HeloDipping --- Dipping Sonar.txt --- Search Doctrine For -Reinforce Alert- Addon /KPV_1974 design/ ; Compatible for LWAMI 3.08 ; -- DippingSonar.txt Original Name Doctrine --- var DipTimer var ReattackTimer var ValidTarget var GOGO var T_G var G var TEMP var L_C var F var LCX var LCY var TLC IF ( INIT ) THEN { LCX = TGTX LCY = TGTY L_C = ( GetEntVar "LAST_CONT" ) TLC = L_C G = 0 T_G = 0 F = 1 SensorEnable "MAD" ON GOGO = 0 DipTimer = -1 ReattackTimer = -1 IF ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UPD" ) ) THEN { ValidTarget = -1 } ELSE { ValidTarget = 0 } ENDIF } ELSE { IF ( LOSTTRACK ) THEN { F = 1 } ENDIF L_C = ( GetEntVar "LAST_CONT" ) IF ( DipTimer == -1 ) AND ( ValidTarget == -1 ) THEN { TEMP = ( TIME - L_C ) IF ( ( ( TgtID $= "UPD" ) OR ( ( TgtID $= "HOSTILE" ) AND ( TEMP > 100 ) ) ) AND ( TgtRng <= 1200 ) ) THEN { ; DEBUGOUT "TIME:" ; DebugValueOut TIME ; DEBUGOUT "L_C:" ; DebugValueOut L_C ; DEBUGOUT "TEMP:" ; DebugValueOut TEMP IF ( TgtID $= "HOSTILE" ) THEN { ; DEBUGOUT "Drop Contact1" DROP } ENDIF F = 1 DipTimer = ( TIME + 90 ) SETPRIORITY 251 SETPERSIST 80 SETCRS TGTBRG SETSPD 0 SETALT 45 } ELSEIF TgtRng > 500 THEN { ; Close SETPRIORITY 251 STEERTO SetSpd MAXSPD SETALT 300 SensorEnable "MAD" ON } ELSE { DEBUGOUT "Smell Him!" F = 1 DipTimer = ( TIME + 90 ) SETPRIORITY 251 SETPERSIST 80 SETCRS TGTBRG SETSPD 2 SETALT 45 } ENDIF } ELSEIF ( ValidTarget == 0 ) THEN { SETPRIORITY 251 SETSPD MAXSPD SETALT 300 IF TgtRng > 13715 THEN { ; DEBUGOUT "DropContact2" Drop } ENDIF } ELSEIF ( TIME > DipTimer ) THEN { ; Stop dip DEBUGOUT "Stopping prosecution dip" SETPRIORITY 251 TACTICCENTER SETSPD MAXSPD SETALT 300 SensorEnable "MAD" ON DipTimer = -1 } ENDIF ; Engage TEMP = ( TIME - L_C ) IF ( ( TEMP <= 100 ) AND ( TgtRng <= 1100 ) AND ( TgtID $= "HOSTILE" ) AND ( ( ReattackTimer == -1 ) OR ( TIME > ReattackTimer ) ) ) THEN { GOGO = 1 G = 1 SETPRIORITY 252 SETPERSIST 10 SETSPD MAXSPD SETCRS TGTBRG SETALT 200 SETPRIORITY 250 SETPERSIST 200 ATTACKBEST DipTimer = -1 ReattackTimer = ( TIME + 300 ) } ELSEIF ( ( G == 0 ) AND ( TgtRng > 1200 ) AND ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UPD" ) ) ) THEN { GOGO = 1 SETPRIORITY 252 SETALT 300 SETSPD 110 SETCRS TGTBRG DipTimer = -1 } ENDIF IF ( G == 1 ) THEN { T_G = ( T_G + 1 ) IF ( T_G > 1200 ) THEN { G = 0 T_G = 0 LAND } ENDIF } ENDIF LCX = TGTX LCY = TGTY } ENDIF
__________________
-+= I the ocean hunter, and I am dangerous =+- *** Kalashnikov - the best *** |
11-27-07, 05:54 PM | #20 | |
Chief
Join Date: Dec 2005
Posts: 326
Downloads: 5
Uploads: 0
|
Quote:
When you mention SCX still SC remains as source of editor. DW / LWAMI offers far more flexibility in editing (use of scripts & triggers for sake of AI than SC. So the answer is yes. AFAIK SCXIIC only gives you more platforms and that is it. I’ve even reinstalled SC for sake of SCX platforms and our concept of in-game dynamics, but when I learned that SC didn’t offer use of scripts, there really isn’t a point dealing with SC. Someone confirm for me that scripts do not exist with SC / SCXIIC running. If so I’ll change my tune about SC / SCXIIC. SP isn’t my department and I’m sure some good scenarios can be created, like RSR for example. But when it comes to being challenged, AI even after coded to be as effective as humans still can’t cut it w/o some human intervention involved. It’s common sense. Plus some SP scenarios literally spawn platforms out of thin air, which isn’t realistic in my book. Instead I account for departure of platforms and random arrival times for both humans and AI alike. |
|
11-27-07, 06:00 PM | #21 |
Ace of the Deep
Join Date: Jul 2002
Posts: 1,134
Downloads: 93
Uploads: 0
|
SC's editor does not have scripts.
I think the one thing it has missing in DW is user actions. You can check if particular controls have been pressed or certain masts have been raised. It was probably implemented in order to script the interactive tutorials that came with SC. DW just had videos, but no interactive tutorials. The SC ones were similar to the high quality interactive tutorials that came with games like Long Bow. Come to think of it, it was probably a requirement of Electronic Arts at that time.
__________________
War games, not wars! --- Only a small few profit from war (that should not stand)! |
11-27-07, 06:15 PM | #22 | |
Silent Hunter
Join Date: Jun 2004
Location: Along the Watchtower
Posts: 3,810
Downloads: 27
Uploads: 5
|
Quote:
So if you're looking for a dynamic fight that is also challenging, your best bet is human opposition in the context of a rather open-ended MP scenario. SP is still good for creating specific scenarios, though. There's nothing wrong with thinking up new situations (or hearing about real life ones) and seeing how they would play out.
__________________
|
|
11-27-07, 06:22 PM | #23 |
Ace of the Deep
Join Date: Jul 2002
Posts: 1,134
Downloads: 93
Uploads: 0
|
Interesting point. I had not considered that dynamic behavior and challenge or pulling in opposite directions, but you are right.
Also, there are mainly two ways to challenge the player: (1) Overwhelm - numbers exceed the players ability to counter or events happen too fast. (2) Outclass - the player is at a disadvantage; maybe has a platform with half the sensor range as the enemy. So, going back to dynamic that leaves the designer with not really using dynamic creation/placement of objects, but instead having a small fixed set precisely scripted missions where only one is actually instantiated and the player doesn't know and cannot quickly determine which.
__________________
War games, not wars! --- Only a small few profit from war (that should not stand)! |
11-27-07, 06:59 PM | #24 | ||
Silent Hunter
Join Date: Jun 2004
Location: Along the Watchtower
Posts: 3,810
Downloads: 27
Uploads: 5
|
Quote:
Quote:
I think RSBs and DLs are great time savers whenever you can use them, but obviously their utility is very limited, especially when you have a specific destination in mind (including moving targets) or when you're trying to spawn formations instead of lone platforms. Thus, DGs tend to be the best option for creating different starting positions. Rather than create entirely separate instantiations, whenever possible, I would try to use layered DGs and probability inclusions to randomly select dynamic design elements individually. You get more dynamicity (yes, I made that word up) for your buck that way.
__________________
Last edited by Molon Labe; 11-28-07 at 05:13 PM. |
||
11-28-07, 12:42 PM | #25 | |
XO
Join Date: Mar 2002
Location: Spain
Posts: 431
Downloads: 22
Uploads: 1
|
Quote:
I'm talking as submarine (Akula) player: Is by far more dificult to design, but I think a dynamic mission can be challenge without overwelming the player or putting him in disadvantage. The point is that only the uncertainy of who, where and how many enemies are out there puts you in a little disadvantage. Also the fact that you have to choose a variety of weapons because you don't know what will you need untill the mission message arrives, or that you may have to choose different ways to reach one location, gives the mission a good challenge. Also the uncertainy of knowing that maybe that enemy sub you found last time can be close... or maybe is at 20 miles... or maybe it isn't this time... or maybe it is, but this time the mission of that submarine is other than killing you... maybe an ally this time? :hmm: It will be hard, VERY hard, but a good dynamic scenario will be great (I'm going now to play now those Bill scenarios ) edit: what does RSBs and DLs means? Sorry, I'm not English...
__________________
Hay dos tipos de buques: los submarinos... y los blancos. There are two types of ships: the subs... and the targets. |
|
11-28-07, 04:20 PM | #26 | |
Electrician's Mate
Join Date: Feb 2007
Posts: 140
Downloads: 8
Uploads: 0
|
Quote:
|
|
11-28-07, 05:11 PM | #27 | |
Silent Hunter
Join Date: Jun 2004
Location: Along the Watchtower
Posts: 3,810
Downloads: 27
Uploads: 5
|
Quote:
__________________
|
|
Thread Tools | Search this Thread |
Display Modes | |
|
|