1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. Unity 2017.1 beta is now available for download.
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Get further faster with the Unity Plus Accelerator Pack, free for new Unity Plus subscribers for a limited time. Click here for more details.
    Dismiss Notice
  7. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice
  8. Learn how you'll soon be able to publish your games to China in four simple steps with Xiaomi. Sign up now for early access.
    Dismiss Notice

Pro Racing AI available for sale on my website (soon on Unity Asset Store)

Discussion in 'Assets and Asset Store' started by dgutierrezpalma, Nov 21, 2011.

  1. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    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 package has been developed in C# and can be easily extended to support other Vehicle Physics engines.

    It is sold under two different licenses, both of them with exactly the same features:
    • 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.


    WEB PLAYER:
    http://ProRacingAI.com/Demos

    IMAGE GALLERY:
    http://ProRacingAI.com/gallery1

    ONLINE DOCUMENTATION:
    http://proracingai.com/Getting+Started


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

    OTHER FEATURES I WOULD LIKE TO IMPLEMENT AT SOME POINT (BUT NO PROMISES YET):
    • 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...


    The product is already available on my website ( http://proracingai.com/Store ) and it will be available on the Unity Asset Store soon.

    //-------------------------------------------------------------------------//

    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.
     
  2. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
  3. MooseMouse

    MooseMouse

    Joined:
    Sep 14, 2011
    Posts:
    480
    I recently purchased your Pro Racing AI, and I really like it! It was easy to get working, and it is exciting to tweak things and see the results :)

    The one thing I am missing is the obstacle avoidance. I know in your post above you said it would be in a 1.x version, and this is still beta, but do you have an idea of when this feature will be available? Right now the AI cars crash into each other a lot. Or are there any tweaks or workarounds you can suggest to decrease the AI car to AI car collisions?

    Thanks,
    Shawn
     
  4. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    There is a new version of Pro Racing AI available, all existing customers should have received an email telling them to download the new version using the same download link (please, if somebody hasn't received the email, let me know). I want to thank all early adopters for their support and their useful feedback, these are the changes of the new version:

    NEW FEATURES:
    • 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 node 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 at runtime.
    • Improved the sector parameter calculation, the "sector transitions" are much smoother now.
    FIXED BUGS:
    • 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.
    MINOR CHANGES:
    • 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.


    Sorry for not replying before, I missed your post because most people was writing in the "W.I.P" thread. Thanks for your kind comments, it is always nice to receive customer's feedback... specially when the customer find your product useful :)

    Right now I'm working on an automatic racing line calculation (it will allow us to place the nodes in the center of the track and let the AI calculate the ideal racing line). I will start working on overtaking / collision avoidance maneuvers after that. This is probably the most requested feature so I prefer providing a basic implementation in the next release and improve the implementation over time in future releases... Unfortunately, I can't provide a time frame yet.

    In the meanwhile you could use a slightly different racing line for each AI-controlled vehicle, there will be less collisions if their racing lines don't overlap too much... it won't avoid completely the issue but, depending on your track, it could reduce significantly the number of collisions. It can be barely defined as a "workaround", but I know one of my customers is using this little trick in his game...
     
    Last edited: Dec 15, 2011
  5. Rush Rage Games

    Rush Rage Games

    Joined:
    Sep 9, 2010
    Posts:
    1,998
    Looks very good!
     
  6. Mishaps

    Mishaps

    Joined:
    Nov 28, 2011
    Posts:
    158
    Been working with this and really like it. Seems to have a low overhead and I really like how you can drop it onto Edy's Vehicle Physics and it just works without having to mess around with code. Being able to draw a racing-line is just cool! Looking forward to planned future features too.
     
  7. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Thanks for your comments, I'm glad you like my product. I couldn't work in the product during the last week because I have been ill, but the automatic racing line calculation starts looking really promising... I really want to see this feature finished as soon as possible so I can start working in overtaking / obstacle avoidance maneuvers (which is by far the most requested feature).

    By the way, remember that you can get a 20% discount in your purchase using the following discount code: 2011DISCOUNT
     
  8. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    BUMP!

    If you are interested in purchasing Pro Racing AI at a discounted price, remember than the discount code will be valid only until 10th January.
     
  9. Harsh

    Harsh

    Joined:
    Jan 9, 2012
    Posts:
    8
    nice work bro.. probably you can use the code I wrote for rubber band AI. I would give it free to you.... PM me if you think it would be useful for your product. I want a better AI in unity finally.
     
  10. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    PM sent.

    I planned to implement a similar feature, so I'm sure your code will be very useful as a starting point. Thanks :)
     
  11. omarzonex

    omarzonex

    Joined:
    Jan 16, 2012
    Posts:
    150
    Nice AI WayPoints

    very cool ..............
     
  12. omarzonex

    omarzonex

    Joined:
    Jan 16, 2012
    Posts:
    150
    Example demo source full package

    please get me package full ai car
     
  13. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    @omarzonex: I suppose you aren't a native English speaker and you must be using an online translator to write your message, but I couldn't understand your last post (sorry). Could you try it again?


    In any case, if you are interested in purchasing the product, this is the direct link to the store: http://ProRacingAI.com/Store

    You can click the "Source" or the "Binary" icons to select the desired license. Remember that both products have exactly the same features and the only difference between them is that the "Source License" includes the full source code of the product, while the "Binary License" only includes a set of .NET assemblies (dll files) that can be used in both Unity versions (Free and Pro). After purchasing the product, you will receive a download link in the email address you introduce when you make the payment.

    //--------------------------------------------------------//

    @everybody: sorry for the lack of news, but I had some health problems during last month and I couldn't work as much as I wanted in my AI. Nevertheless, I continue implementing new features and fixing existing bugs... and once I finish the development of the next release, I will finally upload the product to the Unity Asset Store and I will update my website with some video-tutorials, new forums and new web demos. Thanks for your patience.


    One important question: Would you find useful including a sample scene in the next release or do you think it would only waste bandwidth, increasing the download size without any need?
     
  14. lockbox

    lockbox

    Joined:
    Feb 10, 2012
    Posts:
    506
    I've been playing MooseMouse's game in progress and I'm really impressed with your AI based on the features you've listed above. Well-done!

    My requirements are somewhat unique and I just want to bounce a few things off of you to get your thoughts. I'm still trying to decide if the Unity engine is right for my project, but given the car packages and your AI, I can have a full-functioning prototype done in a few months versus however long it's going to take me to write this stuff myself. The only problem being, that after the prototype is done, I'll probably need version 2.0 of your racing AI to complete the game - which puts me back into position of having to decide if I want to write the racing AI myself.

    First thing is scaling everything down. I'm still waiting for a response in the UnityCar thread on this one. If you take one of your scenes and a car, and shrink it down to 1/10 scale, does the physics and the racing AI still work or does it break?

    Do the unique driver trait parameters allow for adjusting how closely the AI follows the racing line? i.e. exact, loose, random How about braking? i.e. early, late, random How about acceleration out of a turn? i.e. early, late, random

    With regard to machine learning, I'm aiming for unique AI profiles that learn over time as the AIs race. What I need to make sure of, however, is that at the end of a "season", all the AI's haven't perfected themselves, whereas the player hasn't.

    The game will allow the player to create their own R/C track given several fixed sized surfaces. (See the type of track in the two videos below; they are different from the ones in the UnityCar thread.) I realize that this adds an entire new level of complexity for the AI to deal with, but do you think you're heading down this path with respect to the AI's ability to do sort out the racing line if the player creates the track? I know how I would implement it, but if this isn't something you're aiming for, then that's fine.

    Thanks for your time and thoughts!

    Links

    http://www.youtube.com/watch?v=sJI-J3sVuEY

    http://www.youtube.com/watch?v=QkdUSNq6K2c
     
  15. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Thanks for your comments, I'm glad you like my product.
    I'll try to answer all your questions, so you can evaluate if my product is a good option for your game.

    You can have some problems with the current version of my product because there are a couple of places in the code where I'm using hard-coded values for the vehicle speed (for example: when calculating if the AI should start using the "drifting behaviour" or not), but I will probably add a "scale factor" in future releases to solve this kind of problems. As a work-around, I suppose you could scale everything in the scene up to x10, at least until my product and UnityCar implement the required fixes.

    In the current version of the product, you need to complete the following steps to create a new track:
    • You have to use the Spline Tools to define the ideal racing line for the track.
    • You have to divide the track into sectors (1 sector = 1 corner or 1 group of linked corners).
    • For each sector, you must tweak 3 different parameters to control the speed (grip), braking (deceleration) and steering (look ahead). Finding the ideal values for these parameters is more an art than a science in the current version of the product, but this process should be completely automatic when I finish implementing Machine Learning (at least that is my goal).
    Then you can use the "Driver Traits" for tweaking a little the "base behaviour" for each AI-controlled vehicle. For example: you can tell an AI-controlled vehicle to drive a little faster and start braking (or steering) a little sooner than usual... and you can also tell the AI if it should try to do a "controlled drift" or if it should try to avoid "drifting" completely.

    The original goal of the "Machine Learning" feature was trying to find automatically the optimal values for each sector parameter, so instead of tweaking those parameters manually, you can train the AI (during the game development) until it learns how to do a "perfect lap" in the current track.

    In theory you should be able to leave the AI racing alone for hours (using a very high Time.timeScale to accelerate the learning process) and watch it improving its times lap after lap... in practice, this process won't work properly until I fix a little bug that is only triggered with low fps (for example: in mobile devices or when you use a very high Time.timeScale).

    The results of the Machine Learning process can be stored into a JSON file, so it would be possible to execute this process in the player machine instead of using it during development (as intended). However, if I wanted to create an AI-controlled opponent who gets better race after race, I would use a different approach:

    1. I would try to create the "perfect AI" using Machine Learning (when the bug is fixed) or tweaking the sector parameters manually.
    2. I would change the "Driver Traits" to make the AI very slow at the beginning of the season and make it a little faster after each race.
    I suppose the goal would be creating an unbeatable AI and slow it down as much as needed (using Driver Traits) to make the game enjoyable.

    At this moment you need to tweak a lot of parameters (usually at design time) to make the AI drive competitively, so it isn't possible to simply "drop the AI into any random player generated track and expect it to drive fast enough without any tweaking". However, this is a feature I want to include in a future release of my product...

    At this moment I'm working in a method for calculating the ideal racing line for a given track... and when I manage to fix the Machine Learning bug, the AI should be able to find the ideal racing line and the optimal sector parameters for player generated tracks without human interaction. I don't think this feature will be ready for the next release, but I can assure it is planned for a future release.
     
  16. lockbox

    lockbox

    Joined:
    Feb 10, 2012
    Posts:
    506
    Thank you so much for time. Your answers are very helpful.

    Cheers
     
  17. tezer86

    tezer86

    Joined:
    Jul 19, 2010
    Posts:
    90
    This looks great but I have a few questions. Will you be able to set up alternate racing lines for pitting? Which a car can then switch to when entering the pits? My C# is fairly limited (I program in Java) so i assume I would have to code in that functionality separately if the its not in.
    Cheers
     
  18. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Currently it is possible to define several racing lines and choose at runtime which racing line should be followed by the AI, so you can define one racing line for the "normal race" and a second racing line for the pitstop. I haven't implemented yet the speed limiter for the pit-lane nor the "stop go" for the pitstop.

    It's a planned feature, but it isn't implemented yet... the speed limiter will probably be ready for the next release, but the "stop go" feature will probably have to wait until the following release.
     
    Last edited: Feb 21, 2012
  19. tezer86

    tezer86

    Joined:
    Jul 19, 2010
    Posts:
    90
    Ah Great, thanks for the reply. If the updates come in the new few months then this looks like the thing for me. Oh another few questions, does it work with unity IOS? Whats the call rate? I know this will be down to the amount of AI cars you have but is it pretty intensive?

    Cheers
     
  20. tezer86

    tezer86

    Joined:
    Jul 19, 2010
    Posts:
    90
  21. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    I had a problem with my development machine and couldn't read the forums in the last few days. I haven't lost any important file because I make frequent backups, but it has taken a little longer than expected to restore the system to its previous status. In any case, let's answer your questions:


    I haven't started to optimize the code for mobile devices yet, but one of my customers is already using Pro Racing AI for developing an iOS game and he said the performance wasn't a problem: I don't remember if he was using Edy's Vehicle Physics or UnityCar, but we did some tests and discovered that the AI code was using less than 0.5% of the CPU, most of the CPU time was spent on the vehicle physics and rendering. So the main bottleneck will be (depending on your scene) the Rendering or the Physics Simulation, not the AI.

    However, he also found an severe bug (that could caused the AI to stop following the racing line) and only appeared on mobile devices, not in the Unity Editor nor desktop or web builds. After some investigation I found out this bug didn't appear in desktop / web builds because it was only triggered on low fps (in other words: when you use a mobile device or a very high value for Time.timeScale). In any case, the bug is already fixed in the development branch and I will ask this customer to make some additional tests after the release of the next version of my product, I want to be completely sure that the bug is already fixed and it won't come back later.

    One more thing: when you talk about the "call rate", are you asking about "how many times will be called the AI code each second"? In that case, it depends on the vehicle physics you are using... some vehicle physics call the AI code on Update() and other vehicle physics invoke the AI code on FixedUpdate().
     
  22. S0ULART

    S0ULART

    Joined:
    Jun 14, 2011
    Posts:
    128
    That are great news with the performance tests :)
    Hope you didn't had a too big mess with your dev machine PC problems always suck :/

    I just wanted to ask whether its possible to use this A.I solution for flying vehicles also in Y axis like the old freelancer- or other space games
    here's a video showing the game http://www.gamespot.com/freelancer/videos/freelancer-video-review-2912082/
     
  23. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Don't worry, everything is working now :)


    You are the second person who ask me about this feature, so I will tell you the same thing I told him...

    By the way, what airplane / spaceship physics would you use? You know I only include the AI in my package, not the vehicle simulation, so I would need to know what vehicle physics are you planning to use to investigate if it can be integrated easily with my AI or not...
     
  24. S0ULART

    S0ULART

    Joined:
    Jun 14, 2011
    Posts:
    128
    No no I was thinking just about the steering mechanics to be also in Y axis :)
    The Gameplay would be still Racing I just wanted to show an example with "freelancer" not the gametype.

    Something like this would be perfect, is it possible yet?
     
  25. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Not yet. This wasn't a planned feature so I need to study the development costs first to see if it could be profitable or not. Which "vehicle physics" will you use for the spaceship?
     
    Last edited: Feb 27, 2012
  26. S0ULART

    S0ULART

    Joined:
    Jun 14, 2011
    Posts:
    128
  27. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    I don't think Edy's Vehicle Physics is a good candidate for a space racing game because it's intended for wheeled vehicles only, but Space Game Starter Kit could be the product we are looking for. I will examine that product carefully to see if it can be integrated easily with my AI. I'm using an abstraction layer with a common interface for integrating Pro Racing AI with other 3rd party products and translating the AI decisions into something that can be understood by the 3rd party product:

    Code (csharp):
    1.  
    2. 3rd PARTY             INTEGRATION LAYER                      AI
    3.  
    4. UnityCar ------------> AI4UnityCar -----------|
    5. EdyVehiclePhysics ---> AI4EdyVehiclePhysics --|--------> Pro Racing AI
    6. ...                                           |
    7. Unity Car Tutorial --> AI4UnityTutorial ------|
    8.  
    As long as the 3rd party product doesn't mix user input and vehicle behaviour in the same method, it can be integrated easily with Pro Racing AI. In other words: the 3rd party product should read the user input in a method and apply the appropriated forces into another different method.
     
    Last edited: Feb 28, 2012
  28. S0ULART

    S0ULART

    Joined:
    Jun 14, 2011
    Posts:
    128
    Okay those news are fantastic :)
    I think a generic integration layer is really the best choice also for upcoming other vehicle/racing extensions.
    Please keep me informed about your progress on my space racing game wish.
     
  29. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    I've recently received a couple of requests asking for support for X-racers and I would like to know if there is more people interested in that Vehicle Physics Engine.
     
  30. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    I have purchased this package, it looks cool , i am still learning on it
    Is it possible to add feature to create racing line from road mesh automatically?, after that it will be more easier to adjust it.
     
  31. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    Do you have sample scene so i can check the result?
    because i did setup for vehicle and i add AI4EdyVehiclePhysics component to it, but when i play the scene it is disabled, even if i enabled again.
    is there any support mail, so i can ask for any issue?
     
  32. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Thanks for the purchase.

    I've implemented a new feature in the development branch to calculate automatically the ideal racing line: you put the nodes in the center of the track, you select the track width for each node, you press a button... and the ideal racing line is generated for you. This feature will be included in the next release (which should be ready in a couple of weeks).

    In addition, I'll try to integrate my product with EasyRoads3D so you can generate the track with EasyRoads3D, select a menu option and Pro Racing AI will generate the track information and the ideal racing line for you. This feature won't be ready for the next release, but I will try to make room for it in the following release.


    Most users prefer asking their question in the forums or sending a PM, but yes, there is a support mail... and I can't believe I forgot to include it in the product documentation :D. I've just sent you a PM with the support mail (I don't want to write it here to avoid spambots ;)).


    I will try to add a sample scene using the Unity Tutorial Vehicle Physics in the next release, but I can't include a sample scene for UnityCar nor Edy's Vehicle Physics because I can't legally redistribute their code with my product. However, I will do my best to help you to solve your problem:

    The problem you are describing is probably caused because you haven't enabled the "External Input" checkbox in the "Car Settings" script. If you have that checkbox enabled and it doesn't solve your problem, please tell me which Edy's Vehicle Physics release are you using and I'll try to study the problem and find a solution for your problem as soon as possible.
     
    Last edited: Mar 15, 2012
  33. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    I've just tested some code sent by Raoul and I'm really excited: I don't want to make promises because there are some minor issues that must be fixed, but we could have EasyRoads3D support really soon :)
     
  34. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    I have setup AI car with racing line, after that i did copy for this car many times , to try many AI cars,
    when i play the scene , all AI cars disappear , only one still working ,
    i want to check behavior of many cars
    any hint?
     
  35. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    another question , is it possible to adjust Racing Line parameters by manual driving ?
    i think in this way adjusting will be very fast
     
  36. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Sorry, I couldn't replicate that bug. This is what I tried:

    1. I setup the scene with only one vehicle and I pressed "Play" to make sure it works.
    2. I duplicated the existing vehicle (Command + D) and I moved it using the handle in the inspector.
    3. I created 4 additional copies using this system and I pressed "Play": all vehicle started to race.

    If you can't fix the problem, you could try to record a video showing your problem. If I can see your problem, it will be easier to find out what's wrong.

    In the current release the AI isn't aware of other vehicles, so you could expect many crashes when they try to follow the Racing Line. However, I've implemented a basic obstacle/vehicle avoidance system that will be ready for the next release and it will be improved in following releases...


    One of the most requested features is an easier way to adjust the Racing Line parameters. My first bet was implementing a Machine Learning feature so you could leave the AI driving alone and it would find the best Racing Line parameters itself... however, there were a couple of bugs (that will hopefully be fixed in the next release) that prevented the Machine Learning feature from working properly.

    In any case, your suggestion of using player input for adjusting the Racing Line parameters is very interesting, so I will study how to implement it in Pro Racing AI (probably using Neural Networks). The problem with this approach is that the AI would drive fast only if the player is capable of driving fast... but if it is implemented correctly, even non-technical users will be able to "setup" the Racing Line parameters easily at runtime.
     
    Last edited: Mar 19, 2012
  37. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    I know why.
    all AI cars have machine learning script , even if these component are disabled ,it cause this problem.
    i remove this component from cars and it wirking now.

    right now i will delay my working on AI untill auto setupping is ready, i hope to be ready soon.
    thanks.
     
  38. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    => and it working now
     
  39. OmniverseProduct

    OmniverseProduct

    Joined:
    Feb 26, 2012
    Posts:
    1,569
    I have a number of questions. Sorry in advance if the questions seem silly. I'm still in the learning stage with game development.

    How does this compare to the AI Driver Toolkit? I ask because I was thinking about getting one or the other so I wanted to compare notes here. This will be for a combat racing game. I want to use either RapidUnity Vehicle Editor or Edy for the physics if I can't code it myself. I would really like to code the physics myself though, good practice for me being in the learning stage. If I do code the physics myself, will it affect the Pro Racing AI kit? Or would it even matter.

    Since this is a combat racing game and I'm coding the combat scripts, both AI and player, myself, would I need the source code license so I can integrate the combat AI scripts with other vehicles? If I do need the source code license to do that, I will more then likely get the AI Driver Toolkit. From the looks of it, the AI Driver Toolkit comes with source code. If I'm wrong about needing the source code license, or if there is a workaround to implementing combat AI with the binary license I will definitely purchase this.

    Also, When will the 1.x version branch be available? How much will the price increase? Considering this is still inside the beta stage, will the people that purchased this now get the update to the 1.x branch free? I'm guessing at the most people will have to pay the difference, which I don't mind doing.

    Edit: I'm going to follow the Unity Car Tutorial and base the physics on that. I more then likely won't be using rapid unity or Edy.
     
    Last edited: Mar 21, 2012
  40. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    That means my implementation of the Singleton pattern is broken, it will fixed in the next release. In any case, I don't remember if I wrote it somewhere in the documentation (I know there are some pieces of information missing ), but you are supposed to use a single vehicle for Machine Learning because if you have several vehicles, they will have hard time to discover the optimal parameters for the track while they are trying to overtake each other.

    In addition, there are a couple of bugs in the Machine Learning script that are being fixed as we talk. I hope I can get it working perfectly in the next release, so I can finally remove the "Experimental" label for this feature.

    If you talk about Machine Learning, it should be ready for the next release (unless some unexpected bugs appear). If you are talking about the AI learning from player input, I will try to have it working in the following release after that.


    There is no silly questions, only silly answers.

    Well, the last time I worked with AI Driver Toolkit was 6 months ago, when I was hired to work in a racing game which used that product, so my comments will be based in the version of AI Driver Toolkit we used in that project. I'm sure Hummelwalker will have solved some of these issues in more recent versions of his product, but as I don't use it any more, I can't be sure.

    • Pro Racing AI uses splines for defining the racing line since the first release, while AI Driver's Toolkit has been using a "waypoint approach" until 3 months ago. Hummelwalker is using splines now, but he only stores the position of the "ideal racing line" while I also use the position of the borders of the track to improve the AI behaviour.
    • AI Driver's Toolkit includes its own Vehicle Physics while Pro Racing AI relies on 3rd party Vehicle Physics. However, I will include a slightly modified version of the JCar Vehicle Physics in the next release of my product.
    • AI Driver's Toolkit used to work very well with its own Vehicle Physics, but it didn't take into account the turning radius nor the braking distance, so it used to have many problems with more realistic Vehicle Physics (such as UnityCar) in complex tracks (such as the sample scene from the Unity Car Tutorial).
    • As AI Driver's Toolkit didn't take into account the turning radius nor the braking distance, you only need to define the node position and the max speed at that point of the track. In Pro Racing AI the process is a little more complex: you must divide the track in sectors (1 sector = 1 turn or 1 group of close corners) and you must define 3 different parameters for each sector of the track: grip, deceleration and "look ahead".
    • I don't know about AI Driver's Toolkit, but in Pro Racing AI you can define several racing line for each AI-controlled vehicle and changing the selected racing line at runtime. In addition, you can tweak several parameters (Driver Traits) to change slightly the behaviour of each vehicle during the first seconds of the race or during the rest of the race, even if all the vehicles are using the same racing line.
    • In the development version of Pro Racing AI, you can put the nodes on the center of the track and define the distance to the borders of the track... press a button and the "ideal racing line" will be calculated for you. You still have to tweak the sector parameters manually, but I am working in make this process more user-friendly.
    • In AI Driver's Toolkit, you could tell the AI to "follow the racing line" or "try to avoid collisions" (using Raycasts), but you couldn't tell the AI to do both things at the same time. It's true that I haven't implemented any collision avoidance system in the current version of my product, but in the development version (which should be released before the end of the month) I have included a collision avoidance system that merges seamlessly with the "follow the racing line" behaviour and let you change the behaviour of the vehicle depending on the distance and the relative position of the obstacle (it isn't the same detecting an obstacle in front of the car that detecting it on the side of the vehicle). In addition, you can define different collision avoidance behaviours if the AI detects "another vehicle" or if it detects "any obstacle that is not a vehicle".
    • In Pro Racing AI you can tell the vehicles (it doesn't matter if it's a player-controlled or an AI-controlled vehicle) to respawn if they got stuck for too long or if they go too far away from the track.
    • In the development version of Pro Racing AI, you can save your sector and lap times and you can display a Live Timing and a Race Summary screens (similar to the screens used in Formula1). In addition, you can also tell the AI to throw an event whenever a vehicle has reached (or missed) a checkpoint or when it has completed a lap or finished the whole race.
    • Maybe it won't be useful for your game, but in the development version of Pro Racing AI you can define zones with a speed limit (such as the pit-lane in Formula1) and in the following version I will implement pitstops.

    It's true that AI Driver's Toolkit is cheaper than the Source License of Pro Racing AI, but my product has more features, so I think you get a greater value for your money. I can't be unbiased when I talk about my product, so I would advice you to ask Hummelwalker the same questions about his product before making a decision.

    Well, it depends on your definition of "combat racing game":

    • If the vehicles "fight" with range weapons (guns, cannons, mines), then my AI doesn't support that kind of combat out of the box, but it won't prevent you for writing some code to fire your weapons only when you are facing an enemy in range, something like this:

    Code (csharp):
    1.  
    2. if  (
    3.         Vector3.Angle(vehicle_forward_direction, enemy_direction) < angle_threshold  
    4.         Vector3.Distance(vehicle_position, enemy_position) < maxRange
    5.     ){
    6.     Fire();
    7. }
    8.  
    • If your definition of "combat" is having vehicles crashing each others, the next version of my product will have a basic obstacle avoidance behaviour... and if you give it negative values to the parameters, the AI will try to crash into other vehicles instead of avoiding them ;). In addition, you can define another set of parameters for obstacle avoidance, so the AI will try to avoid the mines on the ground while it is trying to crash into other vehicles.

    Pro Racing AI already supports out of the box UnityCar, Unity Car Tutorial and Edy's Vehicle Physics (I forgot completely about RapidUnity Vehicle Editor, I will try to add support for that product as soon as possible) and I will support in the next release a slightly modified version of JCar.

    The source code of the "integration layer" is available even in the Binary License, so you can use those scripts as example to integrate your own vehicle physics with my product. As long as you read the user input into a method and apply the physics forces into a different method, it should be easy...

    Well, the "aiming firing" code could be written into a different script and (in the next version of my product) you will be able to make the vehicles crash each others using negative values in the "vehicle avoidance parameters". In addition, you don't need the Source License to integrate your vehicle physics with my product, so (unless you are planning to add your own changes to the AI behaviour) I think the Binary License would be good enough for your needs.

    There are a lot of features I want to implement before reaching the 1.x branch, so at this moment I can't give you an estimated date nor the estimated price increment (it will depend on the number of sales and the development costs). However, I don't want my customers to feel cheated, so I will write an announcement a month before the release of the 1.0 version. Everybody will have the opportunity of purchasing my product at the current price before we reach the 1.x branch.


    There are some customers who has asked for some features that are clearly outside of the scope of a racing AI. For example: one customer asked me to expand my system for simulating the traffic for a GTA-like game... and while I really like the idea, the amount of work required to develop this feature wouldn't allow me to integrate it into the Pro Racing AI package. If there is enough people interested in this feature (and taking into account that this feature is clearly out of the scope of a racing AI), I would implement it as a separate add-on that could be purchased separately... but I won't charge any fee for updating to the most up-to-date version of Pro Racing AI.


    In other words: ALL THE UPDATES ARE COMPLETELY FREE FOREVER, it doesn't matter if you purchased the product when it was on the 0.x branch, you won't be charged again when we reach the 1.x, 2.x or the 3.x branch.

    //------------------------------//

    In addition, there has been a couple of customers who has purchased the Binary License and now they are asking if they can upgrade to the Source License. The payment gateway I'm using doesn't allow me to include this option on my online store, but if there is somebody in the same situation, send me a Private Message and I will find a way to charge only the difference between both licenses.
     
    Last edited: Mar 21, 2012
  41. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    I mean by auto setup is to create racing line automatically, by selecting road mesh or from EasyRoad3d
    the main problem for me right now is when i create long track the editor become very slow , because of visible handles of the racing line
    at least you can hide handles , only show handle of current selected node.
     
  42. OmniverseProduct

    OmniverseProduct

    Joined:
    Feb 26, 2012
    Posts:
    1,569
    Thanks David. You just earned yourself another customer.
     
  43. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    @aliessmael
    At this moment I'm waiting for another code submission from Raoul. I want to include EasyRoads3D support in my next release, but we may need to wait until the following release if there is any unexpected problem with his code or if he is too busy with his own projects.

    @OmniverseProductions
    Thanks :)
    I hope you like my product... and if you need some help, you know you can ask your questions here ;)
     
    Last edited: Mar 21, 2012
  44. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    2,698
    Hi David, I am away at the moment until the end of this week. I will sent you an update next week.
     
  45. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Ok, don't worry.

    If you can't send me the update before the next release (or I don't have time to test it properly) it isn't the end of the world... you know I want to start using shorter development cycles, so we can leave the integration between our products for the following release.
     
  46. tezer86

    tezer86

    Joined:
    Jul 19, 2010
    Posts:
    90
    I have just purchased this product and I just need to say that I have had it about 35 mins and have a car running round track following my racing line. Its a fantastic thing to see! Cant recommend this enough and I have only just got it. Not even started tinkering with the advanced features!
     
  47. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    to be honest I have checked many Racing AI packages even high price ones , and i can say this is the best because "Pro Racing AI" do things in proper way.
    i did project with complete racing logic and every thing is fine.

    only there are just few things should fix and then it will be perfect.
    - drawing handle for only selected node , because drawing handles for all nodes make editor very slow
    - a little bit randomization or avoidance for many ai cars , because right now sometimes they look like moving through same line
    - some time selecting the handle of the wall is confusing , some times i select the right handle but unity select left handle ( may be because they are at same line).
    - and for me i prefer C# code instead of java

    overall this package is perfect .
     
  48. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    Thanks for your comments,
    I appreciate a lot your praises, but I appreciate even more your constructive criticisms.


    You can add some randomization using slightly different racing lines for different vehicles or using the same racing line but different Driver Traits modifiers for each AI-controlled vehicle. In addition, I will add a basic collision avoidance behaviour in the next release* that will make the AI follow the ideal racing line when they drive alone, but they will use a slightly different racing line when they are close to other vehicles.

    About the problem with the handles, it's a common complaint so I will study how to improve that part of my code after releasing the new version of my product. Another customer suggested the possibility of using separate GameObjects for each handle, so only the selected nodes will be displayed in the scene view and you will be able to select several nodes at the same time to move them together. I think that is a fantastic idea, but it will take some time to adapt the custom inspector to support that new approach. I will start implementing this feature just after the release of the next version of my product.

    In your last comment you also say that you prefer using C# instead of Javascript... and maybe I've misunderstood your comment, but you seem to imply that my product is coded in Javascript. Maybe I wasn't clear enough about this point, but the core of my product has been developed completely in C# and I've only used Javascript in classes that needed to interact directly with a Vehicle Physics written in Javascript (such as Edy's Vehicle Physics). The rest of the code is written completely in C#.


    //---------------------------//


    NOTE:
    I wanted to release the next version of my product before the end of the month, but I will need more time than expected to test it properly. To avoid this kind of problems in the future, I will start using shorter release cycles so I can make more frequent updates which are easier to test. Thanks for your patience.
     
  49. dreammakersgroupAdmin

    dreammakersgroupAdmin

    Joined:
    Feb 13, 2012
    Posts:
    37
    for handles problem , i think there is way to check selected node, check "light probe group" component , in this component you can add many node and the handle only for selected node.

    for coding, wow :) you are right, i did not check the all code , i only checked Ai4EdyVehiclePhysics.js (the most funny thing only this file is in java ).
    actually i did c# script for racing logic, and my script require access to this component to check some value. i rewrite Ai4EdyVehiclePhysics.js to C# , and it is fine now.
     
  50. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    402
    I will also study the "light probe group" approach, thanks for your advice.

    I understand that you may need to rewrite that file in C# for interacting with your code, I know how painful is mixing C# and Javascript in the same project, but as Edy's Vehicle Physics was written in Javascript, I thought it made sense to write my class in the same language. In fact, there is another script written in Javascript: the script which is used for interacting with the simple vehicle Physics from the Unity Tutorial (which are also written in Javascript).