Command v1.06 – The new features Part II

On Part I of our coverage of the new v1.06 goodness we covered the radically revised Air Ops and unit-level proficiency settings. If you thought these were the big attractions though, there is an ever bigger fish in the new release. Let’s have a look.

Game-changer, thy name is Lua

The Lua scripting language has been widely employed in games & simulations in the industry and so its introduction to Command marks a milestone event. On this first iteration, Lua has been integrated as another “Event Action” type in the Scenario Editor’s established Event Engine. Within this new action type, a whole range of script functions are supported for altering elements of the running scenario (see HERE and HERE for comprehensive documentation of available scripts).

The new supported functions include:

Assigning units to missions, removing them from existing missions or reassigning them to others.

Changing EMCON settings. One could make an event for an entire side’s radars to engage.

Creating new Aircraft, Ships, Submarines and Land Units at specific or random locations.

Moving units, setting new courses for units. Telling units to hold fire, or to open fire.

Changing side posture, for example one could make an event to make Soviet Union and NATO hostile towards each other.

Changing the doctrine for a specified side, mission or unit.

Changing the weather, either specifying a precise change or randomizing the weather.

A ll of these new actions can be performed by the AI side in a scenario according to events triggered via the Event Editor. Scenario designers therefore now have a whole new set of tools to make more dynamic, highly-variable and interactive scenarios. Imagine for instance a scenario where the AI side performs allocation of aircraft to different CAP missions and zones based on the amount of aircraft destroyed or land units destroyed. Another aspect of this is that a scenario author can move and set course for units. This is especially interesting when a scenario author sets an action to move reference points if there is a mission patrol zone attached to the reference points. This allows a scenario author to edit patrol zones during a mission – thus changing the behavior of the AI in a scenario. Doctrine settings are now manipulable via the event editor as well. An example of this might be the Russian side enabling the use of nuclear weapons if Moscow is destroyed or damaged. Or, tying in with the air operations tempo doctrine settings from earlier, an AI controlled nation could have an event that bumps up air operations tempo from sustained to a surge footing.

Tomcat84 from the beta crew has put together two Lua-in-Command video tutorials: an introductory one, showing how easy it is for someone completely unfamiliar with Lua to use it to enhance a scenario, and an advanced one demonstrating how a familiar author can completely transform a scenario, for example:

Making a CAP change mission to become more aggressive once approached

Having a 50% chance of an AWACS being added when the scenario is loaded

Removing radar information from fighters when the Fighter HQ is bombed (permanently or coming back online after X amount of minutes)

Making tanks become detectable to the player side when crossing into an area

Making those tanks retreat once they reach a certain amount of damage together

Randomizing whether an SA-2 site is dumb with radar on or smart with radar off and a prosecution area at scenario load

Randomly adding either an SA-3, SA-6 or SA-8 at a location with 40% chance for SA-3 or SA-6 and 20% for the SA-8

Randomizing which CAPs a group of MiG-29s goes to

Having the weather improve over time with slight amount of randomness

Showing how to have a strike mission marshal somewhere first before randomly selecting which target they go to

Having SAM’s EMCON go active once too many EW Radars are taken out

Having SAM’s EMCON go active when the SAM HQ is bombed

Having SAM’s go passive again when HQ backup is online after X minutes, UNLESS they were already active because EW radars were taken out

Scen authors can use a “Lua script console” (if you have played first-person shooters you are probably familiar with drop-down consoles that offer all sorts of hacks and diagnostics) to try out and experiment with their scripts before committing them to the Event Engine. One thing that is important to note is that the introduction of these new event editor actions in no way changes existing Command scenario functionality. This only acts in addition to existing functionality: your favorite scenarios will still play out just way you like them.

The other new features

Aside from the “big three” new features, the v1.06 release contains a myriad of fixes and additions, some of them long-time desires of the dev team but most of them directly influenced by the plentiful feedback we have received since Command’s triumphant public debut. This is a summary rundown of the most visible additions; for full details see the release notes accompanying the v1.06 release.

* New UI feature: Satellite pass predictions. Selecting this function from the “Game” menu, and then clicking on the desired location on the map, brings up a window with the predicted passes and coverage times (ie. sat being within sensor range of the location) for the next X days for all satellites (default value is 3 days, but this can be modified).

All columns are sortable by clicking on the headers, so for example you can quickly see which sat will pass within coverage from the area of interest, which pass will offer the longest dwell time etc.



* Patrol/Support mission altitude overrides on Mission Editor: You can now set override values for the transit and on-station aircraft altitudes for patrol & support missions. These values are displayed & edited in feet or meters, depending on display preference.



* Radars able to detect mobile ground units are limited by target speed. A halted tank platoon for example is much harder to pick up than one on the move. Radars with progressively higher frequency (NATO J/K/L/M bands) get extra bonus on this as their higher frequency allows them to pick out even low-speed or static targets. (Not coincidentally, such seekers feature prominently on weapons like Longbow-Hellfire, Brimstone etc.)



* “Submarine Datum” contact: If an inbound torpedo is detected where no submarine contact is held, a presumed submarine contact is auto-generated on the assumption that the weapon came from somewhere. The initial AoU for the presumed sub contact has a 10nm radius and expands with time as with normal detections. Likewise, if a sub-launched missile is detected immediately after launch (within 1nm of its firing submarine) then a sub contact is generated with a 1nm-radius AoU (remember how “Operation Doolittle” in RSR went horribly wrong?). This helps surface/sub forces under sub attack to respond quickly to the attack even without having positively detected the attacker (and hopefully kills the player “sub sniping” cheat).



* No need to close and re-open the DB viewer: The DB viewer window, if already open, now refreshes properly when you click on a different friendly or identified non-friendly unit, or perform any other action which would normally open it (e.g. clicking on a weapon entry on the loadout selection screen). So you no longer have to close it repeatedly in order to browse through various in-scenario units.



* Fixed long-standing bug on “Unit enters area” trigger: it was firing for every moment at which a unit was in the area (so if it was chained to a repeatable event, the event was firing continuously). Now it fires only when the unit actually steps into the area from outside.



* Loadout IDs are now displayed on the aircraft page of the DB viewer.



* Special reserved variable for Event Engine: UnitX. This is a global (scenario-wide) variable representing the active unit responsible for firing any of these triggers:

– Unit is damaged

– Unit is destroyed

– Unit is detected

– Unit enters an area

– Unit remains in area

So whichever unit causes of the above triggers to fire, it gets tagged as “UnitX”.

You can then use this special variable as a reference in any Lua-mapped function that takes a unit’s name/ObjectID as a parameter (so for example you can dictate “whichever unit enters this area will get assigned to this mission”).



* New logged message type: New Mine Contact. As with all other message types, it can be configured to show (or not) on the message log and also trigger a clock-stopping popup.



* The various altitude parameters (transit altitude, on-station altitude etc.) of a loadout’s mission profile are now enforced for air patrol & support missions. So for example a P-3 on a typical ASW patrol will transit at high altitude (optimum fuel consumption) and once it enters the patrol area it descends to 300m for the actual patrol. Combined with the optional altitude overrides for patrol & support missions, this means that an aircraft’s altitude is now configurable at 3 different levels (controlled by loadout, controlled by mission-level override, or finally overriden by direct player input).

* The “Select new homebase” function now works for any type of unit and group, not just for aircraft and airgroups. So now you can easily switch home bases for deployed ships, submarines, mobile land units etc.



* New Event Trigger type: “Scenario is loaded”. This fires immediately once a scenario is loaded from file and before it is presented to the player/editor, _if_ the scenario current datetime is at or before the “start of scenario” datetime. This enables doing initial setup actions (e.g. randomize unit locations) before the player starts the scenario. * On the “Add Unit” window, the unit names are now also hyperlinks to the relevant page on the DB viewer:

* Improved cloud and thermal layer indicators on throttle/altitude window. This makes it easier to quickly visualize if e.g. an aircraft is blocked by cloud cover (important for EO/IR sensors, LGB-lazing etc.) or where a submarine stands in relation to the thermal layer (very important for sonar detections, as explained in detail on the manual).





* New patrol & support mission feature: Minimum number of units on station. This appears on the mission editor windows as “Try to keep [XXX] units of each class on-station (0 to ignore)”.

This value can be used to precisely specify the desired number of units (per class) on-station instead of relying only on the 1/3rd rule. However, it can also be _combined_ with the 1/3rd rule, and the biggest value between them takes precedence.

Let’s look at a concrete example. We have 12 aircraft (same class) on a base and are assigning them to a patrol.

– If the “minimum number” value is 0 and the 1/3rd rule is not used: The airops crew just flushes out all aircraft at once.

– If the “minimum number” value is 0 and the 1/3rd rule is used: The airops crew tries to keep 1/3rd of the force on station.

– If the “minimum number” value is > 0 (let’s say 7) and the 1/3rd rule is used: The biggest value between them takes precedence. So in this case 12/3 = 4 and 7 > 4 so the “minimum number” value wins. If the force was 24 aircraft then the 1/3rd rule would win because 24/3 = 8 and 8 > 7.

– If the “minimum number” value is > 0 (let’s say 7) and the 1/3rd rule is not used: The airops crew will try to keep 7 aircraft on station.



* Additional factor for ship gunnery: Ship size. Large ships are very stable platforms for unguided weapon fire (guns, rockets, lasers etc.) even during heavy seas, while smaller craft face progressively more severe aiming problems (even with advanced fire-control directors) as the weather worsens.



* Modified patrol behavior for aircraft: Once they get a class ID on a contact, if they do not have suitable weapons to engage it, they stop going after it and resume their patrol. This is meant to address the “MPA twirls over hostile surface ship and gets shot down” problem.

* Torpedoes can now be fired to their maximum kinematic range instead of 8nm. So if you really want to e.g. fire a Mk48 out to a target 25nm away because Jane’s says that’s the max range, now you can. (Just don’t blame anyone if the target easily outruns it or if the firing solution at that range is so poor that the torp misses outright). The firing behavior is configurable as a doctrine setting (so it can be applied to side-, mission-, group- or unit-level), and can be set to apply only for manual (i.e. player-initiated) shots only (so the AI remains conservative), both manual and AI shots, or none.

* New Scen-Edit feature: Clone a unit (ie. copy a unit and also copy all customizations of the original). The keyboard shortcut is Shift + C. The only limitaton currently is that modifications to an aircraft’s loadout (extra weapons etc.) are not copied.



* Added option (ON by default) to display the selected unit’s (or identified contact’s) image as a thumbnail under the unit’s name on the “Unit/Contact Status” info panel: NOTE: The image will appear only if you have downloaded the DB image pack from the WS Downloads page.



* Aircraft returning to base on RTB-Mission Over / Winchester / Manual status now accept course orders (but not if they are on RTB-Bingo).



* Pressing Ctrl+X now copies the geo coordinates of the map cursor (in decimal form) to the clipboard.



* Includes a large number of new import files by Mike Mykytyn and Jakob Wedman.



* Includes rebuilt and improved versions of all official scenarios.



* Includes the latest versions of the DB3000 & CWDB databases, with the usual mile-long list of database fixes and additions in direct response to user requests. * You can drag-select multiple facilities, ships, bases or ship groups and access the Air Ops or Boat Ops menu (F6 / F7 hotkey) to display aircraft on all parking facilities.

Version v1.06 (Build 624) of Command is currently under final testing and preparation and should appear in public within December.

Comments