Estimated customers, a new version of Pro Racing AI has been released. You can download the new version of the product using the same download link, but there are a couple of things you must take into account before upgrading...
- Some of the new features required a lot of changes in the internal API: that means that this new release could be slightly more unstable than the previous version and it will probably break code that was using the undocumented API calls from previous releases.
- With so many internal changes, Unity will lose any Racing Line information stored in GameObjects or Prefabs created with Pro Racing AI v0.0.2 or older, so you should use the following upgrade procedure to avoid the information loss:
- Before installing the new version of Pro Racing AI, make a backup of your project folder (better safe than sorry).
- Save the Racing Line information stored in GameObjects and Prefabs into external (JSON) files.
- Install the new version of Pro Racing AI.
- Restore the Racing Line information from the JSON files generated before upgrading.
I don't like breaking backwards compatibility, I know this kind of changes are annoying, but it was the only way to implement certain new features. This kind of changes will become rarer as the product becomes more mature, but I think they are unavoidable at this early stage in the development... However, I will publish the API documentation with the next release of Pro Racing AI if everything happen as expected and there aren't too many changes in the internal API.
In any case, here you have the features of the new release:
- The API has been updated.
- Added support for flying vehicles.
- Added support for RapidUnity Vehicle Editor and the Two-Wheeled Addon
- Added support for played controlled vehicles (using accelerometers, cInput or the built-in Unity Input).
- Added support for smoothing the AI simulated input.
- Added support for Speed Limiter (useful for a Pit-Lane --> PitStops will be added in future releases).
- Added support for Respawn Colliders: the vehicle will be teleported to the desired position OnTriggerEnter().
- Added support for Basic Collision Avoidance Behaviour.
- Improved the Respawn Behaviour.
- Improved the Drifting Behaviour.
- Improved the Car Recovery Behaviour.
- Improved the "Track Borders Avoidance" Behaviour.
- Improved the calculation of the turning radius and the max speed.
- Improved the AI behaviour with low fps or when the AI is called on Update() instead of FixedUpdate().
- Fixed a bug taht could cause the AI to "forget" its position in the racing line after a respawn.
- Fixed a bug that caused several timers not being updated correctly under certain circumstances.
- Allow the user to define the number of laps of the race.
- Allow the user to define a list of colliders as checkpoints.
- Allow the user to generate the list of checkpoints automatically from a racing line.
- Search automatically all the Pro Racing AI vehicles in the scene.
The following information is stored and can be retrieved:
- Sector Times.
- Lap Times.
- Total Racing Time.
- Last Checkpoint Reached.
- Complete Laps.
- Best Personal Sector.
- Best Personal Lap.
- Best Absolute Sector.
- Best Absolute Lap.
- Pit-In Time.
- Pit-Out Time.
The following events are launched:
- Start of the Race.
- Checkpoint Reached.
- Checkpoint Missed.
- Lap Completed.
- Race Completed.
- Pit-Lane In.
- Pit-Lane Out.
- The API has been updated.
- Added support for importing roads from EasyRoads3D.
- Added the possibility of defining a node as checkpoint.
- The scale of the racing line has been taken into account in several calculations.
- The Racing Line can be translated, rotated and scaled modifying those parameters in the Racing Line GameObject.
- The runtime performance has been improved because more information is precalculated on scene load.
- The vehicle acceleration and the track baking are taken into account when calculating the max speed.
- Fixed a bug with the interpolation algorithm that was triggered only when we had a single value.
RACING LINE EDITOR:
- Added support for calculating the optimal racing line automatically.
- Added several checks to ensure that the introduced values are valid.
- Added support for choosing between "View Speeds" or "View Sectors" in the Scene View.
- The performance has been improved because the Racing Line information is only recalculated after making a change.
- Improved the accuracy of the "Node Subdivision" and "Node Reduction" algorithms.
- Improved the "Generate Sectors" algorithm.
- Improved the behaviour of the Handles in the Scene View.
- Show the track length, the average track width, the average speed and the estimated lap time.
- Show the "percentage the start of the sector" parameter.
- The sectors are sorted automatically according to their "percentage end of sector" parameter.
- It is still considered "experimental", but the process has been improved in accuracy, speed and stability.
INCLUDED SAMPLE CODE:
- Simple "Live Timming Screen" example.
- Simple "Race Summary Screen" example.
- Simple "Read Events" example.
I have been ill during the last week and I couldn't reply any email or private message, so I will start answering your questions as soon as possible. As I want to apologize for this delay, I will extend the validity of the discount code until 10th January 2012. Remember, you can get a 20% discount in your purchase using the following code: 2011DISCOUNT
Thanks for your patience and understanding.
We want to celebrate the Christmas Holidays with all of you, so we are offering a 20% discount for Pro Racing AI until the end of year. You only have to use the following discount code in our online store: 2011DISCOUNT
Merry Christmas and Happy New Year!
We are happy to announce that a new release of Pro Racing AI is available. All existing customers can download the new version using the link in their purchase receipt. We want to thank all early adopters for their patience, their support and their useful feedback, all the reported bugs have been fixed in this new release and some of the most requested features have also been implemented.
- Added a new button to redistribute the nodes equidistantly around the track following the current racing line.
- Added a new button to center all the nodes in the middle of the track.
- Added a new button to reverse the direction in which the racing line will be travelled.
- Added two new buttons (Roll Left and Roll Right) to change the racing line start without moving nodes around.
- Added a new checkbox to decide separately if node labels and handles should be shown or hidden in the scene view.
- Added a new option to respawn AI-controlled vehicles if they are facing "the wrong way" for too long.
- Now it's possible to assign several racing lines to each AI-controlled vehicle and change the "current racing line" in scripting.
- Improved the sector parameter calculation, the "sector transitions" are much smoother now.
- Fixed several bugs that made "max speeds" not being calculated correctly in the editor.
- Fixed a bug that made "target speed" not being calculated correctly at runtime when the "Distances 2D" option was enabled.
- Nodes "max speeds" are now displayed in km/h in the Racing Line inspector instead of being displayed in m/s.
- The default color for the "border or the track" line has been changed to orange, so it's much easier to see if their handle has been selected or not.
- The initial positions for the nodes in a new racing line has been changed, so the nodes handles can't be confused so easily with the Racing Line handle.
- Several code optimizations that make faster the process of adding and removing nodes from a Racing Line.
Pro Racing AI is the only racing AI package that works, out of the box and with zero coding, with Edy's Vehicle Physics, UnityCar & Unity Car Tutorial (simple and alternate physics models). The product has been developed in C# and can be easily extended to support other Vehicle Physics engines.
It is sold under two different licenses:
- Binary License: 60€ + VAT (if applicable).
- Source License: 150€ + VAT (if applicable).
Both packages have exactly the same features, the only difference between them is that the "Binary License" won't include the source code of the product, but three .NET assemblies (*.dll) that can be used with any version of Unity (even with Unity Free). The listed prices are the pre-release prices for the 0.x branch, that has been used successfully in one complete project but should still be considered as a public beta (so any bug report is welcomed). Once the beta period ends and we reach the 1.x branch, the prices will be increased a little.
FEATURES IMPLEMENTED IN THE CURRENT VERSION:
- It works with Unity Free and Unity Pro.
- It supports out of the box and with zero coding Edy's Vehicle Physics, UnityCar and the official Unity Car Tutorial.
- It uses advanced spline tools to model the ideal racing line and the track limits.
- It's possible to divide the track into different sectors and tweak the parameters for each sector separately.
- It's possible to define different racing line and driver traits for each AI-controlled vehicle to give them unique behaviours.
- The track information can be saved / loaded from an external JSON file.
- Counter-steering maneuvers to avoid excessive drifting.
- Basic crash-recovering maneuvers.
- Experimental support for Machine Learning: leave the AI racing alone and let it find out the optimal parameters for each sector.
FEATURES THAT WILL BE IMPLEMENTED DURING THE BRANCH 0.x:
- Basic obstacle avoidance / overtaking behavior.
- Advanced crash-recovering maneuvers.
- Improved Machine Learning support.
- Allow support for choosing a path from a list at runtime.
- Lap counter and Live timing screen: lap times, sector times, fastest personal lap, fastest absolute lap and more...
FEATURES THAT WILL BE IMPLEMENTED DURING THE BRANCH 1.x:
- Optimizations for mobile devices.
- Advanced obstacle avoidance / overtaking maneuvers.
- Allow the AI to choose randomly between several paths / racing lines at runtime. Each path will have a "weight" value indicating the probability of choosing that path. If all the path have the same "weight" value, the choice will be completely random.
- AI Manager: a class that would change dynamically the aggressiveness and skill level of each AI controlled vehicle depending on the player's skills. As the AI speed will depend on player's lap times, he will never feel again the "lonely racer" syndrome because the AI won't be too fast nor too slow for the player.
WISHLIST (OR FEATURES I WOULD LIKE TO IMPLEMENT AT SOME POINT IN THE FUTURE):
- Automatic racing line optimization: after drawing a basic racing line, let the AI to optimize the waypoint distribution and calculate the racing line with the greatest average turn radius.
- Easy Roads integration: create your track with Easy Roads and Pro Racing AI will generate the ideal racing line and retrieving all the track information for you. Does it sound good? That's the reason why I want to implement this functionality at some point in the future...
I've found out that sometimes the *.dll files from the binary package aren't imported correctly. When this happens, it's possible to export the whole project as an UnityPackage and import this new UnityPackage into a new project. While I don't consider this workaround as a final solution (and I continue investigating the issue trying to find a better solution), it has worked perfectly in absolutely all my test projects.