Search Unity

[RELEASED] Highroad Engine - Arcade Racing solution

Discussion in 'Assets and Asset Store' started by reuno, Jan 19, 2017.

  1. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    Hi everyone,

    I'm glad to announce that the Highroad Engine is now available on the Asset Store!



    So what's the Highroad Engine? Well after releasing the Corgi Engine and the Infinite Runner Engine, I took a few days off to create a game for a gamejam. It became Shapeshifter Biker, which got quite successful, and ended in Rock Paper Shotgun's Best Free Games of 2016 list.

    I then took the basis of that game and made it into a proper racing asset, complete with AI, laps, vehicles, and everything else you need to create your own arcade racing game.

    There's a very complete list of features on the Highroad Engine dedicated page, but here's a brief recap:

    CREATE YOUR OWN RACING GAME

    The asset is inspired by old school, arcade racing games such as Micro Machines, and is built with versatility in mind. Motorbikes, cars, wipeout like vehicles, trucks, karts, you can create anything you want. Vehicles are built via an easy to customize car controller, so you can tweak speed, acceleration, steering without a single line of code. Plus if you want more it’s super easy to extend, and there are examples and documentation to help with that.

    PLAY EVERYWHERE

    The Highroad Engine allows you to drive using your keyboard, gamepad or any mobile touch device you want. It comes packed with Nice Touch, More Mountain’s battle tested mobile input solution. Oh and it runs great on mobile of course.

    PACKED WITH CONTENT

    2 games, 4 racetracks, 8 vehicles, aerial and 3rd person cameras, GUI menus, lobbies, ranking, checkpoints, lap counters, and more!

    LOCAL MULTIPLAYER

    The asset supports 4 local players by default, but you can push that limit to as much as your machine can handle (it’s just a matter of buying more gamepads after all).

    AI BOTS

    Add and customize bots super easily. Setup their behaviour without a single line of code. Adding waypoints to refine their trajectories is as simple as a few mouse clicks.

    EASY TO USE

    Creating your own racing game has never been this easy. Import your tracks and vehicle models, add colliders, controllers, and play within minutes! You can create a whole game without a single line of code, thanks to all the custom editors, handles and gizmos. And if you want to build on top of it, the asset has been built for extendability, with virtual classes, minimal coupling, and good practices in mind.


    COMPLETE DOCUMENTATION

    The Highroad Engine comes complete with a full API documentation, as well as a functional documentation covering all the main aspects of the asset. Furthermore, the code is fully commented, so it’s easy to understand what’s happening and make changes at all times.

    ONLINE MULTIPLAYER

    The online network part of the asset is based on Unity UNET HLAPI and extends these standard classes, offering you a custom tailored experience while remaining standard and compatible with the future of UNET. Plus code and race scenes stay the same for network or local play!

    As for my other assets, this one will be built upon on a regular basis. I've already got a few ideas for the upcoming updates, but please let me know what you'd like to see added, what you like and what you don't, and it'll make the asset even better!

    You can buy the Highroad Engine now on the Asset Store!
     
    Last edited: Jan 20, 2017
  2. brettboring

    brettboring

    Joined:
    Nov 8, 2013
    Posts:
    33
    Impressive stuff man! I had some flashbacks of playing supersprint on the amiga 500 :D
    Will definitely pick it up in the near future.

    Congrats!
     
    reuno likes this.
  3. josker

    josker

    Joined:
    May 10, 2014
    Posts:
    45
    Picked it up late last night and had a quick look, big fan of super sprint/skidmarks back in the day.

    Noticed two thngs, one keyboard controls did not work in the demo scene and also from the local gui screen when you clicked start it did not take you through to a map.

    Will have a good look later today, might just be some simple setting I missed.

    Keep up the good work, now I have to split my time between all 3 of your assets and didn't I read you had another planned for later in the year.
     
    reuno likes this.
  4. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @josker > There seems indeed to be a problem. Apparently the project settings didn't make it to the Asset Store...
    So you don't have any of the input setup. I'll submit an update right away. In the meantime, you can unzip the contents of the zip attached to this message in your ProjectSettings folder and it should solve the problem. Really sorry you ran into this!

    Edit: I've just submitted an update that will hopefully get accepted soon, and will fix the problem.
     

    Attached Files:

    Last edited: Jan 20, 2017
    BossClaw, Corum and josker like this.
  5. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    A third reuno project planned??? What is it? :D

    Question. Will you add some kind of persistent highscore for the racing game?
     
  6. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Devision4 > Well a fourth actually :)
    The first is the Corgi Engine, the second is the Infinite Runner Engine, then Highroad Engine is third, and the fourth will be an adventure/roguelike/still top secret one.

    And a persistent highscore sounds like a great idea. Added to the list!
     
    NathanG likes this.
  7. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    ADVENTURE???????? if you beed a alpha/beta tester :)
     
  8. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Devision4 > I'll definitely need some testers. You're now on my list!
     
    pushingpandas likes this.
  9. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @josker > The fix is now live, if you update you shouldn't have the problem anymore. Thanks again for reporting this!
     
  10. josker

    josker

    Joined:
    May 10, 2014
    Posts:
    45
    Perfect timing just got back from work, works fine. Will have a good look over next few days.
     
    reuno likes this.
  11. josker

    josker

    Joined:
    May 10, 2014
    Posts:
    45
    Will you be adding damage values for cars, this could then effect car speed, braking etc. maybe at random.

    I have seen boost force which you could minus for a speed decrease. Could you add one to give an oil spill effect for skidding.
     
  12. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @josker > These are great ideas. All added to the todo list!
     
  13. WalterEspinar

    WalterEspinar

    Joined:
    Aug 23, 2011
    Posts:
    84
    Hello Reuno,
    How can I add bots?
     
  14. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
  15. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Out of curiousity: Will this eventually support watercraft racing, Hydro-Thunder style, or aircraft racing? Or are those outside the scope of this asset? I'm not planning on making any games like those, I'm just wondering if they're planned since the asset is being built with versatility in mind.

    Also, that adventure/roguelike/top secret one intrigues. If you need a tester who is a rank amateur at Unity, feel free to sign me up ;)
     
  16. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @ayk > Well there's already a demo of hovercraft like physics in the engine, so I'd say it already contains pretty much all you need for an aircraft racing game. But I can add an example of that down the line, sure.
    And I've just added you to the list of beta testers, I'll let you know when the next round starts.
     
  17. ruuben

    ruuben

    Joined:
    Nov 5, 2015
    Posts:
    11
    Wow! This asset looks awesome as usual, congratulations again!

    Just one quick question that arises me after trying the demo (really great) : there is any support in this first version to make racing games without a lap circuit (ex. OutRun) or it can be possible to combine this with stuff (ex. spawners) from Infinite Runner (chunks of the circuit) ?

    Definitly I have to take a look closer to this asset too ;)
     
    ayk likes this.
  18. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @ruuben > There are no examples of non-lap based games, but that's something you could do.
    And indeed, combining that with the Infinite Runner Engine would probably be a good combo :)
     
    ayk and ruuben like this.
  19. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    I'm currently learning the ropes with Infinite Runner, but my hopes is to one day combine it with Highroad to make just such a game!
     
    reuno likes this.
  20. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    Hey reuno,

    Just purchased the asset, loving it so far. Just playing around with the demo's, the default cars that come with the package are moving backwards slowly when no input is pressed. Is this intended?
     
  21. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @juicyfrog91 > I don't reproduce that problem, is this like right out of the box? I guess one thing that could cause that is the friction between the ground and the vehicle, that could cause it to "glide" when stopped. To prevent that, you could add a Physics material to the the ground with a bigger friction, as both demo tracks have.
     
  22. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    okay So its a problem on my end, will load it up into a fresh project when I get back later today and see if issue persists.

    thanks :)
     
  23. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    Just opened up a fresh project with only the highroad engine (Unity 5.5.1f1), it only happens in the "circle" scene from the tutorial folder.

    EDIT: just tested other scenes and doing it in all of them. Doesn't do it in the spaceships, so imagine it is related to the car controller or maybe a certain input bug on my end or something.

    EDIT2: Changed:

    protected const float _minimalGasPedalValue = 0f;

    from 20 to 0 and it fixed the issue, but not sure of the negative consequences.

    EDIT3: Was just looking at the Base Controller and Car Controller scripts, was wondering if there was a reason that you put the "boost zone" on the base controller instead of the car controller?

    EDIT4: Found the negative consequence, can't switch into reverse when offroad sometimes
     
    Last edited: Feb 17, 2017
  24. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @juicyfrog91 > Alright, I still don't reproduce your problem, but I may have an idea. Are you by any chance using a joystick or gamepad or anything that could cause analog input values?
    If that's the case, maybe your input threshold for that device is too low (meaning that for example a "resting" joystick will often not be at 0,0, but rather at 0.0023,0.0014 for example, causing tiny input instructions if you don't up their threshold (you can do that from the Input Settings in Unity, for each axis).

    If that's not the case, it'd be interesting to add debug logs for current steering and current gas pedal values just to understand what's going on.

    I wouldn't change the _minimalGasPedalValue, it's the minimal gas amount that will be applied when you start pressing the gas pedal.

    Yes, the boost zone is on the base controller as that way it can be generic to all types of vehicles.
     
    Last edited: Feb 17, 2017
  25. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    @reuno I don't have any input plugged in other than mouse and keyboard, that was my first thought as well. Might change the input settings and see if it has any effect anyway, ghost driver/input perhaps.

    Will report back, thanks
     
  26. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hey Reuno, now that I have found this thread I thought that I might throw some ideas and suggestions out there...

    1. Engine Idle Audio Slot (maybe with exposed pitch parameter plus boolean toggle for random pitch between range)
    2. Skidding Audio Slot (maybe with exposed pitch parameter plus boolean toggle for random pitch between range)
    3. More surface types (like Offroad) for things like water and oil slicks.
    4. More track extras like Boost, Slowdown, Reverse Steering etc but with a Time Limit (exposed in Insepctor).
    5. A button (function) for repositioning the Player vehicle at last crossed checkpoint if it gets stuck or falls off a cliff.

    Actually I have already sorted a lot of this myself but thought it would be nice to see out-of-the-box I suppose :).

    About the only other query that I had was to do with getting Start Podium lights or getting some voice audio to coincide with the game start countdown (3..2..1...Race!). I think I found where to look at that so will get back to you when I have a chance to give it a go myself.

    I assume that weapons are out of the question due to ray casting on Y axis(?).

    REALLY like this asset and seem to lose loads of time play-testing!
     
    BossClaw, ayk and reuno like this.
  27. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > These are all great suggestions, added to the list!
    And I lose a lot of time play testing this asset, much more than any other one. I guess it's a good sign!

    Edit : weapons are on the list already. They'll come at some point.
     
    ayk likes this.
  28. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    Reporting back,

    yeah issue on my end, changed the deadzone of the joystick axis to .5 and it solved the problem. Strange, as I've got no analog inputs connected to my PC, ah well, at least it's not a problem with the engine :)
     
  29. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @juicyfrog91 > That's good news! I'm glad it's working ok now.
    Could it be that your keyboard is analog? Do such things even exist? :)
     
  30. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    It's mechanical, I imagine it's just an issue with a driver I've installed, had to do a couple of workarounds previously to get certain controllers working.

    Quick question, what's stopping the vehicles from driving off the edge of the ground, into the nothingness?
     
  31. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @juicyfrog91 > Usually what prevents vehicles from getting off bounds are simply really large border colliders. You can see them in the hierarchy view, they're nested under a Borders object usually. Really they're just 4 big invisible box colliders :)
    You can get rid of them of course, if plunging into the unknown nothingness is your thing.
     
  32. juicyfrog91

    juicyfrog91

    Joined:
    Feb 16, 2017
    Posts:
    8
    haha oops. Couldn't see any object in the scene view. Thanks for all the prompt responses
     
    reuno likes this.
  33. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hey Reuno, just another suggestion for the GUI to have actual vehicle names for Bots instead of Bot1,2,3 etc. Also with regards to my previous suggestion on vehicle audio stuff it would also be good to have the Audio Mixer Group exposed as it will allow users to better control player/bot audio levels. With my own Class for vehicle audio this made a huge difference when play-testing. Oh yeah, thanks again for helping me define if a vehicle is a bot or not as it also worked a treat for Bots having a different material at runtime :)
     
  34. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > I'm glad I could help :) Thanks for these suggestions, I'll add them to the list right away.
     
  35. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hey Reuno, I was thinking about this one yesterday so I thought that I might as well suggest a random vehicle selection button '?' for the lobby. I am no way near touching the lobby yet as I am just finishing off my 4th vehicle or I would have looked into myself before mentioning anything.
     
  36. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > That's a great suggestion, easy enough to implement :)
     
  37. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hey Reuno, I am just testing on the iPhone. Lots of fun and only one rough track :). Whilst playing I started thinking about how it would be good if I could somehow click a boolean button in the inspector to enable the race to go in the reverse direction. Kind of like one on the RaceManger (Checkpoints) and one on the AIWaypoints (Waypoints) I suppose(?). Just thought it would make it a bit quicker for a user to pull multiple tracks together fast (almost like two for one with minimal effort required on reversed one). Not sure of how the Start Positions could factor into a reversal. Anyway, just an idea I had and thought I mights as well mention something. Hehe, now back to play testing.
     
    josker likes this.
  38. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > That's a great suggestion! I'll add that to the list.
     
  39. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Awesome!!! Another one that I wanted to mention or enquire about that's been floating around the back of my head had to do with 'specials' like speed up (or slow down), and reverse controlling etc (as listed in a previous post) but to have it as a boolean toggle on their functionality script the option to be either 'standard' (e.g. sitting on the road and you drive over it or through it) or a 'pickup' that you could use at a chosen time via another button in the running game. Sorry... it's late and a bit vague but it had something to do with the fact that some 'specials' could be used in both standard and pickup categories. I had quite a few other 'special' related ideas too like warp to a few waypoints in front (or to one a few back), freeze (frozen for a specified time), ice (no friction / slippery driving), and wind (random blows or pushes player slightly sideways).
     
  40. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
  41. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hello Reuno, with regards to my previous suggestion for a button where the player respawns (from being stuck upside down or rolled over or fallen off cliff or into water etc) maybe add an option for an instantiated prefab (for an effect). Similarly with Bots there really needs to be something in place like a timer for if a bot is stuck (or velocity on RB is at a low value for a specified time) so that they also respawn on track at closest waypoint (also with public slot for instantiated effect prefab). I think that the latter will cut out some development time trying to work out why bots get stuck at a particular point on the track and repositioning AIWaypoints doesn't seem to be giving any clues towards a quick solution (amongst other things).

    As an aside... with the instantiated effect prefab thing listed above I am not sure if it would be better to have two 'effect' slots, one for death(?) effect and one for respawn effect. i.e.: You might use an explosion effect for death and you might use a warp in effect for the actual respawning.
     
  42. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > Great suggestions again :) Just added them to the list!
     
  43. indiedev37

    indiedev37

    Joined:
    Aug 31, 2013
    Posts:
    27
    Any eta. on the loopings that was mentioned in the What's next section?
     
  44. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @greb > I never give ETAs, I release stuff when it's done. Right now the loopings are working, along with a brand new, more physics based controller, but there's still work to do on it to get it exactly right. All I can say is that loopings will very probably be in the next release.
     
  45. indiedev37

    indiedev37

    Joined:
    Aug 31, 2013
    Posts:
    27
    @renuo > yea I understand the hesitation towards ETAs, no problem, great to hear it is soo far up the chain, anyways let us know if you need help testing and stuff, great product, the new controller sounds awesome... keep up the good work :)
     
    reuno likes this.
  46. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hello, I was just thinking about Bot difficulty levels whilst getting beaten at my own game (LOL) so I will throw this idea out there.... what if the car behaviour class (not in front of computer so I could mean the other class) allowed for a range (array?) of speed, turning, acceleration settings (instead of just the 3 or 4 that you have existing), so the user could set up difficulty levels for each vehicle, and then in the Race Manager class you could specify the Bot difficulty level. So in essence for each vehicle you could have say 10 speed settings, 10 turning settings, 10 acceleration settings giving you 10 difficulty levels for that particular vehicle.

    Another idea was with Single Player games and the lobby perhaps not showing or not allowing Bot selection but in fact just filling up the empty slots automatically (and then randomly after the max created vehicle prefabs has been reached). Maybe this could also be expanded so that in the Race Manager you could set it so that the scene will only run with Bots of the same vehicle type as what the player chooses in the Local Lobby.

    Anyway, just some thoughts and hopefully they make sense. I only just now solved a few physics problems so my gameplay has improved or changed dramatically. About the only other idea I had was to do with when a vehicle collides with something and perhaps having a prefab effect instantiate at the point of impact (like sparks with a scraping metal sound effect) but I will probably have a go at that one myself and see what other thoughts I have about it.
     
  47. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > Thanks a lot for this great feedback!
    I've added all that to the todo list. What physics problems did you solve? Were they caused by the engine?
     
  48. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hello, physics problems were ay my end and were basically just vehicles getting a bit stuck against walls, track-rails, and some track props. Adding some physic materials seems to have solved that problem, especially for Bots which now seem to beat me at my own game most of the time. This makes me happy as I recently adjusted the overall scale of everything (track/props) etc and didn't want to scale upwards again just to alleviate 'sticky' issues :).
     
    reuno likes this.
  49. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hello, something else I forgot to list with my last lot of ideas was a 'solo play' button on the Race Manager that would allow for Time Trial (solo) races where the player is trying to get the best time for a track. I haven't thought that through properly but you know what I mean as most racing games have that in them.
     
  50. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @MudPuppet > Time Trial is already on my todo list :)
    It just went up a little!