Search Unity

[W.I.P.] Pro Racing AI

Discussion in 'Made With Unity' started by dgutierrezpalma, Sep 24, 2011.

?

Are you interested in Pro Racing AI?

  1. Yes, I will wait until the final release for purchasing this product.

    44.6%
  2. Yes, I would like to purchase the public beta with a pre-release discount.

    33.8%
  3. I'm not sure, I don't know if I would use it.

    13.8%
  4. Definitely, I'm not interested in this product at all.

    13.8%
Multiple votes are allowed.
  1. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Hi everybody, I want to show you my new racing AI package: Pro Racing AI

    Before developing my own AI package, I tried all the racing AI packages available in the Unity Asset Store and none of them fit my needs for my upcoming iOS racing game: I was looking for an AI package that worked out of the box with complex vehicle physics simulations (such as Edy's Vehicle Physics or UnityCar) and was fast enough to challenge the player in all my tracks. There was a product that did a really good job in fast tracks with long straights and fast corners, but it wasn't up to my expectations in tracks with short straights and lots of chicanes and slow 180-degrees turns.

    As I wasn't satisfied with any of the existing products, I started to develop my own AI solution a couple of months ago. At the beginning I started to develop this AI package for my own personal use, but after talking with several forum members, I decided to polish it a little more and start selling it in the Asset Store. Currently it's in an alpha status, but I think it's already good enough to make its first public appearance:

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

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

    I'll continue improving the AI and finishing the website during the next month and I would expect to release the first public version in mid-to-end of October, but I wanted to hear some feedback from the community, see if people would be interested in a product like this or the features you will want to see in the final version...

    FEATURES IMPLEMENTED IN THE CURRENT VERSION:
    • It works with Unity Free and Unity Pro.
    • It has been tested successfully with asphalt and dirt tracks, even in tracks with HUGE JUMPS.
    • 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, the track limits and the distance to the walls outside the track.
    • You can divide the track into different sectors and tweak the parameters for each sector separately to create a more challenging AI.
    • You can define a different racing line, aggressiveness and skill level for each AI controlled vehicle.
    • The track information can be saved / loaded from an external JSON file.

    FEATURES THAT WILL BE IMPLEMENTED DURING THE BRANCH 0.x:
    • Basic obstacle avoidance / overtaking behavior.
    • Counter-steering maneuvers to avoid excessive drifting.
    • Advanced crash-recovering maneuvers (in case the AI crash with another vehicle).
    • Machine Learning: instead of tweaking the sector parameters manually, leave the AI racing alone in a second computer and let it find out the optimal values for you.

    FEATURES THAT WILL BE IMPLEMENTED DURING THE BRANCH 1.x:
    • Optimizations for mobile devices ( remember I'm developing an iOS game ;) ).
    • 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.

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

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

    EDIT:
    By the way, does anybody know how can I edit the Poll? I wanted to add several questions, but I don't know if it's possible... in case it's not possible, there is another question that would be more important for me.
     
    Last edited: Sep 24, 2011
  2. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
  3. GameReady3D

    GameReady3D

    Joined:
    May 19, 2011
    Posts:
    90
    It looks great. I would like to see all those upcoming features you listed to be implemented. I noticed that you are using the alternate physics model of the Unity car tutorial. Will you support the standard car tutorial (car.js)? Will you show a demo with more than one car on track? I'm definitely interested in purchasing it.
     
  4. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Yes, I'm also planning to add support for the standard physics model from the Unity Tutorial. My AI is written in C#, but I have already added support for Edy's Vehicle Physics (which is written in Javascript), so the standard physics model shouldn't give me too many headaches... I'll try to upload a new web player in a few days ;)

    Right now I can't upload a demo with more than one vehicle because I haven't implemented the collision avoidance behavior yet. When I implement this feature, I will update every demo to add support for player-controlled cars and several AI cars.
     
  5. Deleted User

    Deleted User

    Guest

    Looks great so far. Happy to hear it works with UnityCar :)
     
  6. flim

    flim

    Joined:
    Mar 22, 2008
    Posts:
    326
    I'd like a racing car AI tutorial than a package. If there is one, I will buy it.
     
  7. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @MooseMouse: I added support for UnityCar from the beginning because it's the vehicle physics that I'm using for my own project. However, when I started to think in releasing the package publicly, I realized I should also add support for Edy's Vehicle Physics and Unity Car Tutorial because there will be many people who prefers using those vehicle physics.

    @flim: Well, if you look at the source code (fully commented) and the information I will include in the documentation and my website, I'm sure you will learn a lot about racing AI. It won't be exactly a tutorial, but I think it still would be a very valuable resource...
     
  8. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    I see you're finally almost ready to release this AI to the public. Great jobs, so far. What will the purchase price be. I'm sure a lot of people have the same question.
     
  9. bug5532

    bug5532

    Joined:
    Aug 16, 2011
    Posts:
    307
    Checked out the eddys physics demo and the car spun out and got stuck against a wall after a few corners..... looking forward to seeing future versions :)
     
  10. Deleted User

    Deleted User

    Guest

    I was just about to buy the other car ai system, till I saw this.

    I am ready for beta now....

    P-
     
  11. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @Bug5532 It's a little weird because it doesn't happen on my computer, but another forum member told me exactly the same thing a while ago. Does it happen in the "ascending right-turn" just before the bridge? If so, I'll upload a new web build telling the AI to be a little more cautious in that corner.

    @namoricoo It will take a while to implement all the planned features, but I think the AI is pretty good in its current status, so the first public version should be ready really soon. About the prices... they aren't set in stone

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

    EDIT:

    Due to some confusions caused by the old pricing structure, I have decided to delete the contents of this post until I come up with a better pricing structure. I can't say a final price yet, but I would like to offer (if people are interested) two types of license:

    - A license which will include the source code.
    - A cheaper license with exactly the same features, but without the source code.

    I really want to know your opinions because it will help me to come up with a better pricing structure, so I would like to know if there would be anybody interested in purchasing a license without source code or if everybody want to purchase the source code license. Of course, customers who purchase a license during the 0.x branch (aka: public beta) will have a pre-release discount and every customer will receive free updates for the whole lifetime of the product.
     
    Last edited: Sep 27, 2011
  12. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    $500, you must have fallen and bumped your head. Notice how people stopped responding after you posted that crazy price structure. You are essentially staying that your product is better than
    Mega-Fier ($150) + playMaker ($100) + UniSky ($100) + RageSpline ($75) and I still have $25 in change. I can speak for the community. If you try to pull that Stunt, you won't get a single client. By the way, in case you did not know .Dll files will not work for Unity Basic users. You just eliminated over 65% of your customers from the "bronze" level. I just removed your product from my wish list. Several other people are will do the same. If your price ever becomes reasonable, your approval rating will go back up. It will not go back to what it was before you tried to pull that stunt.
     
    Last edited: Sep 26, 2011
  13. WonkyWooGames

    WonkyWooGames

    Joined:
    Dec 31, 2010
    Posts:
    63
    Firstly, good work and I wish you good luck with your ideas and project.

    Sort of hi-jacking the thread, sorry, but as the AI programmer for Wipeout 2097 +, F1 2001 - 2003, WRC5, Motorstorm, PGR4 and more recently Blur and you are in need of AI for your racing game please get in touch as I'm now a freelance developer.

    It is very easy to implement racing AI from papers and articles, for example in AI Wisdom books, but it's the last 20% that is the hardest, usually for the pro players. If you look at the demo, you'll notice steering oscillation, slowdown on corners when the car can clearly go faster, are all example of the last 20%. To get that 20%, unfortunately, you need detailed information about the physics. The simple steering AI oscillation is removed by using a simple PID controller, but this needs to be tuned most different car physics setups.

    Anyway, good luck, but if anyone wants to get in touch then please do.

    Cheers...

    Darren
    woo@wonkywoogames.co.uk
    www.wonkywoogames.co.uk
     
  14. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @namoricoo

    The $500 price tag would be for developers or companies that would require direct access to the repository and premium support, people who needs bugs fixed in a matter of hours (or a couple of days at most) instead of waiting for the next periodic update, I think that kind of support deserves a higher price, don't you agree?

    I expect most of my clients to choose the Bronze or Silver licenses, which have the same features than the Gold version and are intended for those people who don't need or can't afford that kind of premium support. If you look at the other Racing AI packages in the asset store (and you compare their features), you will see this package isn't so expensive... in addition, as I stated in a previous post, my AI package is completely developed in C# and (as you will probably know) Unity Free can use .NET *.dll without any kind of problems, using a native *.dll is a Pro-only feature, but .NET *.dll can also be used in Unity Free without any problem.

    So people which uses Unity Free will be able to use the Bronze License without any problem. I also said these prices aren't set in stone... they are based in the features of the product, the amount of hours put into the project and the price of competing products, but of course they could go down if the sales number is lower than expected.


    One more time: I expect most customers will choose the Bronze or Silver license (depending on if they care about having the source code or not). Only customers who needs faster bug-fixes and premium support should purchase the Gold license.
     
    Last edited: Sep 26, 2011
  15. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @Wonkywoogames

    You are completely right, the car turning behaviour isn't as smooth as it should be and the car could drive faster in many corners. That behaviour is because, as I haven't implemented machine learning yet, I had to tweak the track parameters manually... and I obviously didn't choose the best possible parameters for those cars in this track. I couldn't justify spending more time tweaking those parameters when I could spend that time implementing machine learning and let the AI to find those parameters for me (leaving the AI running alone in a spare computer and comparing the lap times using different parameters).

    You have to take into account this AI is still in a very early development status and there is a lot of room for improvements... but I think it's still pretty good (even in its current status) compared to the other racing AI packages available in the Unity Asset Store.


    About my AI implementation, it is based on some papers from the Paris AI Conference 2010. There was a presentation talking about the AI in "Superbike World Championship" and "SuperStars Next Challenge V8" and I'm trying to use the same approach... Have you seen that presentation? I would be really interested to know how good is my approach in comparison with the AI in the games you have worked.
     
    Last edited: Sep 26, 2011
  16. WonkyWooGames

    WonkyWooGames

    Joined:
    Dec 31, 2010
    Posts:
    63
    @davidgutierrezpalma

    I am a member of Ai Gamedev, but I haven't seen either of the presentations you have mentioned due to other work commitments at the moment, so I wouldn't like to comment. I also won't comment on whether one approach is better than another, it depends upon what is needed for each project, platform and resources to bear in mind :)

    I can say that all the games I have worked on have common features, I don't like to call it an AI system, such as the steering pid controller, but things like the speed controller and required data are widely different across all the games. However, each would work in the others game. Pick the right tool for the right job.

    I really can't go into too much detail, but one tool/technique generates the ideal racing line from the vehicles physical grip model. This produces AI data that is almost unbeatable if just measuring lap time. It also gives you other valuable data that will then allow you to create the Forza speed helper line (which is patented, so no game can directly copy this) for example, or write simple offline tools to predict the vehicles lap time (within a 5% error) which is useful for designers stack ranking when lots of cars are involved (guess the game ?). The AI data is also used to generate the gamelogic, ie laps, lap timer, etc, etc.

    Sorry to hijack your thread, as current projects are coming to an end I'm looking out for new contracts. So if anyone interested in my developer services please take a look around my website and view my linkedin profile and stuff. I'm an old school generalist programmer specialising in AI, Physics and Gameplay. Here are some videos of my vehicle physics currently porting to c# for maybe a racing game on iOS.

    Car Dynamics.
    Bike Dynamics.

    I wish you the very best of luck in your project.

    Cheers...

    Darren

    http://www.wonkywoogames.co.uk
    woo@wonkywoogames.co.uk
     
  17. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @Wonkywoogames

    Maybe you should write the the "Commercial Work" forum (if you haven't already done it), you will gain some visibility among the people who may be interested in hiring you. You seem to know a lot about this topic, if I weren't short of cash I would probably hire you to help me finish the package...

    In any case, I would like to hear your comments when I release the first public version and (hopefully) solve most of the current pitfalls... I know I have to improve a lot of things, but if writing a good AI were easy, it wouldn't be so funny ;)
     
  18. WonkyWooGames

    WonkyWooGames

    Joined:
    Dec 31, 2010
    Posts:
    63
    @davidgutierrezpalma

    I'm sure you'll improve, so I'll keep an eye out for your first version.

    Good luck.

    Darren
     
  19. carking1996

    carking1996

    Joined:
    Jun 15, 2010
    Posts:
    2,609
    500 dollars? wow... That's almost half of the Unity's 1500 dollar pro pricetag. I'd pay 100 dollars for this, not 500.
     
  20. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    @Wonkywoogames
    If you port those vehicle Physics to Unity, let me know... I would like to add support for them in my product.


    @carking1996
    If you decide to purchase a Bronze License, you would only have to pay $75 - $100. Taking into account that the Bronze License has exactly the same features than the Gold License, I really didn't expect so many complaints about the price of the Gold License...



    @Everybody
    The Gold License was never intended for customers on a tight budget or customers who can wait 1-2 weeks for a bugfix. It was intended for people who needs their problems to be fixed in hours (not in days) and for companies that requires a Premium support and are willing to pay for that level of service.


    It seems the "Gold License" is causing some unnecessary confusion, so I will remove from my previous post to avoid more problems. I only wanted to offer a really high-quality support for the people who were willing to pay for it (and I'll probably continue offering it on my website), but it seems it has been a big error to advertise it as "Gold License", it wasn't a wise decision. Apologizes for any unnecessary confusion caused for my previous post(s).
     
    Last edited: Sep 27, 2011
  21. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    I had almost given up on your product. I even spent some time working on my own AI just to see how hard it could be. Like Wonkywoogames said in his post. It's not that hard. However, in my world time is money. Like many other developers here. If I can spend money to save time. I will. Here a quick advice on how to maximize your client in the Asset Store. I will use Playmaker as a reference. At the Bronze level. Have the 30-40% part of your code that is the most sensitive in a DLL file. The rest of your files should stay open. So between 60-70% of your code should be open. Even if people can't understand what you're doing in the code. They still want to see something. Like carking1996, a lot of people would pay $100 buck for that. here's another thing. Eliminate the naming bronze and silver. Bronze makes it sound like you're trying to short change people. Have 1 file in the Asset store. If you want to control who's able to see 100% code. Do it on your own website. since the AssetStore does not let you see who's buying your product. If you advertise your product more like playmaker the way I just described above. A lot of the lost enthusiasm will return. The Ball is now in your corner.
     

    Attached Files:

  22. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Yes, you are completely right, I shouldn't have advertised my product in that way and I have learned from my error on the hard way... I will have to think about a better pricing structure and, in the meanwhile, I will edit the post where I talked about the old pricing structure to avoid further confusion. Now that I have acknowledge my error and I'm working to solve it, can we start talking about the features of the product and what can I do to improve it?

    :D
     
  23. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    You you need to the Beta out first. It will not be perfect the first time. That's a fact. It's all about incremental improvements. It's a three step process.
    1)Get is out
    2)Get feedback.
    3)20% improvement with each update cycle.

    Until you get it out. We would just be theorizing. It's all about the base functionality. As long as the foundation is solid. people will be patient with the 20% improvement cycle.

    If you ask an expert in any field what the most import thing. They'll all say the same. It's the basics. Newbies will always keep looking for a quick fix. A silver bullet. The veterans will all Say. It's all about the basics. You get that correct. Everything else will fall into place.

    With that in mind. Take my product. UniDDatabase. It focuses on the basics. Getting the data. Be it a prefab, Audio,Texture, Soon AssetBundles. Once you have the data, in my mind. Your ready to start making powerful games. Most of the Newbies are looking for a silver bullet. That elusive quick-fix. I always say the same thing. If you can do the basic stuff. How do you plan on building big complicated games.
     
    Last edited: Sep 27, 2011
  24. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    By the way, I have been thinking...

    Right now I'm storing some information about the track in JSON files (because changes made at runtime aren't persisted in the editor). If I used UniDDatabase, would the information saved at runtime be persisted when I return to editor mode? If so, I could provide a better workflow for people who also owns an UniDDatabase license...
     
  25. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    I put together a quick vide to show how UniDDatabase handles Encryption and basic data persistance. It should work for all platforms. I did notice that I did a run and Build before Unity Updated the file. it's quick so it's not as professional as I would have liked.

     
  26. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Well, don't worry about the quality of the video, it's good enough to get the idea about how it works. I will purchase a UniDDatabase license because I think it could improve the workflow of the "Machine Learning" part of my AI (where I need persistence for some changes made by the AI at runtime).

    However, I would like to continue offering the current workflow (save to JSON file / load from JSON file) for customers who doesn't own a UniDDatabase license... I suppose there isn't a method to discover if the customer has UniDDatabase installed, right?

    I think we can't use #define in our own code, so I would like to choose at runtime if we should use UniDDatabase or JSON files depending on if UniDDatabase is avaible or not. The only method I'm aware is using reflections, which is very slow... but as this code won't be executed in the final build (only in the editor), I think I can get away with the use of the reflection API.
     
    Last edited: Sep 28, 2011
  27. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    I use UIToolKit to manage 99% of my UI. UItoolkit also uses Json files. Instead of using the Json extension. They just use .txt extension. That resolved most of the complaints android users have with Json. If you change the extension from Json to .Txt a simple if statement would do the trick. I would Gray out these lines of code and tell people to uncomment the code if they have my product. Like I said before. Before you start working on machine learning. Which would probably involve advanced Neural Network Algorithms. The first version of the product should focus on the basics in your first release.


    //If the file does not have a .txt extension you will not be able to attach the .Json file in the inspector.
    public TextAsset ddatabaseOrJson;

    if(UniDDatabaseCs.OpenDDatabase(ddatabaseOrJson)==true)
    {
    //UniDDatabase file detected

    }
    else
    {
    //JSon file...
    }
     
    Last edited: Sep 28, 2011
  28. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Thanks for your advice about using the *.txt extension for json files, I wasn't aware of that problem.

    About the code you have posted, it would only compile if UniDDatabase is already installed in the system, if it isn't installed, the "if statement" would return a compilation error. I know that error can be fixed commenting / uncommenting several lines, but I want my customers to be able to use my product with zero coding knowledge, so I can't rally ask them to edit a script file, even if it's an easy fix. It seems the only solution would be using the Reflection API...


    About the "machine learning" feature: it will be an iterative process, so Neural Networks aren't really required to make the algorithm work... However, even if they aren't really necessary, they can still be very useful for my AI:

    A Neural Network will probably provide a better starting point for the iterative algorithm, so it will probably converge much faster. As the iterative algorithm can work perfectly without them, I think I can start implementing the iterative algorithm for the 0.x branch and postpone the implementation of Neural Networks until the 1.x branch.
     
    Last edited: Sep 28, 2011
  29. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    That's why I said you would have to gray it out /* */
    /*
    if(UniDDatabaseCs.OpenDDatabase(ddatabaseOrJson)== true)
    {
    UniDDatabaseFileTask();

    }
    else
    {
    JSonfiletask();
    }


    */
    JSonfiletask();
    if somebody has it; they can go in and uncomment the code. if somebody does have it they can just remove the second Json file taks because it the same thing in the if statement. Best thing would be to have a function. That should do the trick.
     
  30. Yorick2

    Yorick2

    Joined:
    Jan 24, 2009
    Posts:
    297
    features that would be important for me:

    - A ranking system that shows what car is in first, second and third position in the race. etc.
    - AI opponents should be configurable individually. I want some to stay close to the player and some to just race at their own pace.
     
  31. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    The AI stores internally the number of completed laps and the percentage of the track [0...1] that has been completed in the current lap. With this information, it will be very easy to create a ranking system and I will implement it at some point in the future (specially because I need it for my game). I don't think I have enough time to implement this feature for the first release, but it's on my plans for a future release.

    Right now, there are two different traits (skill aggressiveness) that can be configured individually for each AI vehicle. These parameters will usually have a value in the range [0...1] and even if lap times could be improved with values slightly above 1, it isn't recommended because it can cause excessive drifting and increase the crash probabilities. In future versions I want to include new AI traits, but in the first public release I will include (at least) skill aggressiveness. In any case, you can tweak these parameters at runtime (using scripting) until I implement the AIManager.
     
    Last edited: Sep 29, 2011
  32. Deleted User

    Deleted User

    Guest

    How is this project going? Are you close to releasing it? I am ready to implement AI in my game, and your solution sounds great.
     
  33. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    I know I'm a little behind the planned schedule, the code was ready for the first release a week ago, but I'm having an issue with the "binary distribution" (dll files aren't imported correctly when using "Edy's Vehicle Physics"). It's very weird because this issue only happens with the "binary distribution" and only with "Edy's Vehicle Physics", but I'm doing my best to fix this problem as soon as possible...

    On the other hand, there is no reason to continue delaying the release of the "source distribution" for longer, so I will start selling the "source license" on a couple of days and I will start selling the "binary license" when I fix the current issues with "Edy's Vehicle Physics". The package will be available on my website and the Unity Asset Store, but as this is my first product in the Asset Store, I don't know how long it will take the approval process.


    In addition, I have been updating the documentation on my site. Although it is still in a "work in progress" status, I think it will give you a better idea of the product features and how it's intended to be used: http://proracingai.com/Getting+Started
     
  34. Deleted User

    Deleted User

    Guest

    fyi....

    um...you really can't read your site...the dark asphalt background is obscurring the readabilty of your content.
    any chance of white background on documentation??

    I have been waiting for this...probably going to go binary....I have went from low budget..to no budget...
    great job!!!

    p-
     
  35. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Which internet browser are you using? It should appear a white semi-transparent layer over the dark asphalt to improve the readability. If it isn't appearing for you, I would like to know your operating system / internet browser to fix the issue.

    Thanks.
     
  36. namoricoo

    namoricoo

    Joined:
    Apr 14, 2011
    Posts:
    534
    Make sure you don't build my code into your Pro Racing AI.
     
  37. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Are you asking me seriously to take care of not doing something completely illegal (such as redistributing a 3rd party product without the author permission)? Come on, maybe that message would have been OK as a private message, but on a public forum... was that really necessary?
     
  38. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    The problem was Internet Explorer doing funny things with the CSS stylesheet, it should be fixed now.
     
  39. Deleted User

    Deleted User

    Guest

    Yeah..I thought it was an ie issue..no big deal.

    I'm ready for a new driving ai!!
    I check this post everyday..hoping.....

    when and how much..??
    p-
     
    Last edited by a moderator: Nov 7, 2011
  40. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Well, the original plan was "setting the online store on my site and submitting the package for approval to the Unity Asset Store tonight". However, I've had some problems with Unity today (it crashed on start and refused to work without any apparent reason, so I had to spent almost 2 hours to solve this problem). I'll do my best to avoid any additional delay, but if I can't have everything working tonight, it should be ready tomorrow ;)

    About the price, I've made a commercial agreement with Newlife to offer a discount to UnityCar customers. As this agreement should increase the number of sales beyond the expected values, I think I can reduce the price of my product and make it more affordable and trying to attract new customers with a tight budget. During the 0.x branch (aka "public beta"), the pre-release price will be:

    • Binary License: 60€ + VAT (if applicable)
    • Source License: 150€ + VAT (if applicable)


    By the way, UnityCar customers who has purchased the product directly from Newlife should receive an email with a discount code in a few days, while customers who has purchased UnityCar through the Unity Asset Store will need to write an email to Newlife (with a copy of the invoice) to receive the discount coupon.

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

    EDIT:
    I've found out that, when the binary package *.dll aren't imported correctly, it's possible to export the whole project as an UnityPackage and import this new UnityPackage into a new project. After doing this, everything seems to work perfectly even after doing a "Reimport All" or restarting the Unity Editor.

    While I don't consider this a final solution, I think this workaround would be good enough to start selling the binary package tonight / tomorrow. What do you think about it?
     
    Last edited: Nov 7, 2011
  41. sipon

    sipon

    Joined:
    Feb 8, 2009
    Posts:
    143
    Hi David
    How is long to setup all the AI ?
    Any chance to see a webplayer on Unitycar Monza track ? ( very curious to see your Ai on a well known track)
     
  42. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    The time needed to configure the AI depends on the complexity of the track (it's not the same the Indianapolis Oval Track than Monaco) and how accurately do you want to represent the track with the spline tools included in the package. While in most cases you will get good results with a simplified representation of the track, if you draw the shape of the circuit with a great level of detail (using more nodes), you will get the additional benefit that the AI will know the distance to the borders of the track in every moment (so it can react appropriately if it gets too close to those borders).

    But the most time consuming task is finding the right parameters for each sector on the track, so the AI knows that it can drive faster in a long straight or that it should start braking / steering a little sooner in a difficult corner. Right now it's a trial-and-error process and while it's relatively easy to get "good values" for those parameters, it can be a very time consuming task to find the "optimal values" for each sector. I'm working on a "Machine Learning" feature that will automatize this process, but it still in an experimental status and it can't be considered as a substitute for the trial-and-error process yet, but as a method to improve the values obtained by trial-and-error process.

    I will upload several new demos once I finish implementing the Machine Learning feature. I also want to see my AI racing in Monza because a real-world circuit will be an excellent benchmark for my AI ;)
     
    Last edited: Nov 8, 2011
  43. Mishaps

    Mishaps

    Joined:
    Nov 28, 2011
    Posts:
    181
    Hi David
    How does performance compare with AI Driver Toolkit on the iphone? I'm making an iphone racing game with UnityCar and deciding which AI pack to purchase.
     
  44. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    At this moment I'm more focused in fixing the last few bugs and adding new features than optimizing the code for mobile devices, but I plan to support mobile platforms in the future. The main problem is that I don't have any low-poly scene that I can use for testing my AI in mobile devices, but if you could send me a low-poly racing track, I would record a video with your racing track + my AI + UnityCar on an iPad 2. Please, send me a PM if you have any scene I can use for testing.


    By the way, there are a couple of things that you should take into account before choosing an AI package:
    • Is UnityCar the best option for developing a mobile game? I really love it, but UnityCar 1.1 had a serious performance issue with the GUI code that made it completely unsuitable for mobile games. In theory that issue should have been fixed in UnityCar 1.2, but I haven't had time to test it on a mobile device yet. If you have already purchased UnityCar, test its performance on a mobile device (before choosing an AI package) to see if it's the right choice for your project.
    • Is it possible to use UnityCar with AI Driver Toolkit? I haven't used AI Driver Toolkit for a long time, but it didn't support UnityCar last time used it (although it can have improved since then).
     
    Last edited: Nov 29, 2011
  45. Mishaps

    Mishaps

    Joined:
    Nov 28, 2011
    Posts:
    181
    Hi David
    Thanks for the quick reply - I'm really excited about your product. Kinda a no-brainer that I'll use it in the future - you advertised support for UnityCar while your competitors didn't. Right now, I'm deciding what to use for my current project. With such a new release I understand that your under the pump getting new features working etc rather than optimisation for mobile. I suppose my question is will it work at all on the iphone/ipad at this stage? Like when I switch platforms in unity to iphone will it be okay or say something like "incompatible with this platform"?
    We've used the Unity Car Tutorial in the past and it was quite painful to convert to mobile. We've brought Edy's vehicle pack too but have decided to go with UnityCar for our next project because they advertised support for mobile platforms. BTW thanks for the heads-up on the GUI we'll prob re-create it in EZ-GUI or something.
     
  46. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    I wanted to be sure before giving an answer, so I've done a small test in the Unity Editor:

    I've imported UnityCar 1.2 and my AI package (binary distribution, but source distribution should also work) into the Unity Tutorial scene and I've selected "iOS" as target platform in the "Build Settings". No error appeared and the profiler reported the following use of CPU:

    Code (csharp):
    1. UnityCar code -------> 45 - 60%
    2. Camera rendering ----> 30 - 40%
    3. AI code -------------> 0.1%
    I'm sure you will understand I can't guarantee that my product will work on mobile devices until I can make some tests in a physical device but, based on the profiler data, I would say the bottleneck will be the vehicle physics and not the AI code.
     
    Last edited: Nov 29, 2011
  47. Mishaps

    Mishaps

    Joined:
    Nov 28, 2011
    Posts:
    181
    Thanks for the test. I've purchased the plugin off your website. I'll let you know how things goes.
     
  48. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    Thanks for your purchase, I will be looking forward to your comments. I appreciate a lot my customers feedback, but taking into account that you are the first customer who will use my product in a mobile platform, your comments are even more valuable for me. Let me know if you find any problem or you have a feature request and I'll do my best to fix the issue or implement the feature as soon as possible.
     
  49. newlife

    newlife

    Joined:
    Jan 20, 2010
    Posts:
    1,081
    David this is not correct. The issue with the GUI is NOT due to UnityCar, but is due to OnGUI implementation on mobile device like explained here and here.
    This problem exists even if OnGUI calls are empty.
    In UnityCar OnGUI functions are used only to show help and commands GUI in the web demo, nothing else, so they can be deleted without problems.
    If you delete all the OnGUI calls from UnityCar classes, you can expect 30 fps on a Iphone 3GS. With OnGUI functions, you obtain 2 fps.

    PS: this is an interesting article about Unity optimization with iPhone.
    Here is written to "put in every script that uses GUI stuff in the Awake() function this line: useGUILayout = false;". Im going to add this line for iPhone target.
     
  50. dgutierrezpalma

    dgutierrezpalma

    Joined:
    Dec 22, 2009
    Posts:
    404
    My fault, as the performance issue could be solved removing the OnGUI methods, I really thought the performance hit was caused by the code that was called inside those methods. By the way, thanks for those links, they are really useful.

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

    EDIT: Maybe you should use platform dependent compilation in the next UnityCar release to remove automatically the OnGUI methods in mobile platforms.
     
    Last edited: Dec 1, 2011