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