New in v1.07: Scenario Attachments (a.k.a. auto-bundling)

February 16, 2015 · Posted in Command · Comment 

prod_icon256Ever since Command’s initial release, the players have been asking us for an automated, reasonably idiot-proof way of bundling various content items (primarily map overlays but also other types) together with their scenarios and have them referenced correctly regardless of the scen file’s actual location.

Scenario Attachments, a.k.a. auto-bundling, is our response to this request. It is one of the flagship new features of the v1.07 update.

Scenario attachments are “things” (anything from a single file to a massive directory tree) that you can provide as attachments to a scenario (similar to attaching a file to an email message) and then use them via a new Lua command “ScenEdit_UseAttachment”. What exactly happens when you use them obviously depends on the attachment type. When a scenario packaged with attachments is loaded, its attachments are transparently copied to the local repository and can then be re-used on any other scenario (much like .inst files). The use of a single-point repository solves the “I moved my scen file around and now it cannot find its attachments” problem (this may be familiar to anyone who moves saved web pages around in the file system without their accompanied images etc.).

Here is a concrete example:

a) Author-A constructs a scenario and wishes to enrich it with imagery of an area. From the “Editor” menu, he selects “Scenario Attachments”. This brings up a window listing the attachments currently associated with the scenario:

Here we see we can construct a new attachment, use an existing one or modify (rename/delete) any already on the repository. Clicking on the “Create new of type: […]” will prompt us to locate the source material for the attachment, in this case a geo-referenced image file (map overlay). Clicking on “use existing” brings up another window which lists all attachments already available on the local repository:

Selecting the desired attachment and clicking on “Use selected” will add the attachment to the scenario.

We can then select, from the “Editor” menu, the command “Package scenario for distribution”. A file-dialog will pop up to prompt us for where to save the packaged scenario file. The “packaging” is essentially the process of properly bundling the scenario with the selected attachments on a single zip file, so that they can be correctly identified and loaded (automatically) by end users.

Author-A then distributes the bundled scenario as usual. User-A unzips the bundle file to “\Scenarios” (or anywhere else) and loads up the scenario. Under the hood, the program sees the unzipped “attachments” folder side-by-side with the scenario file and automatically copies the attachments (each one on its dedicated folder, uniquely identified with a GUID) to the user’s local repository.

To use a referenced attachment, you can use the new Lua command “ScenEdit_UseAttachment”, which accepts either an attachment’s name or its GUID. So in this case, by bundling an image overlay to a scenario and creating an “on scen load” event that triggers its use, we can display map-overlay images to the end user without any manual action of his own.

Of course this infrastructure is meant to eventually exploit multiple attachment types, ranging from media files (audio, video etc.) to pre-fab Lua scripts, arbitrary text or binary files etc.

Command: Modern Operations – User interface and experience, Part I

September 30, 2019 · Posted in Command · Comment 

Command: Modern Operations (aka CMANO2) is coming soon! Are you ready? As part of our pre-launch coverage, we explore the main features of this new milestone release in the CMANO franchise. This week we are looking into some of the new additions directed at the user interface and experience.


 

As we stated in an interview recently, improving the user interface and the overall user experience has been a primary driver in the development of CMO. It is only natural, then, that many of the new features that we introduce in this release are related to the user interface and the overall gameplay experience. Let’s have a quick roundup of the greatest hits.

 

Driving fast and looking good

Arguably the single biggest criticism leveled against CMANO v1.x has been that its user interface, and primarily the map engine, felt slow and clunky. In some cases this was the result of various technical circumstances, such as users not keeping their systems updated, shovelware and intrusive apps sinking their rusty hooks inside Command without any recourse (looking at you, Valve & MSI), and other factors. But most of the time it was plainly a matter of users being accustomed to smooth-flowing globe engines like Google Earth, and Command’s map engine, with its typically-brief-but-noticeable lag coming up short by comparison. (Some people asked us in all honesty “if Google can do it, why can’t you?”. I guess being compared to a trillion-dollar behemoth is flattering, even so.)

Now, anyone who’s followed us on the journey from CMANO v1.0 to v1.15 knows well that the map engine’s responsiveness has been improved by leaps and bounds. But there is only so much you can tweak an engine before you run up to its fundamental limitations. So a complete re-write became necessary.

And this is what we did:



 

So, we got the globe part down cold. But what about the map itself? One of the most persistent requests after the v1.0 release has been for greater map detail and clarity, for map layers that provide better environment information to aid in the player’s decision making. Well we got some good news on that front too.

To illustrate the features and purpose of the new map layers, let us use a common example, the western part of Crete and especially the Souda Bay area, a critical NATO air & naval complex in the eastern Mediterranean. (For reference: https://www.google.com/maps/@35.5190094,24.1545852,19019m/data=!3m1!1e3 ). This is how it looks like in CMANO v1.x, without any custom-added layers:

 

BMNG layer:

Relief layer:

(To be fair, the map appearance can be significantly improved by adding custom layers. However, the point here is to illustrate how the maps look “out of the box”, without any additional care from the player or scenario author)

Let’s look at the same location using CMANO2’s built-in layers.

BMNGv2:

This is an improved version of the original BMNG (Blue Marble Next Generation), offering greater detail both on the bathymetry side (example: http://www.matrixgames.com/amazon/Screenshots/CMO/DevInt_Preview1/answers/full/1b.png ) and also on the terrain side. In addition to showing terrain features, this layer also shows general vegitation state and terrain type (though not to the same level of clarity as other layers).

 

Relief:

This is an improved version of the original Relief layer, offering again much greater clarity on terrain contours. This layer is dedicated to terrain so it does not display any other information.

 

Sentinel-2 satellite map:

This is a brand-new addition, offering a visual display of terrain type and major features, with a clarity level down to spotting individual facilities at air & naval bases. Scenario authors who currently have to add their own custom overlays in areas of interest, but also players looking for a better level of environment immersion, will likely appreciate this.

 

Stamen terrain:

This is another new addition. This layer is graciously provided by Stamen Design (www.stamen.com), and combines a very detailed relief overlay, comprehensive road & city data from OpenStreetMaps plus labels of locations, cities, roads etc. 

 

Stamen roads & cities:

This is a variation of the Stamen terrain layer, and allows draping the road & urban information on top of any of the other map layers. This can be very useful if you want to combine e.g. the shaded relief or BMNG layers with the road information provided by Stamen.

 

Land cover:

This also new addition displays the different terrain types (urban, desert, jungle, snow etc.) on each location. It is closely tied to the improvements we are introducing on ground operations (more on this later).

 

Because of the vast increase in detail in these layers, bundling the full maps together with the game installer would be prohibitive (the installer would be over half a terabyte in size). Instead, the coarse zoom levels for each map (except the Stamen-provided ones) are provided together with the game, and higher-detail tiles are downloaded on-demand, similar to using Google Earth.

 

 

Fear of the dark

 

We are already very proud of the power and flexibility that Command’s UI affords to the player (quickly now: name 5 other strategy/wargaming titles that exploit multiple monitors). However, a fairly common piece of feedback from users has been that Command looks to them more like a “traditional” business application like MS Office, rather than a bonafide game.

This is understandable, given that CMANO v1.x runs strictly on a desktop window rather than full-screen, and uses most of the Windows desktop conventions and UI elements. It really looks a lot like just another Office application, and this is a deliberate design choice, given the priorities of the system as a whole: Command must be able to present to the user a huge amount of information (particularly as scenario size/complexity grows) but in discrete, manageable chunks, and its user interface must be amenable to changes & additions long after the initial version is put into use (futuristic UI concepts such as this seem very nice and sleek until you start thinking about scalability, usability, expandability and maintainability).

That said, we absorbed the need for a more modern, easier-on-the-eyes interface while at the same time retaining the fundamental strengths of CMANO’s UI. So we came up with this:

As you can see, in some ways the UI retains its overall layout and orientation (which means that existing players will feel right at home), but at the same time ditches the typical Windows light gray for a decidedly darker tone. Contrary to what some may think, this was not a simple matter of simply re-skinning the existing UI: Major elements had to be torn-out and replaced by ones that are more suitable to the overall look and feel. The result is an interface that, we think and hope, keeps the strengths of the original while providing a much better user experience.

The top-level menu is refactored with visually simpler basic controls, plus a full series of color-coded shortcut buttons for the most common unit orders (this button bar can be entirely hidden to save more map space). 

And as cherry-on-top, you can now switch to full-screen mode:

This setting can be toggled on/off, and persists along with the other map settings so you can set it and forget it (or change it at will).

 

A bit of the old in-out

Part of the revised user interface is a number of tweaks to the right column, where most of the information on a selected unit/contact/group is presented. The column can now be tucked out of the way if desirable:


In smaller screens this can make a huge difference in usable “map real estate”, in consort with the collapsible message log (more on this later).

 

Message in a bottle

So, one of the other big usability complaints in CMANO is the deluge of information being presented to (some would say “poured upon” or “flooded”) the player. This is a legitimate objection; Command generates a ton of messages, and even though their appearance on the message log is full configurable, there is still a lot of them. Players don’t want these messages to be invisible, they want them to keep out of the way and be easily sortable, searchable and separated by type so that they can give priority to the important stuff.

We attacked this issue head on, and “Message Log 2.0” is the result:

    • Additional per-unit message log: All messages relevant to a specific unit are aggregated on a window specific to this unit, and only optionally also shown on the side-level message log. This both declutters the main message log and makes it much easier to quickly examine a specific unit’s message history:

    • Message balloons: When an event happens on the main map, a “balloon” containing the message summary pops up for ~10 sec. This makes it immediately obvious where the event described is happening. The balloons appear at a random bearing and semi-random distance from the reported event, to avoid overlapping on top of each other. They stay visible for 5 seconds, then fade out.
      The appearance or not of the balloons is configurable per message type (Game Options → Message Log).

 

    • The side-level message log now groups reported messages by type, and highlights the unread ones. This makes it easy to prioritize reading important messages (e.g. weapon engagements, battle damage etc) and quickly catch up on unread traffic. Messages are type-color coded, both on the message log and in the balloons:

    • When clicking any of the messages on the interactive message log, the map will auto-center on the message origin location.
    • When used in detached mode, the interactive message log can also switch to the “classic v1” raw-text style and back again, by clicking on the “Switch to [other style]” button: 

 

Time after time

The substantial speedup in UI & simulation performance ironically caused the resurface of an older issue, the so-called “runaway sim”. This happens when high time acceleration, combined with the absence of message pop-ups, causes the simulation to advance beyond the player’s control. (If you have come across any forum message along the lines of “I pressed ‘run’ and suddenly half my units were dead”, this is such a symptom). So there emerged the need for players to be in better control of sim execution without losing the performance benefits.

So, we came up with a solution that will seem familiar if you play Combat Mission: Run for a specific chunk of simulated time, then stop:

Clicking on any of the four different arrows (or pressing their respective hotkeys) while the sim is paused will make the sim run for 15 seconds, 1 minute, 5 minutes or 15 minutes respectively, and pause again. This allows players to run the game at their own pace and drastically reduces unwanted surprises.

  

 

Welcome to the jungle

Nobody is comfortable admitting this for their creation, but there is no denying that Command can be a hard game to get into, particularly for people who are not already familiar with air & naval operations. To make this easier in CMANO2, we have expanded on the range of available tutorial scenarios and added some specialized ones. You may be familiar with some of them if your CMANO v1.x installation is fully up-to-date, while others are brand new:

Together with a fully revised manual, compiled by author Colin Salt, it is our hope that both old and new players alike will ease themselves into the intricacies of modern warfare without losing interest – or their sanity. 

 

Fresh meat

Even for battle-hardened CMANOholics, CMO offers fresh content to whet every appetite. All original official scenarios have been rebuilt by Rory Noonan (Apache85), creator of the “The Silent Service” campaign pack and numerous high-quality community scenarios. If you are already familiar with Rory’s work, then you know you are in for a treat. In addition, Paul Bridge (author of “Northern Inferno” and “Shifting Sands”) and other authors have added numerous brand new scenarios into the official collection. Together with the existing rich series of official DLCs and community scenarios (all of which can be imported into CMANO2), players are unlikely to run out of challenges to test their mettle anytime soon. Steam workshop support will be included from the first day of release this time around, to enable players to easily share their creations.

 

Pictures of you, pictures of me

Quiz: What has been (by far) the most frequent tech support request we have since the release of Command v1.0? Answer: “How do I unzip the database image pack on my CMANO installation so that I can see all the unit images?”. This has caught us a bit off-guard, as we underestimated the difficulty this would present to players.

Well fret no more, because now the system is completely automated. Images are fetched from remote servers on-demand in the background (similar to map tiles) and are cached for subsequent access. Never again fiddle with unzipping to the correct directory path!

 

Absorbing the chains

Until now, certain additional simulation features were unlocked by the “Chains Of War” DLC (some of them were also unlocked by “Shifting Sands”, “The Silent Service” and “Desert Storm”. These extra features are now merged with the core simulation and are available to every CMANO2 player. We have presented these features in detail in the past, so here is a summary refresher on them:

  • Communications disruption: Units can, through a number of attack vectors, go “offline”, and become isolated from their parent side’s communications grid. They can still pursue their tasking, but they lose all the benefits of information exchange and the common operating picture. More details here: http://www.warfaresims.com/?p=4454
  • Detailed aircraft damage: Instead of always getting shot down by even a slingshot impact, aircraft now receive variable realistic damage (dependent armor level, warhead type or caliber size, impact angle etc.) and may still survive to complete their mission – or simply limp back home. If damaged, repair time is calculated and added to the overall turn-around timespan. More details here: http://www.warfaresims.com/?p=4469
  • Cargo, amphibious and airdrop operations: Ground units and vehicles can now be transported by other platforms as long as they don’t exceed their limits on cargo weight, area or personnel (can’t fit a M1 tank into a C-130!). This allows elaborate, script-free modelling of transport, amphibious and airdrop operations. More details here: http://www.warfaresims.com/?p=4494
  • Advanced weapons: Several advanced classes of weapons become available for use, such as high-energy lasers, Railguns and HVPs, and omni-directional EMP systems. More details here: http://www.warfaresims.com/?p=4479

Absorbing these features into the core simulation has allowed us greater freedom in using these features as building blocks for additional features, like realistic submarine comms (more on this later).

 

Jump in the fire

There are days like this. Sometimes you don’t want to burden yourself with diplomatic complications, monster scenarios and complex rules of engagement. Sometimes you just want to plot down a few units on each side and see who comes out on top. Or perhaps you want to practice in a specific principle (e.g. anti-submarine search), with nothing else to worry about, and you’ve already swept the ASW tutorials clean. What’s a CMANOholic to do?

Fire up the QBG, that’s what.

The Quick Battle Generator (aka “Command Mad Libs”) is a new feature, born out of the predicament described above. Many players have asked for a way to get a simple engagement underway with minimum fuss, and we listened.

So how does it work? You bring up the QBG window, and are presented with a list of pre-made templates to choose from:

You select the template of interest, set the desired parameters within this template, and off you go! Depending on the options you set, you may start at point-blank distance from your enemy, or at considerably large range to allow for some hide-and-seek.

If the above options window looks to you like a crude HTML form, you would be right on both counts: it is HTML and yes, it’s not a web designer’s dream. This is a deliberate design choice: The way the QBG works is that each template comprises of the “front end” (the HTML page with the various options) and the “back end”, a Lua script file that processes the option inputs and generates the actual scenario. And that, in turn, means that players can create their own QBG templates and share them with others, just like with normal scenarios. Steam workshop support is also planned for this feature, to make sharing even easier.

 

To be continued in Part II: Tacview, LOS tool and a host of other UI features

CMANO official updates

September 11, 2015 · Posted in · Comment 

Since its initial release, Command has enjoyed a series of significant free updates provided by the WarfareSims development team. In order of release these are :

v1.01, released on October 9, 2013, was a quick-fix update to resolve issues discovered during late beta or just after the v1.00 release, and incorporate early customer feedback. Its main new features were:

  • Significant performance increase, both for UI (map zoom/pan) and sim-core execution (which in turn means even better scalability). Also the high-fidelity mode (0.1 sec pulse in realtime) is now optional instead of mandatory so Command runs great even on low-spec machines – and screams on capable rigs.
  • UI enhancements: Option to zoom at mouse location, option to ghost/hide sonobuoys, ability to quickly de-select all reference points, ability to abort aircraft launches, ability to order hold-fire on multiple selected units/groups.
  • DB viewer enhancements: Dedicated weapon page, various improvements on existing pages.
  • Scen Editor improvements, e.g. the “Add Unit” window remembers its last used filters (much fewer clicks needed).
  • Simulation mechanics improvements (refined dive rates, helmet-mounted sights, semi-active SAMs in anti-surface mode etc.)
  • Four scenarios previously available separately (community downloads) were integrated on the standard release: Brother against Brother, Canary’s Cage, Choking Halifax and Fighter Weapons School – GAT 5&6.

v1.02, released on December 19, 2013, was the first comprehensive update. Its main features were:

  • Significant improvements on performance, scalability and stability.
  • Improved user interface (UI) with lots of new features, fixes & changes in every aspect (map, unit control, DB viewer etc.) straight from user feedback
  • Improvements to the scenario editor & mission editor
  • More configurable realism options (e.g. unlimited aircraft weapons at bases) for users who want to quickly experiment
  • Improved simulation realism with new features like variable crew proficiency (side-level only), improved sonar modeling, more AI & doctrine options and other additions & fixes
  • Improved multimedia experience with new sound effects & optional background music.

v1.03, released on March 21, 2014, focused on further improving performance and stability:

  • Greatly improved game speed with the new no-pulse (aka “Turbo mode”) time mode.
  • Improved stability with hundreds of crash/bug/logic-flaw fixes.
  • Further realism features like realistic loadout drag & weight effect on fuel consumption (“Christmas tree” loadouts now have a price), enhanced weather effects and refined air-ops AI options.
  • Countless database & installation additions –  from WW2-era IJN aircraft and hypothetical Cold War units & weapons like the Yak-141, Ulyanovsk CVN, F-23 ATF, A-12 Avenger II, Super Tomcat 21 and “son of Phoenix” AIM-152 AAAM all the way to ultra-modern hardware like the MOP super bunker-buster, Club-K container-launched cruise missile, the UK’s Type-26 frigate, Russian Vityaz and Morfey SAMs and Chinese burgeoning air and naval forces.

v1.04, released on July 9, 2014, further emphasized air operations by introducing the “strike auto-planner”, effectively a “light” version of the comprehensive strike planner currently under development which automatically plots sensible ingress & egress profiles for strike missions, thus providing a ready-to-modify template to the player. Other changes and additions were:

  • An extensive array of UI enhancements such as wireframe-only map view, selection-only range symbols, new hotkeys, menu list for quick-jump slots, additional information on the database viewer, configurable ghosted-unit visibility, configurable plotted course visibility, one-click jump to unit mission, single-icon enemy groups and more.
  • AI and mission editor additions such as configurable sprint-and-drift, optional prosecution areas for patrols (which significantly improved the AI’s ability to avoid hopeless long-range shots or fall victim to player draw-out ambushes), new doctrine options and more.
  • Improved simulation mechanics such as multiple cloud conditions, refined offboard-sonar modelling, ABM/ASAT guidance refinements, realism improvements for anti-missile engagements, longer-range AI torpedo shots and more.
  • Further performance & stability improvements.

v1.05, also known as “Wargame Of The Year” edition, was released on September 26, 2014 concurrently on Steam and the MatrixGames site. It boasted improved simulation performance, a massive overhaul of air refuelling AI and mechanics, BVR cranking, Non-Cooperative Target Recongition (NCTR) functionality and improved damage & repair modelling, as well as a host of issue fixes and database additions.


v1.06 was released on December 17, 2014
. It features significant improvements to modeling “surge” air operations, unit-level proficiency settings, and most importantly incorporates the Lua scripting language to its scenario editor, offering unprecedented scripting abilities. It also boasts numerous other tweaks and additions.

 

v1.07 was released on March 9, 2015. It includes three flagship new features and numerous minor additions:

  • Weapon Release Authorization, which allows precise tailoring of weapon allocation and engagement doctrine (how many weapons per target, shoot early or conservatively etc.) according to individual weapons and target types.

  • Mission Editor 2.0
    , a thoroughly revamped mission editor with lots of new options for tailoring of both friendly and enemy AI behavior depending on asset tasking.
  • Scenario Attachments (aka auto-bundling), which allows scenario authors to include various attachment objects (map overlays, Lua scripts etc.) to a scenario and have them executed automatically on scenario startup without manual player action.
    • Other features & improvements included:
  • Tons of UI enhancements such as discrete range rings for anti-ship and land-attack weapons, even more hotkeys, redesigned manual weapon allocation window, contact filter-out (even more map declutter) and much more.
  • Lots and lots of additional Lua scripts.
  • Better performance on scenarios that use zones (ie. most scens out there).
  • Massive overhaul of AAW missile endgame logic; target speed matters more, and the evasion bonus must now be earned instead of automatically granted.
  • Bigger effect of crew proficiency on damage control & underway repairs.
  • Improvements to submarine battery recharge rates.


v1.08
was released on July 14, 2015.
It includes:

  • New simulated weapon systems such as anti-torpedo torpedoes and related torpedo-warning sensors, new warhead types such as enhanced fragmentation (“superfrags”), new weapon types such as “Contact explosive” (for modelling sabotage or suicide bombs), a new ship type (Mobile Offshore Base (aka “Battle Island”)) etc.
  • A number of user interface enhancements: Players can now observe the engagement arcs of a unit mount, permission-dependent color of targeting vectors, coastline/border fade-out on zoom (as in GE), the manual weapon allocation window can present to the player the “soft” restrictions (WRA/WCS/other doctrine settings), various tweaks to mission editor UI. etc.
  • Simulation improvements: Major speed boost on large scenarios, more accurate uncertainty areas for long-range passive detections (SOSUS, ESM etc.), more reliable sub battery recharge, improved sub-captain AI on chasing after unreachable targets, snap-up/down limits for AAW guided weapons, side-firing gunships (e.g. AC-130) now maneuvering properly, more realistic UNREP transfer rates, speed-dependent aircraft IR signatures (e.g. supercruising aircraft can be picked up on IR sensors at longer ranges), tweaks to damage modelling related to light-caliber automatic weapons, realistic “no scan while painting” limitation on older mechanical radars etc.
  • Various scenario editor improvements such as the “Can Auto-track civilians” side-level ability, Lua speed enhancements etc.


v1.09 was released on October 22, 2015.
Its flagship new feature was of course the included “Northern Inferno” standalone DLC, a 15-scenario campaign forming a storyline set on 1975 in the North Atlantic.

Other features of this release included:

  • The ability to construct campaigns just like Northern Inferno through the integrated scenario editor.
  • Nuclear EMP: Nuclear detonations now generate a proper electromagnetic pulse which can really fry sensors in the vicinity – or really far away. The magnitude and radius of the effect vary with detonation altitude and realistically affect different sensor tech generations (wonder why the Russians still like vacuum tubes?).
  • New UI/Map features like optional map placenames and the ability to display either all detected contact emissions or only those that are fire control-related.
  • Massive speed improvements on large, complex scenarios.
  • New Lua scripting functions like “Add Explosion” and “Change Unit Side”.
  • Three new tutorial scenarios, from Mark Gellis’ popular “Uncle Mark’s Tutorials” series.

v1.10 was released on February 26, 2016. It was the first version to make use of the Steam Workshop functionality, enabling Steam users to easily upload new scenarios. Other features included:

F111v1.11 was released on May 9, 2016. One of its marquee features is vastly expanded pier operations (ships can now rearm, refuel and repair at docks) which adds an operational/strategic layer to Command’s scope. Other new features include:

v1.12 was released on May 18, 2017, and was the companion update to the Chains Of War DLC. It introduced a number of groundbreaking features, such as:

v1.13 was released on October 9, 2017, as the companion update to the Shifting Sands DLC. Some of its new features include:

  • Massive increase in simulation performance.
  • Significant improvement on map pan/zoom speed & responsiveness.
  • Tactical chaff laying is now available, allowing players to create chaff corridors to protect their offensive packages as in historical raids in WW2, the Middle East, Vietnam etc. The advantages as well as limitations of chaff corridors (and the technological reasons that gradually led to their obsolescence from the late 1970s) are faithfully modelled.
  • Sprint & drift behavior is now also available for single, non-grouped units.
  • AAW & ABM engagement mechanics have received a major overhaul. Various nuances have been added to the aircraft damage model, generally increasing lethality against large aircraft, conferring significant lethality bonuses to late-generation weapons (here is an example of how modern AAW weapons are scarily smart about optimizing their destructive effects), and properly rewarding hit-to-kill warheads. Numerous AAW/ABM weapons have had their max-target speed values adjusted so that they are realistically less capable at rising-speed targets (e.g. RVs), and the intercept aspect angle is also taken into account (a fully “crossing shot” can reduce the nominal PH by up to 50%).
  • An all-new Lua console is introduced, offering a substantially better editing experience and functionality. The Lua API has also received myriads of improvements, additions and fixes (as always, the online reference is the best resource).

v1.14 was released on February 19, 2018, as the companion update to The Silent Service DLC. Among its new features are:

  • Substantial performance boost on both user interface and simulation-core execution.
  • New UI feature: Recent contact detections
  • New UI feature: Mark contact position
  • New UI/AI feature: “Do Not Cavitate” option
  • New UI feature: Define circle areas
  • New simulation feature: Weapon re-attacks
  • New simulation feature: Torpedo wire breakage
  • New simulation feature: Cargo pickup
  • New simulation feature: Flaming datum
  • Improvements in submarine damage model
  • Ferry mission is now also available for ships & submarines
  • New ScenEdit feature: “Chance of appearance”
  • When exporting facilities using .inst files, boats berthed in these facilities are retained
  • Min/Max target range for ships/subs/facilities/land-units on strike mission (e.g. “intercept and engage only targets within 200nm of your position”)
  • The mission editor can now define how many aircraft in a patrol will investigate & engage contacts, as well as wingmen behavior. This helps the AI to deal more intelligently with probes, feints, decoy attacks etc., and avoid over-allocating assets on a few targets at the expense of others.

v1.15 was released on March 19, 2019, and was the companion update to the Desert Storm DLC. Among its new features are:

  • Personal persistent map profile
  • Dynamic ORBAT window
  • The “Magazines” and “Weapons” window received massive speed optimizations
  • Visual and IR sensors are no longer precise insta-spotters
  • No more “blind AMRAAM shots”
  • New doctrine setting specifically for BVR engagement behavior:
  • Updated terrain data for Spratlys and other areas
  • The submarine snorkelling noise penalty is now gradual
  • Serious sim-performance improvements
  • Numerous new Lua methods
  • Content updates & additions a-plenty

In addition, each released update contains numerous bug fixes and additions to the sim databases based on user feedback.

As the documentation for the new features has not yet been merged on the original user manual, it is available separately in the form of a “Manual Addendum”.

Lucky Seven: Command v1.07 has been released

March 9, 2015 · Posted in Command · Comment 

NORADCommandCenterSo, the cat is officially out of the bag. The full release notes are available here.

We’ve talked extensively about the significant enhancements that the new v1.07 update brings to Command, but here’s a quick refresher on the biggies:

  • Weapon Release Authorization (WRA): All the endless arguments about how the AI pilots should double-tap MiG-29s while using cheap ammo against easy targets (etc. etc. etc.) are officially over. You are now in complete control. So no excuses when the enemy whips you 🙂
  • Mission Editor 2.0: Putting up a complex multi-group, multi-axis strike package is now easier than ever. The enemy AI may also use this against you ;). Plus a lot more customization options for all mission types.
  • Scenario Attachments (aka auto-bundling): Hesitant to spice up your scenario with map overlays etc. because so far it required manual action by the player? No more. Map graphics, custom Lua scripts, import files and even more attachment types coming soon. Get cracking!

Some smaller but also significant bits in this release as well:

  • Tons of UI enhancements such as discrete range rings for anti-ship and land-attack weapons, even more hotkeys, redesigned manual weapon allocation window, contact filter-out (even more map declutter) and much more.
  • Lots and lots of additional Lua scripts.
  • Better performance on scenarios that use zones (ie. most scens out there).
  • Massive overhaul of AAW missile endgame logic; target speed matters more, and the evasion bonus must now be earned instead of automatically granted.
  • Bigger effect of crew proficiency on damage control & underway repairs (remember the Shinano?)
  • Improvements to submarine battery recharge rates.

Plus of course the customary mile-long list of small fixes, DB additions and tweaks.

And we’re not over yet…

Manual Addendum: Scenario Editor

July 5, 2014 · Posted in · Comment 

* The “Add Unit” window now remembers all selection filters used on the last unit addition and re-applies them whenever called up. This makes it easier to rapidly add different but similar units.

Window - Air Ops 001

* You can now edit aircraft names and delete specific aircraft directly through the Air-Ops window.

* New event trigger: Unit Detected. Fires when a unit (flexibly filtered from side-wide down to specific unit) is detected by the specified side.

* New event-engine addition: Event Conditions. Conditions are managed and added to/removed from events just like triggers and actions. An event without conditions fires normally (probability check etc.). If conditions are present, all of them must be satisfied in order for the event to fire.

* Added new realism option: Unlimited Aircraft Weapons. When enabled, aircraft have unlimited loadout packs available even if their bases are not loaded with weapons at all. This is not recommended for realistic prolonged scenarios (it makes airpower too omnipotent) but can be useful for quick experimentation.

* Added first event condition: Side posture. (e.g. Side-A must consider Side-B as [friendly|neutral|unfriendly|hostile]). The condition also has an optional “NOT” operator (e.g. Side-A must not consider Side-B as friendly).

* Significant addition to patrol missions: Prosecution Area. Prosecution Areas (PAs) act much like a forbidden zone in that contacts appearing within them are marked for interception, but they also _restrict_ the extent at which interceptions will happen. So if you want your fighters to e.g. be triggered only by bandits within 200nm of a protected HVU instead of “waking up” to contacts thousands of miles away, PAs are the solution.

PAs Act as a “leash” for assets on a patrol; they effectively determine the extent to which the patrol assets can give chase to receding targets. If the bandit moves out of the PA, the defender is forbidden to follow (though it can still engage with weapons if feasible). This solves the problem of patrol assets over-extending themselves during interception, quite often falling victims to feints/traps.

PAs are supported in the UI by modifications to the Mission Editor UI, and are populated by reference points in the same way as existing patrol areas. They are empty by default, and in this case the AI behavior is the same as before (intercept bandits far away etc.), to facilitate existing scenarios. Units that are assigned to a patrol with a prosecution area will target & engage only contacts that are within this area (or their patrol area). If they are not on patrol or their patrol does not have a prosecution area, the existing AI rules apply. This makes it possible to create SAM ambushes (shoot at far less than max range), divide areas of responsibility for multiple patrol forces etc.

For PAs to work, the patrol option “Investigate targets outside contact area” needs to be enabled. The doctrine option “engage targets of opportunity” _overrides_ the prosecution area limit.

* Grouping land units with ammo dump type units with matching weapons records  for replenishment. This allows for reloads which means that SAM, artillery and land units can be replenished.

* Added sprint-and-drift behavior for units that are part of a surface or sub group (the most common case requiring this behavior). This behavior is enabled by going in the formation editor, selecting the desired unit, and ticking the checkbox “Sprint and Drift” on the formation editor toolbar.

*When rebuilding a scenario with the latest database, the simulator will automatically re-shuffle the aircraft and move those that are ready in less than 60 minutes to the flight deck. Ditto when readying an aircraft in the scenario editor and selecting ‘Ready Immediately’. It may be worth noting that the simulator is not topping up the deck completely, it is keeping some free space on the deck for the recovery cycles since landing aircraft may have to park there in case all elevators are busy.

* Major new addition: Lua scripting. See here for details and examples: http://www.warfaresims.com/?p=3565 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 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.

* 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.

* Major new ScenEdit feature in v1.07: Scenario Attachments (a.k.a. auto-bundling). See detailed description here: http://www.warfaresims.com/?p=3710

 

NEW IN v1.08

* Added “Reset All Side Scores” button on Losses & Expenditures window.

* New side-level option (editable on “Edit Sides” window): Can Auto-track civilians. When enabled, the selected side automatically detects and tracks civilian/commercial units. This simulates access to publicly available traffic sources like AIS, and can be handy for piracy & law-enforcement scenarios.

* Various tweaks to mission editor UI.

 

NEW IN v1.09

* New Lua action: Change the side of a unit

* New Lua action: Explode a warhead.

* New event condition: “Scenario Has Started”. Useful for scripting actions that you want to happen only at the very beginning of a scenario (e.g randomizing start positions).

* New attachment type: Local video file (local = stored on hard drive, not streamed e.g. YouTube). Has option for full-screen or windowed mode, and optional delay before playing. The video file must be in WMV format (the “Movie Maker” application included in Windows can easily convert almost any media format to WMV).

* When adding new aircraft, if the player does not specify a callsign, one is automatically assigned.

* FIXED: Right-click while in “add unit” status opens up the “Add Unit” window in addition to panning the map.

 

NEW IN v1.10

* NEW MAJOR FEATURE: Special Actions. These are very similar to TOAW’s “Theater Options”, in the sense that they allow the player to execute a number of pre-defined special actions that may bring favorable results (or not – often the best way to model such actions is as high-risk gambles that can spectacularly backfire). Contrary to TOAW, Special Actions can range from the strictly tactical (“Host this SOF squad into the building”) through operational (“request nuclear release“) all the way to grand strategic (“The Assad regime requests assistance from the Russian Federation and makes Latakia airbase and Tartus harbor available to their forces”).
Special Actions are created and edited through ScenEdit (Editor -> Event Engine -> Special Actions) and are made available to the player in normal play mode via Game -> Special Actions (disabled actions are hidden). Such an action may be one-off or repeatable (through Lua it can also be made active for only a finite number of calls, ie. “you may request this 3 times”). From a technical standpoint, Special Actions act as containers for Lua scripts so they can be very powerful. Once an action is executed a message (generated by the script) is shown to the player as to what happened as a result of the action, so scen authors are encouraged to be elaborate in their explanations.
* You can now add a new magazine to a unit directly through the ScenEdit UI (instead of using the SBR). To do this, select the unit, bring up the “Magazines” window and click on the “Add Magazine” button.
* Major new EE feature: Lua scripting on Conditions. You can combine this with the existing event triggers to create very elaborate conditional triggers.
* The existing “Side Posture” and “Scenario has started” event conditions now have Lua counterparts: ScenEdit_GetSidePosture(SideANameOrID, SideBNameOrID) and ScenEdit_GetScenHasStarted() respectively.
* You can now order a unit to RTB via Lua: Using the existing ScenEdit_SetUnit method, use the “RTB” key (e.g. RTB=’Yes’)
* You can now host a unit to a suitable parent unit/group (e.g. aircraft to airbase, small boat to larger ship etc.) via Lua. The new method is: ScenEdit_HostUnitToParent(table). Usage example: ScenEdit_HostUnitToParent({HostedUnitNameOrID=’Eagle 1′, SelectedHostNameOrID=’Bitburg AFB’}) . The unit to be hosted is ‘snatched’ either from mid-air or from its current host.
* The editor textboxes for Lua scripts now have a much larger character limit (tens of millions).
* New EE feature: You can now clone events, triggers, conditions and actions
* New Lua method: ScenEdit_SetSpecialAction. Usage example: ScenEdit_SetSpecialAction({ActionNameOrID=”MyAction”, IsActive=”True”, IsRepeatable=”False”}). This is very handy if the scen author wants to activate/deactivate special actions depending on other events happening.
* New Lua method: ScenEdit_GetSideIsHuman(‘SideNameOrID’) . Returns ‘Yes’ if the referenced side is currently under human control, ‘No’ otherwise.
* New Lua method: ScenEdit_SetLoadout. Usage example: ScenEdit_SetLoadout({UnitNameOrID=”Viper #1″, LoadoutID=631, TimeToReady_Minutes=45, IgnoreMagazines=”False”})
* Scenario authors can now edit a unit’s fuel level through Lua. Usage examples:
a=ScenEdit_GetUnit{side=’a’,name=’test’}
print(a.fuel)
{ [3001] = { current = 240000, max = 240000 }, [4001] = { current = 3750, max = 3750 } }
fuel = a.fuel
fuel[3001].current=1000
a.fuel = fuel
* Added “Copy unit ID to clipboard” command to the ScenEdit section of the unit-context menu. This makes it much faster to grab a specific unit’s unique ID and start using it on Lua scripts (vs. getting it from the SBR template file).
* An extra criterion, “minimum classification level”, has been added to the “Unit Detected” trigger. This allows the scenario author to tailor the desired level of target classification reached (everything from simply “detected” all the way to “precise ID”) before the trigger is actually fired. For backwards compatibility, the default level is “Detected – Known Domain”.

NEW IN v1.11

* NEW: Spatial polygon validation: All windows with area editors now have a ‘Validate Area’ button that allows the player to quickly determine if the polygon used for the area (exclusion zone etc.) is valid or not. The simulator will also display the polygon in the tactical map. This includes areas used by the event engine. Furthermore, all areas in a scenario are validated on load, and the player will be presented with warnings if the scenario contains invalid polygons.

* FIXED: When cloning an EE SimEvent, the lists of Triggers/Conditions/Actions pointed to the very same instances (thus when e.g. removing a trigger, the trigger would be removed from both events).

NEW IN v1.11 SR1

* SBR/Clone tweak: The cloned unit gets the same heading as the original unit.

* You can now enable/disable non-navigation zones and exclusion zones, in two ways:
a) Through the UI, as the grids on the relevant windows have an extra “Is Active” checkbox for each zone entry.
b) Through Lua. Usage example:
mySide = VP_GetSide({Name=”US”})
myZone = mySide:getnonavzone(“AAW Zone 1”) [Alternative for excl. zone: myZone = mySide:getexclusionzone(“Forbidden Zone 1”)]
myZone.isactive = “True”/”False”

Inactive no-navigation zones are not rendered on the map at all. Inactive exclusion zones are rendered with a dash line (instead of solid).

NEW IN v1.11 SR4

* ScenEdit Tweak: The “DB Migration” window displays visual confirmation of the target DB.

 

NEW IN v1.11 SR7

Large number of new & updated Lua methods:

Updated Lua function: ScenEdit_SetUnit() – added keys: COURSE, SPEED/THROTTLE, PROFICIENCY, DEPTH, REFUEL, FUEL
Updated Lua function: ScenEdit_AddUnit() – added keys: BASE
Updated Lua function: ScenEdit_AssignUnitToMission() – added keys: ESCORT (for strike missions)
Updated Lua function: ScenEdit_SetDoctrine() – added keys: ESCORT, additional doctrines, withdraw/docking
Updated Lua function: ScenEdit_SetReferencePoint() – added keys: TYPE, RELATIVETO, LOCKED
Updated Lua function: ScenEdit_SetLoadout() – allow READYING a/c to be updated
Updated Lua function: ScenEdit_RunScript() – allow to run from attachmentRepo attached to scenario
Updated Lua function: ScenEdit_UseAttachment() – fixed to allow Lua Scripts

New Lua function: ScenEdit_AddWeaponToUnitMagazine(table) – reload magazines
New Lua function: ScenEdit_AddReloadsToUnit(table) – reload unit mounts
New Lua function: ScenEdit_GetSideOptions(table) / ScenEdit_SetSideOptions(table) – adjust side awareness, proficiency
New Lua function: ScenEdit_SetUnitDamage(table) – damage components
New Lua function: ScenEdit_AddMission(side,..) / ScenEdit_GetMission(side,mission,…) / ScenEdit_SetMission(side,mission,…)
New Lua function: ScenEdit_DeleteMission(side,mission,…)
New Lua function: ScenEdit_AssignUnitAsTarget(contact(s),mission)
New Lua function: ScenEdit_GetReferencePoints(table) – returns table of reference point details
New Lua function: VP_GetContact(table) – get table of contacts
New Lua function: ScenEdit_RefuelUnit(table) – make unit refuel as per AAR doctrine
New Lua function: ScenEdit_SetEvent(‘EventNameOrId’, table) / ScenEdit_GetEvent(‘EventNameOrId’)
New Lua function: ScenEdit_GetSpecialAction(table) / ScenEdit_ExecuteSpecialAction(‘EventNameOrId’)
New Lua function: ScenEdit_GetContacts(side) – contacts from the side’s perspective
New Lua function: ScenEdit_GetContact(table) – a contact’s details
New Lua function: ScenEdit_FillMagsForLoadout(table) – fill magazine with a number of a specific loadout
New Lua function: ScenEdit_AttackContact(attacker, contact, table) – automatic or using specific weapon
New Lua function: ScenEdit_UpdateUnit(table) – updates sensor/mounts on unit
New Lua function: ScenEdit_SetDoctrineWRA(table) / ScenEdit_GetDoctrineWRA(table) – WRA doctrine
New Lua function: ScenEdit_UpdateEvent(eventName, table) – update Lua script on selected event
New Lua function: ScenEdit_GetWeather( table ) – at scenario or unit level
New Lua function: Tool_DumpEvents() – dumps out all events to an XML file in ‘\Scenarios’; useful to examine all events without clicking-through the ScenEdit UI

New exposed Lua object: unit [ mounts, magazines, base (hosted at), proficiency, components, mission (returns mission object rather than name),group (returns mission object rather than name), fuelstate, weaponstate, manualSpeed, manualAltitude, AirborneTime, loadoutdbid, throttle, weather, method :filterOnComponent (filter components on a type eg sensor), :rangetotarget( contact id) ]
New exposed Lua object: side [ awareness, proficiency ]
New Lua object: group [ unitlist ]
New Lua object: mission [ unitlist, targetlist, starttime, endtime, active, SISH, AAR, plus ‘mission specific details’ ]
New exposed Lua object: referencePoint [ locked, relativeTo ]
New exposed Lua object: contact [ type, potentialmatches, side (contact’s), missile_defence, age, fromside (who made the contact), FilterOut, weather, method :DropContact() ]
New exposed Lua object: doctrine [ additional doctrines ]

General Lua:
* ADDED: Lua: Add plotted course when inserting unit
* ADDED: Lua Function: Return to port
* Lua commands and response (incl. errors) are now stored to text files on [CMANO]\Logs\LuaHistory_[date & time] .
* NLua library upgraded to 1.3.2 (kudos to MichaelM!)
* Improved error reporting – attempts to show which command and/or line failed
* Improved in-event error handling
* Added Lua history file in \Logs folder
* Allow true/false for boolean values
* Added executing Lua scripts to log (note that this may cause large files!)
* “Copy unit ID from editor” method can handle multiple units
* Added option on Event that can controls logging to the game log; ON by default, but useful for an event that fires quite often
* Lua: Tool_DumpEvents writes to a file (file located in \scenarios as “[scenario title] + events.xml”)
* Lua: Contact type as string and number
* Lua: Doctrine – withdraw & deploy settings
* Lua: Added event names to RunScript
* Lua: carry over event name to RunScript in Sandbox
* Lua: Fixed unitname keyword for SetLoadout()
* Lua: Added ‘unitname’ to Doctrine inline with standard naming
* Lua: Improved error handling. Errors are displayed and execution stops when running in console mode. When running from special-actions, the function returns NIL but the script continues to run. The error is shown in the Lua variable ‘_errmsg_’ and the function in ‘_errfnc_’

Refer to Command Lua (http://commandlua.github.io) for more detailed explanation of exposed objects and functions.

 

NEW IN v1.12

* Lua: Fix manual/desired speed on SetUnit()
* Lua: Enhance EndScenario trigger/action
* Lua: Enhanced “Unit Detected” event trigger

 

 

NEW IN v1.13

* MAJOR NEW: All-new Lua Console v2

* Added warning pop-up to scen authors: When activating AC damage, make sure to deep-rebuild scenario

* Lua: added OODA to unit wrapper
* Lua: SE_AddZone() for no-nav and exclusion zones
* Lua: Added Event handling through Lua
* Lua: Zone wrapper: add property .markas
* Lua: SetUnit() allow .base to be set to change assigned base (using base=nil will make it pick the closest base)
* Lua: SetUnit() – don’t add contact for own side
* Lua: Unit wrapper .autodetectable property (Added new contact code as per the SetUnit() one)
* Lua: Time triggers firing multiplle times (For specific time trigger, it needs to only fire once. If it then fails a condition or probability check, it wont fire this trigger again.)
* Lua: User-driven function checks
* Lua Event: 6,12,24 hour events
* Lua: Option to TransferCargo() (Only for crossloading to ships at the moment. Added property ‘hostedUnits’ to unit wrapper to show boat/aircraft embarked.
* Add hotkey for copying GUID on map (Ctrl+C). This is useful outside of the editor when trying to write Lua scripts.
* Lua: SE_TransferCargo handles other platforms (Improved. Now uses aircraft, facility,ship,submarine platforms. Allows multiple loads to destination unit accounting for existing space used.)
* Lua: TargetFilter() infer subtype from unitclass
* Lua: add weapon details to unit wrapper
* Lua: Contact wrapper – fix and additional properties: speed, heading, altitude, detectedBySide, BDA, emmissions, detectionBy, fixed the side returns that gave the actual object rather than the matching Lua wrapper.
* Lua: Added property firingAt, firedOn
* Lua: tweaked SetLoadout(), property readytime on unit wrapper
* Lua: TransferCargo, UnloadCargo
* Lua: added unitType filters to VP_Side() object (fixed case where weapon target is null, e.g. when weapon is a sonobouy)
* Lua: added new property to all Lua wrappers – .fields (Lists the name of all properties and methods in the wrapper. Useful for verifying names if in doubt!)
* Lua: added new mode to UpdateUnit() (Can now add/remove weapon records)
* Lua: SetUnitSide – handle changing a group unit
* Lua: add :inArea(zone) to unit and contact wrapper
* Lua: added reference to current event on condition (Should be possible to refer to event attributes when checking conditions. The current event reference is called for actions and
triggers)
-SetLoadout() to default some values if passed
-TimeToReady defaults to the loadout ready time
-IgnoreMagazines defaults to false
-unit.readytime – time for aircraft/ship to be ready
* Lua: added wrapper for events, EventX
* Lua: Fixed SE_DeleteMission causing exception
* Lua: Fixed error in XML parsing for SE_GetEvent()
* Lua: Fixed Clone of Event Condition LuaScript
* Lua: added ‘Base’ to SE_SetUnit() + added option to HostParent() to assign a base rather than ‘host’ it. [Not really needed as the new SetUnit() handles setting a base now]
* Fixed: Lua mission wrapper ‘OnStation’ missing (Added to Patrol and Support)
* Lua: SE_GetFormation() and unit/group wrapper
1. Gets info about a formation
2. unit.formation – can change info on unit station keeping
3. group.lead – change group’s lead unit
* Lua: Tool_Bearing()
* Lua: Add LUA_World_GetPointFromBearing()
* Lua: AddReferncePoint() – allow multiple points and bearing/distance
* Lua: Added Area to UnitDetected trigger
* Lua: Fix interactive console printing if old console not opened
* Lua: suppress the doubling up in the history file
* Lua: use of dynamic event for air/ship ops state changing (e.g. aircraft landing)
* Lua: ActiveUnit wrapper now also exposes a unit’s sensors (.sensors property)
* Lua: Added “isOperating” property to ActiveUnit wrapper