iRDS - Intelligent Race Driver System Available on Asset Store

IMPORTANT INFO (Edit:22/Nov/2021)

If you are going to use URP or HDRP with iRDS is important to get first the rendering pipeline and after having it on your project then import iRDS unchecking graphics settings from the import wizard to avoid overwriting URP/HDRP graphics settings, if you do it the other way around URP/HDRP would overwrite the project settings of iRDS and you would end up having multiple issues trying to use it
IMPORTANT INFO

Hi Guys,

We are happy to say that we have released iRDS - Intelligent Race Driver System to the Asset Store for $150.00.

This is an AI Systems with also its own Car Physics and right now it is on Version 2.0.2.2a

It also is now compatible (the same version and package) with Edy’s, Unitycar, Randomation V2 and also with CarX (thanks to Emerson for doing the test) (this feature is for V2.0+).

Features included:

AI System

  • Compatible with Edy’s Car Physics, Randomation V2, Unity Car, CarX

  • AI steering

  • Breaking

  • Overtake

  • Braking if opponent in front

  • Collision prevention - if opponents on sides

  • Track limits (left and right limits of the track)

  • Different AI behavior

  • Pitting

  • Counter steering if the car drifts

  • Compatible with Easyroads, the system creates the track limits from the EasyRoads marker and road width information

  • Racing line

  • Grid positions

  • pit line

  • Road cameras position (for using on road camera view mode)

  • The AI cars are configurable about the following:

  • You can set how fast they would take curves by changing a single value

  • You can set when the AI should enter pits by changing 2 values, min fuel to go to pits (value from 0 to 1), min tire wear before enter pits (value from 0 to 1)

  • You would be able to save AI drivers, so they could be randomly chosen for race

  • You could set how aggressive the AI would be braking on curves, by changing a single value (this would make the AI brake earlier or later)

  • You could set the overtaking capabilities of the AI, like how much faster than the opponent it should go to overtake it.

  • The AI are capable of avoiding side collisions with other cars

  • Configurable sensitivity of the AI for making maneuvers (You could set amount of overtaking maneuver, side collision avoiding and getting out of track avoidance)

  • Set the Fuel tank capacity

  • Set the distance for the AI to look forward on another cars to make avoiding maneuvers

  • Set the min sides distance to make avoiding maneuvers from other cars

  • Set the min Height distance to lookup on other cars to avoid them

  • For each waypoint, you could be able to set an speed override for the AI to Slow down on some part of the tracks

  • Counter steering if the car drifts, set this value too.

  • The max speed of corners is automatically calculated from the race line

  • The pits includes a two sections where you could set different max pit’s speeds, in example, the entrance could have a max speed of 80Kph and when the car enters the pit’s itself, the cars (including the player’s cars) could only drive at a maximum speed of 50 kph(you can set the desired speed limit also).

  • The system sets the positions on the race grid randomly

  • The system assigns each car a pit stop available.

  • The system includes its own physics (to support the tire wearing and the automatic calculation of maximum speed of corners).

  • When the race is finished, the AI system takes control of the player car

  • Choose if the race would use pits or not.

  • Also works on sprint race Tracks (single laps too)

Car Physics

  • The Tire wears during race, by making the car loose grip and heats (for maximum grip)
  • The fuel is consumed during race
  • All the regular Car Physics features (Springs, Dampers, Tire curves, Engine Torque, Engine Sounds, Engine power, Turbo, Brakes, Brake Lights, Steering, etc.)

User Manual Link

Video:

Tutorial and showcase:

New suspension system that would be inlcuded on the next update:

Web Page:

Daga Games

Demo link:

AI Demo

Here are the user controls:

Car selection:
Use the left and right arrows keys to select your car

Arrows key:
Up - Accel
Down - Brake
Right and left - Steering

Space bar - HandBrake
A - Shift Up
Z - Shift Down
X - Turn on/off RoadCameras
C - Change Camera Current Car
V - Change camera View (Hood, bumper, cockpit, etc.)
E - Enable/Disable Stability Control
T - Enable/Disable Traction Control
H - Enable/Disable Steer Help
B - Enable/Disable ABS
Asset Store Link

Join our Discord server → Discord

Android Demos:
this demos is not playable, since the goal is to measure the AI performance.

Download Link android demo without HUD

Download Link android demo with HUD

Rhod, :sunglasses:

1 Like

Hello Guys,

Today has been released on the Asset Store the Version 1.05.2

Here are the Fixes and features for this update:

  • Included 3 objects with the tags RGT LFT STR.
  • Added the options to select to either use re-spawn or not.
  • Fixed the ESC Filter to make it work correctly.
  • Improved Wheel Script for better Car Physics.
  • Fixed Edys Version incompatibility with Unity’s JavaScript like Image Effects Pro

IRDSCarControlInput

  • added public void SetRespawnTimer(float time)
  • added public bool respawn = true;

IRDSCarCamera

  • Added support to the camera follow the CameraViews Objects instead of the car
  • You can now add or delete the objects that are children of CameraView object on car, so you can customize those.
  • Added on the Class IRDSCarCamera a method to get back to players cars at once, this is helpful when the player just cycled on opponents cars to see them in action and want to get back the camera quickly to his car, see CameraControll for an example (it is assigned there to keyboard key “B”) the method is called ChangeToPlayerCar().

IRDSLevelLoadVariables

  • Added the public variable bool respawnActive = true;

IRDSCarVisuals

  • impproved the Skidmarks and Skid Smoke emissions.

Hi, did you test this on iOS devices?
Thanks

Hi ProjectOne,

We did test it on mobile, but was on Android, we have not tested yet on iOS, but we really think it should work fine. I’m going to think on a way to test it on iOS, maybe i could borrow my brothers mac and give it a try.

Rhod, :sunglasses:

That would be cool, let us know how it goes, it would be good for you as well to add iOS ready to your product description if it is. Although to be iOS ready it would need touch input

Hi ProjectOne,

Thanks for the advice, we are going to add Android Ready on the description, as it does work on Andriod, and when we test it on iOS we would let you know and add it too.

About the touch input, this could be done in a very simple way, the system has 4 methods to pass to the IRDSCarControllerInput Class the inputs from any source you could have from unity, including touch, this methods are:

  • IRDSCarControllInput.setBrakeInput: This is a non-static method, so the best way to retrieve this is by using GetComponent< IRDSCarControllInput >() and then accessing the method, this method sets the brake input as a float, from 0 to 1 (it is also clamped).
    • IRDSCarControllInput.setThrottleInput: This is a non-static method, so the best way to retrieve this is by using GetComponent< IRDSCarControllInput >() and then accessing the method, this method sets the Throttle input as a float, from 0 to 1 (it is also clamped).
  • IRDSCarControllInput.setSteerInput: This is a non-static method, so the best way to retrieve this is by using GetComponent< IRDSCarControllInput >() and then accessing the method, this method sets the brake input as a float, from -1 to 1 (it is also clamped).
  • IRDSCarControllInput.setHandBrakeInput: This is a non-static method, so the best way to retrieve this is by using GetComponent< IRDSCarControllInput >() and then accessing the method, this method sets the Handbrake input as a float, from 0 to 1 (it is also clamped).

Rhod, :sunglasses:

Hi Guys,

iRDS V1.06 has been upload to asset store today, here are the new features and fixes for this version:

  • Fixed the camera script, in order to be able to use the preferred camera view.

  • Added respawnTime Variable on LeveLoad Object to set the respawn time.

  • Added unstuckTime Variable on LeveLoad Object to set the unstuck time.

  • Added respawnAtWP Variable on LeveLoad Object to activate respawn at waypoint.

  • Added the method SetUnstuckTime on IRDSCarControllerAI Class.

  • Car Physics improvements.

  • Added the following methods for Force Feedback Support on IRDSWheel Class:

  • GetGrip

  • GetNormalForce

  • GetLocalVelo

  • CalcMz

  • Added the global variable cCoefficients for the Mz calculation

  • IDSCarControllerInput – added the method GetCarPilot()

  • IRDSDrivetrain added the method GetMaxRPM() of type float

  • IRDSRaceLinerRendererUpdate - Fixed first lap race line not changing colors correctly for player car.

New features to be included on next version release (to do list):

Per car HUD
UnityCar compatibility

Rhod, :sunglasses:

Thanks for the info on those lines Rhod.
Cheers

any chance of uploading a mobile version to the app store to have a bit of a look at the mobile version (just saving me pennies till pay day but this does look awesome) well done.

Hi Guys,

We have uploaded a sub version of 1.06 (Version 1.06.2) and included the following fixes thanks to Emerson for the feedback on those.

  • Automatic transmission not working properly.
  • Added Shift Up RPM %, for setting the shifting up RPM point of reference for shifting Up.
  • Added Shift Up RPM %, for setting the shifting up RPM point of reference for shifting Down.

Rhod, :sunglasses:

Hi Guys,

We are pleased to tell you that we have just tested iRDS on Linux Platform and it works like a charm!

So now we officially say that iRDS is Linux Compatible.

Rhod, :sunglasses:

Hi

Will your plugin look really good but i have some simple questions for you ( sorry if they look primitive ):

Now what i understand is that your package is an Ai for oppenant (enemies) racing cars so it will control the cars and make them challanging the player car, but does it have also controller for the racing track to set roles and also racing types? If yes plz explian that

Also if i want to use ur plugin for no player controlling cars what do u suggest me to use for controlling my car i mean the car that the player is controlling?

Hi bravery,

Yes the AI system controls the AI cars, and also it has it’s own Car Physics and Player controller, so it is a complete package for making racing games.

The second question I understand that you ask if you don’t want to use the scripts from the system to control the player car and you want to user your own? If that is the case, yes you can create your own script for controlling the player car and pass the values to the script that send those values to the engine and tire scripts. The System is also compatible with Edy’s Car Physics, and would be soon with Unity Car.

If you have any other question, we are glad to answer them.

Rhod, :sunglasses:

ITS A great stuff but i wonder the physics in the AI demo is not same to the carPhysicsDemo?

Thanks Rhod for the answer.

actually I want to know what type of racing the system can handle, I mean something like circuit / round racing, or time trail or knock out circuit or knock out time, rally, check-point hunt … etc?

Also is there any free version or demo version where we can test the solution before we buy?

Hi Bearbeey,

The physics are the same but with different setup, the carPhysicsDemo has different tires coefficients and more engine power.

Rhod,

Hi bravery,

The system can handle right now circuit and sprint races with or without pits stop for circuit.

And on the first post are the demo links.

Rhod,

Thanks for the answers

Does it have mobile conteolers?

The system itself doesn’t include right now the Script for mobile to control the car (The system has the methods required to make any type of controller for the player car, since those methods are just value pass-through for steering, throttle, brake, hand brake, shifting, so you can invoke those methods with any type of input), but we have one custom script made for testing it on android and it worked, and we can share it if you need it, or we could help you out to make one for yourself if you want too.

Rhod, :sunglasses:

Hi,

What does the AI do if it drives head first into a barrier or into a tricky piece of road?
Or it can’t go forward and the only way out is backwards?
Does it reverse and try to figure a way out or how does it resolve that?

Thanks