Release Notes

Overview

Details new changes made since the previous release of the RIDE platform to external collaborators and developers.

RIDE releases typically occur quarterly. Access to nightly releases available upon request.

Page Contents

Release Notes – 0.6 (April 2022)

We are thrilled to announce our latest release of RIDE, version 0.6!  Please read the below Release Notes and related changes for this version.

IMPORTANT

In order to access Terrain datasets, you must have a terrain key.  Please contact us directly in order to acquire a key.

A* Pathing

  • Added Round() to RideMath.cs.
  • Improvement to A* Movement System at high timescales in regards to agents overshooting destinations / over turning.
  • Cached calls to system access system in UnityAStarMovementSystem.

Battle Drills

  • BattleDrill_CoverAndConcealment; latest Battle Drill scene with new capabilities, including weapons, ambush types, agent behaviors, weather events, and terrain material identification.

Camera

  • UnityRealTimeStrategyCameraController; implements a RTS game type camera with movement controls.

Entities – LOD

  • DataMono military and civilian prefab entities now use LODs to drastically reduce Tris/Verts depending upon camera distance from character.

Level Select (Standalone or full-source distributions only)

  • Split Demo scenes listing into Featured, Multiplayer and Tutorials listings.
  • Esc key now backs out of scene listings and Options menu, returning to main menu instead of closing app.
  • User now receives Exit confirmation prompt.
  • Relabeled scenes for clarity and alphabetized accordingly.
  • Menus can now be navigated via keyboard controls: arrow keys to select, Enter key to confirm, Backspace key to back out.
  • Added various scenes not included previously.

Models – LOD

  • AK47 and M4 weapon model prefabs now use LODs to drastically reduce Tris/Verts depending upon camera distance from model.

Prefabs

  • Added 40mm grenade magazine type.
  • Added M203 and M67 items.

RIDE Systems

  • Removed ApiSystemMonoUpdater, functionality added to ApiSystemMono.
  • Removed ApiMono, functionality added to SystemAccessSystem.
  • Added m_StoppingSquaredVelocity to MovementSystem.cs to allow for more lenient considerations of reaching a destination.
  • Added Listener functions for AgentRevivedEvent in MovementSystem and UnityAStarMovementSystem.
  • Added agentRevived world state.
  • Added AgentRevivedEvent world event.
  • Added ReviveAgent() to IAgentSystem and AgentSystemMono. It dispatches an AgentRevivedEvent.
  • Added IWeatherSystem and UnityWeatherSystem.
  • Added ICoverSystem and UnityCoverSystem.
  • Added GetAgentRange() and SetAgentRange() to IAgentSystem and AgentSystemMono.
  • Added SetMaxSpeed function to IMovementSystem.
  • Added GetAnimationController function to AnimationSystem.
  • Added IsInputControllable function to MovementSystem.
  • Added GetEntityHitBoxMaxHealth function to AttackSystem.

Scenario Maps

  • RescueAtKorabela scene updated to demonstrate a mission objective built using Scenario Map authoring tools.
  • Modified ExampleMSELI to demonstrate how to use Scenario Map conditions and events.
  • Added ScenarioMapIdentifier.cs component that allows arbitrary game objects to be used in Scenario Map configurations.
  • Added Scenario Map Observation Condition, allowing scenario events to be triggered by arbitrary world events by pattern-matching against the event representations in the Interpretation System’s world event observer. Includes mechanism for specifying specific RIDE entities in pattern before their RideID is known.
  • Removed unused/outdated components UnityGroup, UnityInterpreter, UnityNarrator – use ScenarioMapGroup, ScenarioMapInterpreter, ScenarioMapNarrator instead. Updated RegionSystem to remove reference to UnityGroup.
  • Removed unused and outdated Unity-editor specific AI behaviour components. Use ScenarioMapAgentBehaviour and ScenarioMapGroupBehaviour instead. Deprecated WanderMono.cs
  • Removed unused and outdated Unity-editor versions of Scenario Conditions and Scenario Events. Use ScenarioMapCondition and ScenarioMapEvent instead.

Terrain

  • Added feature marking system for tracking terrain elements of interest (doors, windows); note, annotation process currently manual.

Unity

  • Upgraded project to support Unity 2021.2.17f1.
  • Updated various packages, including Barracuda, ML Agents and Timeline.
  • ProjectSettings – Editor – Asset Pipeline – Turned on ‘Parallel Import’.
  • runUnity.bat – fix for macOS when using Hub 3.x.
  • runUnity.bat – removed the optional modules from the initial installation; now more convenient to install the additional modules via the GUI, if/when needed.
  • Note, recommend clearing your local checkout \Library directories under \RideUnity and \NewProjectTemplate Unity projects prior to updating.

Examples

Added several Example scenes that highlight new RIDE capabilities, such as:

  • BarracudaAPI; demonstrates how to examine and run unit tests on various Machine Learning models residing within/outside RIDE backed with Unity Barracuda framework.
  • ExampleCustomAgentAnimations; add custom animations to agent avatars in RIDE, including a simple debug selection menu.
  • DefenseOfCatalinaIsland; simple authored scenario to demonstrate features of the Scenario Map toolset.
  • SimpleNetworkExample; demonstrates how to set up a network environment with controllable characters using the RIDE API and Photon asset package.
  • TimelineConditionCheck; features Timeline’s method of creating non-linear events by checking for conditions before advancing through the track.
  • TimelineCompilation; features Timeline’s general functionalities, such as spawning, commanding entities, and controlling cameras.

Fixed Issues

This release contains numerous bug fixes, including code refactoring and optimizations. Selected items of interest listed below.

Examples

  • BattleDrill_ReactToAmbush_DataMono; re-enabled first-person view of a selected agent via O key press.
  • ExampleWaypointVisualizer and ExampleWaypointVisualizer_Korabela scenes, errors upon instancing of SoldierBlueWaypoint and adding of waypoints.
  • ExamplePhoton and ExamplePhotonWithSpeechRecognition, DebugConsole (Missing Prefab).
  • ExampleSessionRecording, use of Exit command fails to populate exampleRecording.session file.
  • Singleplayer_YumaDriving_InputVehicles and Singleplayer_YumaDriving_InputVehicles_CTR, repeating audio listeners message and camera remains static after terrain streaming complete.
  • Standalone builds, ExampleParticleSystem: NullReferenceException: Object reference not set to an instance of an object.
  • Standalone builds, ExampleSessionRecording, sequence fails to initialize.
  • Standalone builds, ExamplePhotonWithSpeechRecognition, after loading and exiting from scene, standalone app then becomes unresponsive upon app Exit selection at main menu.
  • ExampleBehaviourComparison, ML Agent movement behavior improved.

RIDE Systems

  • Fix for AgentSystemMono.ReviveAgent() passing incorrect parameter to event dispatch.
  • Fixed SetAgentHealthFull function to apply to all IAgents (not just AgentMonos).

Known Issues

New defects or regressions of interest to be addressed in a future release.

Examples

  • BD_Ambush, IndexOutofRangeException error at runtime.
  • PlayerInputControllerDataMono, inconsistencies with PlayerInputController scene.

Release Notes – 0.5 (December 2021)

We are thrilled to announce our latest release of RIDE, version 0.5!  Please read the below Release Notes and related changes for this version.

IMPORTANT

In order to access Terrain datasets, you must have a terrain key.  Please contact us directly in order to acquire a key.

A* Pathing

  • Updated AstarPathfindingProject, incorporating version 4.2.17 of the A* Pathfinding Project package.
  • A* movement system snaps agents to Terrain collider instead of navmesh graph in the Y axis. (Updated example scenes accordingly.)
  • Fix for CPU spikes when updating navmesh penalties.

AssetUsageDetector

Battle Drills

  •  BattleDrill_CoverAndConcealment; work-in-progress scene toward simulating the next Army doctrine Battle Drill.

Camera

  • Added RTS Camera Controller.

Entities 

  • Created Entity Group related systems for unit echelons, including Group Management, Group Billboard, and Group Organization.
  • Entity spawning system (can be used with multi-domain operations for certain entities to spawn other entities).
  • Entity representation system (a single entity (unique RideID) can be used to represent multiple entities / echelons).
  • Dismounted AgentMono units default health now 100; increased damage of default M4 and AK47 weapons to 50.

Level Select (Standalone or full-source distributions only)

  • Rearranged order of Advanced Integrations section in LevelSelect.unity and added new RideAtlas scene to top of the list.
  • Added various scenes not included previously and alphabetized scenes within sections.

Scenario Events

  • Modified ExampleMSELI to include scenario events that are created entirely in the editor. 
  • Added MSELI project related utility code to support future AI/Behavior development in RIDE directly.

Terrain System

  • Processed new terrain maps to be available for streaming.
  • Added TerrainLoader terrain list drop-down, with ability to override if desired. (Updated example scenes accordingly.)
  • Trees are now placed in the correct spot on terrain when spawned, rather than waiting until after all have been spawned.
  • DataCache is now a proper RIDE System. Added DataCache to RideSystems.prefab.

Unity

  • Upgraded to support Unity 2021.2.1f1.
  • Note, recommend clearing your local checkout \Library directories under \RideUnity and \NewProjectTemplate Unity projects prior to updating.

Vehicles

  • AI/Player tank combat system with improved firing logic, destruction event handling and shell impact explosion, looping smoke plum and sound effects.

VH Assets

  • Refactored various systems and pruned unused scripts.
  • vhAssetsDebugOnScreenLogSystem, vhAssetsFpsCounterSystem, and vhAssetsDebugConsoleSystem no longer spawn their respective prefab at startup; use gameobject reference instead.

Wispy Skybox

Examples

Added several Example scenes that highlight new RIDE capabilities, such as:

  • ExampleEntityGroup; instance and manage fireteam and squad unit echelons. 
  • ExampleUnityGroupBehaviours; demonstrates how to create groups and assign behaviours to groups entirely within the Unity editor.
  • ExampleUnityInterpretationSystem; shows how the Interpretation System can now be utilized entirely via the Unity editor.
  • RescueAtKorabela; work-in-progress toward implementing ScenarioMap tool for scenario authoring in the Unity editor.
  • TerrainMapCap; scene for capturing 3D terrain into orthographics map to allow map annotations. Initial implementation to load annotation results for agent placements on 3D terrain.

Fixed Issues

This release contains numerous bug fixes, including code refactoring and optimizations. Selected items of interest listed below.

AI Bots

  • TakeCoverMLAgent.cs updated to use MoveSystem to move agents to position; addresses missing animation issue in TrainingMLAgents and ExampleBehaviourComparision.

Entities

  • Deceased agents can no longer be selected and moved at run-time.

Examples

  • ExampleOrdnanceMenu, error upon detonation of instanced ordnance.

Standalone

  • Addressed several out-of-order initialization bugs possible in standalone builds.

Known Issues

New defects or regressions of interest to be addressed in a future release.

Examples

  • BD_Ambush, IndexOutofRangeException error at runtime.
  • PlayerInputControllerDataMono, inconsistencies with PlayerInputController scene.
  • ExamplePhotonWithSpeechRecognition, “CANCELLED: Reason=Error” status messages when Start Recognition clicked.
  • Standalone builds, ExamplePhotonWithSpeechRecognition, after loading and exiting from scene, standalone app then becomes unresponsive upon app Exit selection at main menu.

Release Notes – 0.4 (August 2021)

We are thrilled to announce our latest release of RIDE, version 0.4!  Please read the below Release Notes and related changes for this version.

IMPORTANT

In order to access Terrain datasets, you must have a terrain key.  Please contact us directly in order to acquire a key.

A* Pathing

  • New “A* Pathfinding” option as new movement system type for units, with parity to ATLAS.
  • Option to toggle between A*, Unity and other Movement System types via scriptable.

Entities 

  • New “DataMono” characters now being built by using bootstrappable data components for entities and no longer rely on AgentMono script (resolves many functions being too tightly coupled within a single class).
  • New data components included for the following functions: character info, character movement, entity inventory / item handling, entity animations, entity hit boxes and health, entity selection interface, entity camera views, user input and input handling.

Ground Classification Weather

  • Weather event simulation with dynamic unit re-routing based upon ground conditions. 

Licensing

  • All 3rd party art / font / software / sound assets utilized by RIDE itemized with their respective licenses and split into base and per seat costs, the latter of which is currently optional, now documented in a concise spreadsheet included with distribution.

Lighting

  • Added generic directional lighting rig to improve appearance of terrain maps.

RIDE Font and LevelSelect Updates

  • Integrate Audiowide and Orbitron fonts into RIDE.
  • Update RIDE logo and main menu buttons with Audiowide font.
  • Standalone build LevelSelect scene UI formatting and navigation improvements.

Session Recorder and Playback

  • Local user and networked versions of Session Recorder and Playback tools.

Systems Refactor

  • All RIDE systems used in a particular scene will appear in the Unity editor Hierarchy panel prior to run-time.
  • ‘RideSystems’ prefab object w/customizable options to determine which sub-set of systems will be utilized. (Terrain, networking, etc.)
  • See ‘RIDE Systems Upgrade Guide‘ below for more details. 

Terrain System

  • Process multiple new terrain maps to be available for streaming.
  • Ability to show shading options for Slope and Elevation (ATLAS feature within ExampleGridContourToggle).

Unity

  • Upgraded to support Unity 2021.1.17f1.
  • Note, recommend clearing your local checkout \Library directories under \RideUnity and \NewProjectTemplate Unity projects prior to updating.

Examples

Added several Example scenes that highlight new RIDE capabilities, such as:

  • BattleDrill_ReactToAmbush_DataMono
  • ExampleAgentCommandsFormationMovement 
  • ExampleAgentCommandsFormationMovement_Korabela
  • ExampleAstarPathing
  • ExampleGroundClassificationWeather
  • ExampleGroupsDataMono
  • ExampleMilitaryUnitsDataMono
  • ExampleMovementDataMono
  • ExampleRestNew
  • ExampleSessionPlayback
  • ExampleSessionRecording
  • ExampleSessionPlaybackNetworked
  • ExampleSessionRecordingNetworked
  • PlayerInputControllerDataMono

Fixed Issues

AI Bots

  • User instanced Blue/Red bots fail to patrol in Razish/Korabela Team Match scenes.
  • Repeating error when instanced opposing AI bot fires upon user in Razish/Korabela Team Match scenes.
  • Several lines of debug text and warnings whenever bot instanced by user in Razish/Korabela Team Match scenes.

Team Match

  • “Eliminated by…” references Agent ID value instead of NickName of network player.

Known Issues

Examples

  • ExampleDestructionYuma, M777 and Abrams projectiles fail to deform/destroy objects or impact crater terrain.
  • ExampleDebugMenu, Blue/Red unit commands induce multiple errors; Logging tests output as errors.
  • ExampleFace, error if cycling cameras; alternately, error if no camera found.
  • ExampleLogging, debug application and commandLine menu options induce multiple errors.
  • ExampleOrdnanceMenu, error upon detonation of instanced ordnance.
  • ExampleWaypointPathing, unable to instance waypoints with single unit selected; unit instanced instead.
  • TeamMatchAI, pair of errors if user selects Spectator mode.

RIDE Systems Upgrade Guide

RideSystems Prefab

When creating a scene that uses RIDE, add the RideSystems prefab to your scene. This prefab contains most prefabs commonly used in a RIDE simulation.

  • Once added, you can modify this prefab for your specific scene.
    • Remove RIDE systems that are not needed
    • Add new RIDE systems
    • Customize existing systems
  • Parameters for customizing individual systems have been exposed within the Inspector.
  • This deprecates the old method of deriving from RideBase, or calling CreateApiSystemMono() (see below).

RideSystem deprecated; use RideSystemMonoBehaviour

RIDE systems now derive from RideSystemMonoBehaviour.  This allows RIDE systems to be added to the scene and have customized parameters within the Inspector.

It is still expected for RIDE systems to use SystemInit(), SystemUpdate(), etc. functions.  Do not use the Unity Start(), Update(), etc. functions.

A new RideSystem function SystemAwake() is available for RIDE systems to use.  This function is called before all RIDE systems’ Start() function.  This behaves similar to Unity’s Awake() function. (ref: https://docs.unity3d.com/Manual/ExecutionOrder.html)

RideBase deprecated; use RideBaseMinimal or MonoBehaviour

RideBase had many built-in systems and options, however their use didn’t offer many options for configuring.  You were somewhat locked in to what it provided.  A new base class RideBaseMinimal is provided to help migrate projects away from RideBase.  And in the future most of the functionality in RideBaseMinimal will migrate to separate systems.

For scenes, this means you don’t need to derive RideBaseMinimal if you do not need to, and can simply use MonoBehaviour.

CreateAPISystem() deprecated

This function, in ApiSystemMono.cs, is marked as deprecated.  This was the old method of initializing a large amount of RIDE systems.  This method created a few problems, notably the inability to specify which RIDE systems to include in each scene, and making scene specific customizations on RIDE systems.  This method was replaced with the RideSystems prefab mentioned above.

DataMono & Bootstrapping components

  • Individual units can now be placed in the scene during author time.  When these units are initialized at scene start, they are created as RIDE units, and all the parameters and customizations are applied.  This makes it easier to place and configure units in the world.
  • In order to instantiate these units dynamically via code, ensure the respective units are added to the RideSystems prefab > ResourceLoader prefab, Unit Prefabs section.

A* Pathfinding

This is a new option for pathfinding, utilizing the A* Pathfinding Project package.  This option is available as an alternative to using Unity’s native Pathfinding solution.  Future releases may have this option be the default.

In order to enable the A* Pathfinding option, go into the RideSystems prefab.  Select the UnityNavMeshMovementSystem.  In the Inspector, at the top, to the left of its name, de-select the checkbox.  This disables the system.  Now, select the UnityAStarMovementSystem and select the checkbox.  This enables the system.

Known Issues

  • Not quite feature par with Unity’s solution
  • Still working on loading/caching features
  • Units have trouble navigating on certain terrains

Future Benefits

Since the navigation is loaded at runtime, there’s no need to generate a navmesh offline.  This eliminates the cumbersome step of generating a navmesh for each scene.  

We can now load multiple terrains within a single scene.  Instead of a TeamMatch scene for each terrain dataset, we can now have a single scene, with a menu option to choose which terrain to use.

Release Notes – 0.3 (April 2021)

We are happy to release RIDE version 0.3!  Please read the below Release Notes and related changes for this version.

IMPORTANT

In order to access Terrain datasets, you must have a terrain key.  Please contact us directly in order to get a key and we will issue you one.

API Rename

Terrain System

  • Terrain datasets use a engine and platform optimized format for efficient loading, performance, and memory usage.
  • Terrain datasets stream from a cloud provider, so that terrain sets can be loaded from any client without needing to bundle the large datasets with the client executable.
  • Terrain datasets are accessible through a security key.  This key can be developer specific, allowing access to certain datasets, and for a given timeframe.

Cloud System

  • New framework for an intermediate, externally hosted service to act as a router to 3rd party services.  This simplifies the client by both simplifying the API and reducing dependencies on 3rd party SDKs.
  • New intermediate blob service that routes requests to Azure, Google and AWS blob file storage.
  • New intermediate signed URL service that creates temporary, signed URLs for accessing cloud services.  Route requests to Azure and AWS signed URL services.

Camera System

  • New Camera System added
  • Camera System Example added

Audio System

  • New Audio System added
  • Audio System Example added

Time Simulation System

  • New system for controlling simulation time added
  • TimeSimulation Example added

Logging System

  • New Pedagogical Logger Example added

Debug System

  • New Debug systems added:
    • DebugConsole
    • FPS Counter
    • DebugMenu
    • DebugOnScreenLog

Battle Drills

  • New Example showing Army doctrine Battle Drills
  • Demonstrates different capabilities such as:
    • Ambush / React to Ambush
    • Throwing Smoke Grenades

Examples

  • Numerous miscellaneous Examples added to highlight RIDE capabilities, such as:
    • AirSim Integration Example
    • Region System Example
    • Interpretation System Example
    • Demo04_SquadCombat Example
    • Particle System Example
    • BoundingOverwatch Example
    • Input_VehiclesSystem Example

Unity

  • Upgraded to support Unity 2020.2.3f1

Website

TSS to RIDE Name Upgrade Guide

Phase 1

The first phase of renaming TSS to Ride. This list details the changes made:

  • using TSS.X becomes using Ride.X
  • TSS.View →  Ride.UI
  • TSS.Behaviours → Ride.AI
  • TSS.Entity → Ride.Entities
  • ExampleBase → RideBase
  • ExampleBase.InitTSS → RideBase.InitRide
  • api.serviceSystem → api.systemAccessSystem
  • Any class or struct starting with TSS becomes Ride
    • TSSid → RideID
    • TSSVector3 → RideVector3
    • etc
  • Any class, file, or struct with the word Service becomes System
  • All system and behaviour update functions now take delta time (dt) as a parameter

Phase 2

This phase renames the SVN repository, Unity project, and externals: