RIDE - 0.8

Overview

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

Page Contents

Release Notes – 0.8 (October 2022)

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.

If you wish to use the ExampleNLP scene and related web services, you must update your local RIDE config file (ride.json). Please back-up any local changes to the file, including your terrain key. Next, restore your Config to default using the corresponding option in the Config debug menu at run-time, then reapply any customization and terrain key. Refer to the Config File page within Support for more information. 

Release Highlights

  • Added multiple AI, player-controlled and networked dismounted and mounted prefabs with related systems and scriptables for munitions, ballistics, hit-boxes, destruction, etc.
  •  Improved network handling code for various interconnected systems and entities in a given state, including AI and player-controlled agents.
  • Reduced size of minimal standalone (binary) build dataset by 55%.
  • New and enhanced Example scenes for distinct RIDE capabilities: ExampleBarracudaAPI, ExampleCompass, ExampleOAuth, ExampleMSELI, ExampleEntityGroup, and RescueAtKorabela.
  • Added Soldier and Insurgent character LOD and LOS model variants, along with OCP Soldier model with rank insignias.

Agent Behaviour

  • Added MoveToWaypoint behavior.
  • Added RideAgentBehaviourDataMoveToPosition behavior data to list of RideAgentBehaviourProperties.

Asset Bundles

  • Fix for Tree loading under Linux.
  • GetAssetBundlePlatformName() now supports Linux.
  • Added check for windows server in TerrainSystemMono.GetAssetBundlePlatformName().

A* Pathing

  • Fix for AgentMono based A* movers not being added to the MovementSystem’s movers collection.
  • UnityAStarMovementSystem:  SystemInit() – Set logPathResults to PathLog.OnlyErrors to reduce debug spam in the console.

AttackSystemMono

  • AttackSystem now distributes damage from explosives over the network.
  • Explosives’ FX now occurs over the network.
  • Created NetworkEntity for all Network-based classes to derive from (NetworkAgent now derives from NetworkEntity).
  • Created NetworkItem and NetworkExplosive for handling explosives over the network.
  • Added ItmProximityIEDNetworkPrefab prefab as an example networked explosive device.
  • Added ArmorRating to entity hit boxes.
  • Added ArmorPiercingRating to specific types of ammunition.
  • AttackSystem now incorporates armor piercing values of ammunition and armor values of entity hit boxes when determining combat damage.
  • AttackSystem now correctly uses damage radius instead of suppression radius for calculating damage.

Cameras

  •  SimpleTerrainCamera.cs
    • Updated LerpCamera function to take in “targetRot” as RideVector3 type for ease of passing in transform rotation values as seen in the Editor. Quaternion.Euler used to convert this to the desired Quaternion.
    • Updated ResetCamera function to adapt to the change above. “startRotation” parameter updated to “startRotation.eulerAngles”.

Entities

  • Improved handling of removal of weapons, magazines and other items from entities that get destroyed.
  • Improved handling of AttackSystem’s engagements when entities that are in the middle of combat get destroyed.
  • Improved handling of removal of agents from AgentSystem when entities that are agents get destroyed.
  • Improved handling of removal of network entities when they get destroyed.
  • Added entityReset event to reset RIDE entities.
  • EntityReset event handled by MovementSystem, EquipmentSystem, AgentSystem, AttackSystem, GameObjectSystem.

Exit Menu

  • Made some functions of ExitPromptMenu virtual.
  • Made private properties and functions of ExitPromptMenu protected.
  • Modified RideBaseMinimal to have an optional m_exitPromptMenuPrefab property to allow for custom exit prompt menus.

Fonts

  • Added new DroidSans-Bold SDF Outline font asset.

Group Behaviours

  • Added group behaviours: GroupMoveToWaypointInFormationBehaviour, GroupMoveToPositionInFormationBehaviour and GroupPatrolInFormationBehaviour.
  • Fixed issue with members not being added to the group when creating group using CreateGroup function in GroupSystem.cs.
  • Added AgentGroupBehaviourType enum to AgentGroupBehaviour.cs.

Networking

  • Fix for Photon/PhotonNetwork.cs wrapper class not sending InterestGroup and TargetActors of outgoing events.
  • ExampleTeamMatch – Commented out unwanted code throwing error.
  • PhotonNetwork.cs, PhotonView.cs: : Commented out and reduced unwanted log statements on CLI and Unity console.
  • IWeaponSystem, WeaponSystemMono:
    • Weapons FX now replicated among networked games (gun fire, sounds, projectiles, etc.)
    • Added new WeaponFX function in WeaponSystem to include overriding weapon projectile position and direction (for avoid desync issues over network).
    • NetworkAgent fire FX replication function includes position and direction from server to avoid desync firing issues.
    • Made private variables protected so classes deriving from ExampleNetworkBase.cs can override OnGUINetwork().

Non-Verbal Behavior Generator 

  • Updated NVBG cloud service warm-up procedure.
  • RESTful NVBG now connects to NVBG Azure function (.Note, implemented within internal VHDemo scene.)

Player Input Controls

  • Changed the key mapping for switching camera perspective for controllable character to avoid conflict with text typing during the demos (‘C’ -> ‘Home’).

Prefabs

  • Added NetworkCivilianBot prefab for civilian networked bot.

  • Added HMV_AI_Network.prefab and HMV_User_Network.prefab for machinima and Timeline usage. 

  • Replaced all instances of Bravemind PrpWoodenCrate03Prefab.prefab with newly added free crate asset in

  • BattleDrill_CoverAndConcealment.unity scene.

  • Replaced PrpGurney01_Rubber_Mat.mat in ItmM203Prefab.prefab with shd_black.mat from

  • Assets/Ride/Examples/AirSim/AirSimAssets/Models/UnityDrone.fbx.

  • Added ChrUsaArmyInfantryAcu01_ rank insignia variants E3 – E9.

  • Added LOD prefab variants of Soldier OCP and legacy Insurgent Models.

  • Added OCP ELITE Character with Gear Components Skinned to the mesh, ChrDavisArmyOCP_Gear.fbx. These can be individually toggled off depending on need.

  • Created Soldier and Insurgent DataMono variants with LOS disabled for performance purposes; recommended use case for when multiple onscreen.

  • Added proximity-based IED object model and prefab, ItmProximityIEDNetworkPrefabfab.

  • Added generic, non-networked, AI-controlled M1A2Abrams (M1A2AbramsDataMono) prefab to replace deprecated AbramsDataMono prefab.

  • Updated speed of network prefabs that were slower than other humanoid prefabs: NetworkSoldierBlueBots, NetworkSoldierRedBot, NetworkSoldierBlueWithoutController, NetworkSoldierBlue,  and NetworkSoldierRed.

  • Updated armor vehicle prefabs to include armor rating on their hit box: BMP3_Desert_User_Network, Bradley_User_Network, M1A2Abrams_User_Network,and T80U_User_Network.

  • Added T80U tank gun and ammunition magazine prefabs: T80U_3VBM3_MagazinePrefab and ItmD81TM_2A46_GunPrefab.

  • Added mounted weapon controllable to M2 Browning weapon prefab.

  • Added prefabs for BMP3 Desert User Network APC, Bradley User Network APC, M242 Bushmaster gun and M791 A-P Sabot magazine.

  • Added new M1A2 Abrams tank model and M1A2AbramsUser_Network prefab for networked version of Abrams tank.

  • Added Mounted Weapon Controllable script to M256A1_Gun prefab (previously AbramsGun) weapon and modified ItmAbramsGunPrefab prefab to include mounted weapon controllable.

  • New BMP-3 2A70 gun and gun magazine prefabs.

  • Added user controlled versions of vehicle prefabs:

    • MRAP User Network

    • T80U User Network

    • Bradley User network

    • HMV Ambulance User network

  • Added AI (non-user controlled) versions of vehicle prefabs:

    • M1A2 Abrams, T-80U and MRAP

    • Bradley AI Network

    • BMP3 AI Network

    • HMV Ambulance AI Network

  • RideSystems > ResourceLoader > Items (Scriptables)
    • Added new D82TM (2A46) gun for the T80U tank.
    • Added 3VBM3 APFSDS round magazine used by the T80U tank.
    • Added M242 Bushmaster gun.
    • Added M791 Armor Piercing Sabot rounds (for M242 Bushmaster gun).
    • Added new magazine size, new gun and new round for BMP-3 vehicle.
    • Updated RIDE tank gun scriptable assets.

Ride Core

  • Updated logger to show timestamp in [MM/DD HH:MM:SS] format.
  • RideIO.cs:
    • Added a new asynchronous POST function (for http request with no header).
    • Added function for GET http request asynchronously without using headers.

RIDE Dependencies

  • Added RestClient and Clean Settings UI to support OAuth Example scene and use across the project.
  • Apache.NMS – ignore deprecated warning
  • Upgraded EtcAbductionCS from 0.6 to version 0.7.
  • Photon – disable Linux x86 library.  This platform is no longer supported in unity.
  • VHAssets – IsWindows() will return true for both WindowsPlayer and WindowsServer.  Same for IsLinux(). Use IsDedicatedServer() after platform check to determine if it’s a dedicated server sub platform.
  • VHAssets – Machinima Maker import is more flexible to file extensions .xml.txt and .bml.txt
  • VHAssets – Ongoing effort to prove out automatic cloud build server deployment pipeline for networking scenarios; target deployment on Linux.
  • Added Photon Fusion SDK 1.1.2 F Build 579 – 1.1.2 Stable – Sep 19, 2022. (Transition to Fusion will occur next year.)

Ride IO Controllables

  • GameObjectSystem now sends entityDataCreationComplete message when an entity of a single RIDE id has finished bootstrapping all of its DataMono components.
  • Added IInputControllerNew (to eventually replace legacy IInputController) interface and associated classes for InputSystem refactor.
  • Added/refactored IInputControllable interface and associated classes.
  • Added IInputControllable classes for camera to replace CameraController class and for vehicle movement and mounted weapon control.
  • InputSystem refactoring WIP for updated controller and controllable systems and in use for M1A2 Abrams tank (currently for singleplayer use).
  • Updated PlayerInputControls.inputactions for vehicle user input.
  • Minor modifications and new functions of/for various systems. (CameraSystem, InputSystem, TransformSystem etc.)

RIDE Systems

AttackSystemMono, ExamplePhoton, ExampleTeammatch, InputSystemMono INetworkSystem, MovementSystem, etc. 

  • Damage with vehicles are now distributed properly over the network.
  • AgentKilledByAgentEvent now has “removeOnDestruction” flag for when we need objects to stay persistent after destruction.
  • Inputsystem now handles entityDisabled event.
  • NetworkSystem now keeps tracks of all NetworkAgents.
  • PhotonView.cs now has functionality to auto-attach custom user input controllers to networked vehicles.
  • Fixed bug where IED does not cause damage to AgentMonos.
  • Increased IED damage from 100 to 200.
  • NetworkAgents now spawn with 100 max hit points (instead of 1000).
  • Disabled Unity NavMeshAgent component for NetworkSoldierBlueBot and NetworkSoldierRedBot prefabs.
  • NetworkAgent now handles animator parameters when PhotonAnimatorView is disabled.
  • AttackSystem now can toggle on and off FX.
  • Fix Unity navmesh issue in CalculatePath function.
  • Added destroyed property to entityhitboxes.
  • AttackSystem ignores entityhitboxes that are already destroyed.

EquipmentSystemMono

  • ItemMono objects now check if they exist in the IEquipmentSystem and will add itself to it if it does not upon spawning.
     Added classes and scriptables for explosives of two types (trigger, proximity).
  • Explosives can have a fuse timer before exploding.

Interpretation System

  • Fixed interpretation system so that it updates current best interpretation (and entailments) only once per system update, rather than in spawned interpretation threads.

UnityCameraSystem

  • Fixed issue when disabling CameraMono, it would not disable the actual Unity camera.
  • Modified CameraInputControllable to enable Camera upon being attached to an input controller.

WeaponSystemMono

  • Explosives now inflict damage of a certain radius – WIP: not yet working over networked environments.

Scenario Maps

  • Added content selection methods to narrators, updated scenario map to allow configuration of interpreter depth, window, and beam, and content selection method for narrators.
  • Added Display Narrative scenario event to Scenario Map Event.

Standalone (Empty project)

  • Renamed and reorganized various folders to reduce indices of automatic includes with standalone builds due to inadvertent use of Unity “special folder” naming conventions.
  • Reorganized several Item and Character prefabs into separate folders.
  • UI Logos – Enabled ‘Use Crunch Compression’ at quality 100.  Reduces the size of files within the build.

Terrain

  • Added Cape Canaveral Tile and LMAB L22 dataset.
  • Added Quantico Tile and LMAB L22 dataset.
  • Added Sadajan Tile and LMAB L18, L20 and L22 datasets.

Unity

  • Upgraded RideUnity and NewProjectTemplate projects to support Unity 2022.1.12f1.
  • Updated Burst package (com.unity.burst) to 1.7.4.
  • Updated Test Framework package (com.unity.test-framework) to 1.1.33.
  • Removed explicit references to Barracude (com.unity.barracuda) and Burst (com.unity.burst) packages since they are marked as dependencies to ML-Agents. Eliminates managing their versioning.
  • ProjectSettings – changed new gameobject naming convention.
  • Note, recommend clearing your local checkout \Library directories under \RideUnity and \NewProjectTemplate Unity projects prior to updating.

Virtual Human (ICT)

  • World Event System: Added event for receiving response from NLP for in-progress node authoring tool.

Documentation

RIDE website Examples content now filtered under pre-defined categories.

Examples

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

  • ExampleCompass; HUD with degrees and heading that adjusts in real-time; its prefab can be added to any scene.
  • ExampleOAuth; demonstrates how to use Google and Facebook OAuth authentication systems within RIDE.

Additions or refinements to existing Example scenes: 

  • ExampleBarracudaAPI
    • Added “screen-capture-recorder” filter to list of non-RGB cameras.
    •  Resolved error for “Desktop w/o external webcam connected, or using laptop, choose Settings > Camera > toggle access off for integrated webcam”.
    • Fixed inference log scroll view displaying the previous run text on choosing different inference type.
    • Ignore non-RGB cameras for webcam streaming (eg. depth cameras).
    • “Load Defaults” button added for both Classification and MSELI inference examples.
    • “Cycle webcams” button added for choosing different webcam source for inference.
    • Changed webcam feed view resolution.
  • ExampleEntityGroup
    • Updated and optimized Group Management debug menu, including Collapse All button.
    • Added ChrIrqCivilianMleAdultAvg01PrefabDataMono prefab for spawning sample civilian agent groups.
    • Added Civilian DataMono prefabs to RideSystems > ResourceLoader.
    • Added sample Company and Platoon entity groups.
    • Fixed issue where adding a new group of just subgroups with no new members would cause a null reference exception.
  • ExampleMESLI; changed DisplayUserMessage scenario event to take a function rather than a static string. Updated Example MSELI accordingly. 
  • ExampleSelectFire, and ExampleTerrainDestructionYuma
    • Replaced Abrams tank with updated M1A2AbramsDataMono prefab.
    • Updated ammunition scriptable assets to include new armor piercing values.
  • ExampleTeamMatch; in TeamMatch scenes that reference NetworkBrad, changed to NetworkSoldierBlue and NetworkSoldierRed.
  • ExampleTrainingTakeCoverML and ExampleBehaviourComparison
    • Switch statement used for parsing ML action starts from 0 instead of 1.
    • Negative award is given for each action taken to punish wandering behavior.
    • Following changes made to TakeCoverMLSettings.prefab:
      • Angle of vision raycasting has been increased because blue agents’ direction is locked onto red agent, limiting vision senses.
      • New ML model has been added (Take_Cover_102022.onnx).
  • ExampleWaypointVisualizer; edited script to make the “waypointList list” variable public for allowing spawned agents to follow the path.

Fixed Issues

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

Examples

  • ExampleNavMesh, CombinedTerrain object not removed with Clear Terrain; missing materials observed with map reload.
  • BattleDrill_CoverAndConcealment, PrpWoodenCrate03Prefab assets not appearing in external projects. 
  • BD_Ambush, fix out of index exception where not enough cover points were being calculated for the amount of teams seeking cover.
  • ExampleBehaviourComparison, editor only, scripted and ML Agent fail to reach goal when loading scene via Level Select scene.
  • ExampleDataMonoCharacters, added reference to RideBaseMinimal to enable Exit prompt.
  • ExampleNavMesh, CombinedTerrain object not removed with Clear Terrain; missing materials observed with map reload.

Known Issues

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

SpeedTree Asset Bundles 

  • SpeedTree objects appear low-poly and flicker LODs at run-time. 
    Note, Unity version 2022.1.12f1 is the latest compatible version with the RIDE API until we resolve the issue by creating version and platform specific SpeedTree Asset Bundles.

Examples

  • ExampleAgentCommandsEchelonFormationMovement and _Terrain, agents scatter and increase speed with combat behaviors.
  • ExampleLoadTerrain, exception upon select of Center Camera w/o terrain present.
  • ExampleTerrainDestruction, error when triggering destruction event over certain structures.
  • Team Match, UnassignedReferenceException on client side upon connect to host; however, this error appears innocuous from our testing.
  • Team Match, MissingReferenceException occurs when toggling F12 cursor control after Leave Room or Disconnect button command from player spawn.
  • Team Match, using UnityAStarMovementSystem, repeating errors after Disconnect button command from player spawn.
  • PlayerInputControllerDataMono, inconsistencies with PlayerInputController scene: various missing anims (crouch, etc.), name text horizontal.
  • UnityAStarMovementSystem enabled, large terrain datasets, such as Razish20 and FtHoodJack L21, may experience long loading times and a period of unresponsiveness from editor/executable.