Search Unity

Shooter AI – The Ultimate Artificial Intelligence Solution

Discussion in 'Assets and Asset Store' started by nikita68, Oct 8, 2013.

  1. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289

    Ever dreamt of the perfect action packed FPS, or an advanced tactical close-combat strategy game, but always stumbled across the ever known problem of having to program overcomplicated AI? After 5 months of development, Gateway Games is proud to announce Shooter AI, the AI solution to ANY shooter based game, be it stealth, strategy or FPS, Shooter AI fits perfectly.

    Shooter AI takes less than 5 minutes to deploy (without a single line of code), and gives you fully dynamic AI capable of adapting to any environment and situation. Another vital aspect of the AI is that it actually feels fear and adrenaline, meaning that each AI character reacts totally individually (like a personality), allowing a small scene to be replayed many times over without the AI repeating itself. Shooter AI fully handles all animations and Inverse Kinematics (e.g. the hands grab the gun), so the only thing you need to make is sound, everything else is fully finished. What makes Shooter AI really stand out is the ability to customize it to ANY situation, allowing you to insert scripts at vital events, such as when the player is first seen. If you’re really good, you can reprogram the whole brain, as Shooter AI is written completely in C# with no DLLs, thus making it fully deployable with any platform. By the way, it can also fight each other, letting you create epic coop missions where the player fights alongside AI against a common enemy.

    Did I mention it works out of the box with UFPS, has a 27 page manual, gives you a choice between 2 different pathfinding systems, and ALL features work with Unity Free?

    Here are a few demos:
    AI vs AI
    Shooter AI with UFPS (Ultra hard)


    We have a YouTube tutorial playlist:
    YouTube Playlist

    Here is the manual:
    Manual


    Feature list:
    - Dynamic shooter AI, with advanced cover finding
    - Deployment in less than 5 mins; Drag-and-drop usage; All features work in Unity Free
    - Choose between Unity Navmesh or A*
    - 27 page manual
    - Eyes, ears and tactile input feed the AI brain for total comprehension of the environment
    - Dynamic fear and adrenaline settings never let the same situation play out twice
    - Ability to customize each and every AI character so that they react in their own individual way, though default values already allow fully operational character
    - Melee attack: make AI characters fight only with melee weapons, or use their gun (when they run out of ammo) to suicidally charge; as usual everything works right out of the box and ANY weapon can be used as a melee armament
    - Shooter AI takes over all animations and IK, so you just concentrate on making the perfect model; AI procedurally reacts to hits, falls and gets back up!
    - Fully open source C# code; no DLLs; all properties can be edited in-game
    - Insert own code at vital events, to make the game create the atmosphere you want
    - AI powered characters fight against each other or together
    - Whole system modular, making it possible to fully exchange components
    - And so, so much more


    Shooter AI runs smoothly at 60 FPS with up to 20 unoptimized AIs at the same time (PC, no VSYNC), though this limitation depends on Unity and can be greatly optimized using basic parameters. We have tested successfully 24 AIs at over 140 FPS using medium poly models.


    $f7f73b3e-1a84-4fe8-a4d8-598c9a87d1d8_scaled.jpg $0a6caa93-ca02-4dbc-b631-2e8431d0cb65_scaled.jpg




    L:atest version:

    1.5.1
    - IK bugs
    - Angles being measured from incorrect locations -> weird animations
    - Fixed health manager y-scale bug
    - Added auditory (only max hearing distance) and sight gizmos
     
    Last edited: May 14, 2014
  2. nixter

    nixter

    Joined:
    Mar 17, 2012
    Posts:
    319
    I played your demo. It looks good, but the group on the upper level always seemed to lose due to two or three of the members waiting until the enemies were right on top of them. They didn't seem to react to the sounds of combat and thus were always ambushed.

    Is there a difference between the two groups AI setup?
     
  3. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Hello! Thanks for playing the demo! The difference in setup is zero, BUT the demo shows how important location is and how critical it is to notice the enemy quickly.

    Most of the time when the AI on the top gets ambushed. its because they were puzzled by where the shots came from, as the top team was grouped together whilst the bottom team was more dispersed, meaning the bottom team attacked from more than one side thus puzzling and stunning the top AI for the few vital seconds that decide whether they live or die.

    Try playing the demo a couple of times: you will see some very interesting results sometimes.
     
  4. Lypheus

    Lypheus

    Joined:
    Apr 16, 2010
    Posts:
    664
    Saw some of your intro video, the weapon creation wizard seems to imply you support ranged "gun" type weapons only - does this system support thrown weapons and/or melee?
     
  5. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Unfortunately, at this stage Shooter AI doesn't support melee attack, though i will implement this feature either before release or in an update.

    To create thrown weapons, you can make an "gun" object that doesn't have a model, but uses a "bullet" that looks like the thrown object. Then add a little script that makes a throw animation when the "gun" is fired. That way you can make thrown objects, though if this feature needs simplification, i will also include it either before release or in an update soon after.

    EDIT: Melee system now integrated!
     
    Last edited: Oct 11, 2013
  6. Mementos

    Mementos

    Joined:
    Sep 25, 2012
    Posts:
    79
    Could you may show the cover system in depth? =)
     
    x_african_warrior_x likes this.
  7. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Sure!

    The cover system was designed to cope with dynamic environments so that you can make the level dynamically change in game, with the AI adapting to it.

    Basically, the AI first shoots a specified number of rays into a field of view (i saw that 360 degrees made the most realistic results, as us humans have very good spacial awareness, even behind us), and checks whether any of them hit anything. Any ray that hits something gets a second ray starting from that point, that goes to the object that we're trying to hide from. Any ray that gets a hit between those 2 points is a potentials cover, though that doesn't guarantee that its good cover. Then from each of those points we send 3-10 rays that are +- 1 meter (or so) to check whether the cover is large enough to cover a whole character. Any potential points that go through all those tests then get stored in an array, and a small algorithm picks out the best cover (based on stuff like distance, how many objects between that cover and the enemy etc..) and then uses that Vector3 as the go to point.

    The cover function gets called every few seconds (depends on fear, adrenaline etc..) as to simulate that, just like humans, that spacial awareness is isn't always perfect.

    Though this system often gives out good covers, it sometimes picks poor choices, though that also simulates human behavior.
     
    x_african_warrior_x likes this.
  8. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Any requests on how to implement melee fighting system?
     
  9. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Yes! I was about to ask if this is suitable for melee fighting?
    Also, how many NPCs can it handle without a big impact on performance?
    Finally, how is pathfinding handled? Is is possible to use my own pathfinding system (which I absolutely need because I'm working with voxel terrains generated at runtime)?
     
  10. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    1) It can handle usually up to 10 unoptimized fighting AI, though you can have more in the background that don't fight. You can probably increase this number if you use low poly models and optimize the bullets a bit more. I once ran a test of 32 vs 32, but the frames were around 25 FPS because of the sheer amount of bullets.

    2) We're using the standard Unity's built-in NavMesh, but the whole system is modular, meaning to swap it for another pathfinding system, you'll just need to change 5 functions (around 20 lines of code) so that the brain uses your pathfinder. I'll make this system even easier either before release or in an update soon after.

    Regarding the melee fighting: i haven't yet started making the system (though it shouldn't take too long), and wanted to know what functions should it be able to do?


    UPDATE: Can now support up to 35 unoptimized AI, 60-100 if fully optimized + low poly models
     
    Last edited: Feb 11, 2014
  11. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Just finished the first revision of the manual!

    Manual!
     
  12. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    UPDATE: Just added full melee functionality, with customizable animations and VERY quick setup. You can literally use any gun as melee weapon, if the need arises, or make the AI only melee meaning you could breath life into RPG AI, so that it really feels like they are alive.

    Please keep sending in your requests!
     
  13. TheNorthridge

    TheNorthridge

    Joined:
    Jan 4, 2012
    Posts:
    193
    I think demos showing compatibility with Realistic FPS Kit and UFPS would really drive sales :)

    That saying, im already quite interested as it is :D
     
  14. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    I will try and post some demos next week. Any feature requests?
     
  15. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Good to hear there is a melee functionality! I'm actually making a RPG so I would use that intensively. I'll be waiting for the new demos. I hope you planed to do a demo showing melee AI :)

    I also agree with TheNorthridge, it would be great if it was possible to make it compatible with UFPS (every people who are making a game with a first person camera are using UFPS, really).
    Actually the only thing I think about is that UFPS has is own "Damage Handler" script which receive damage from weapons and manage character's health (so basically every NPC has it). That would be really nice if your system was able to work with it out of the box (something like if GetComponent<vp_DamageHandler>() != null then do something special with it), or at least replace it and still get damages from UFPS weapons.

    I think such functionality will be appreciated by a lot of people!

    If the melee works well and if it's compatible with UFPS then you have a customer! :)

    EDIT: Could you tell me what path-finding methods are needed by your system? My path finder basically has only one method: PathFinder.ComputePath(Vector3 start, Vector3 end). Would it be enough to integrate it with your system?
     
    Last edited: Oct 11, 2013
  16. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    I already started looking into UFPS and it seems like it uses raycasts to deliver shots (whilst we use real bullet objects that simulate bullet drop, ricochet etc..), but i already worked out a system that should work with it, though i may need to modify/replace the player's health management.

    EDIT:

    For the pathfinding system you need the following methods:
    - Compute the paths
    - Make the AI stop
    - Make the AI go again

    You will need the following attributes:
    - Radius, height, speed, agularspeed (though you can manually calculate that)
     
    Last edited: Oct 11, 2013
  17. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Nice to hear!

    About pathfinding, that shouldn't be too hard to do.
    About methods "Make the AI stop" and "Make the AI go again" you mean a component that makes the NPC follow the path?
     
  18. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    That and also eg. make speed 0 when it should stop and then make speed "n" when it goes again.
     
  19. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Ok, but what about obstacle avoidance? Will it still be handled by your AI system?
    Concerning path-smoothing I think I will have to do it myself (seems logical as I have my own pathfinder), right?

    Can't wait to see the release on the AssetStore!
     
  20. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Obstacle avoidance, if not using Unity's NavMeshSystem, has to be made by you unfortunately, as we can't know exactly what type of nav system you're using.
    Yes, path smoothing will has to be done by you as well.

    On a different note, Shooter AI will be compatible with UFPS out of the box (around 2 mins setup to get the tags set)! Right now finishing a small demo which should be up in a few days.
     
  21. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    UPDATE:

    - Put up new demo featuring UFPS and extremely hard enemies
    - Updated manual on how to setup up melee and UFPS
    - Improved brain attack reaction
    - Added head movements
    - Improved settings to implement own nav system
    - fixed bugs
    - And finally submitted it to the Asset Store
     
  22. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    I'm interested in your AI system and i want to know if the ai reacts if he see a dead body. Like searching an enemy or something like that. Because i'm creating a game with some stealth.
     
  23. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Thank you very much for your interest!
    It doesn't right now, though that is easy to implement and can be easily customizable (once its out we can try and fix something up together). Shooter AI is perfect for stealth games as the AI reacts well to unknown/new strategies, and reacts accordingly (sometimes outsmarting the player).
     
  24. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,393
    hi, is there a link yet? thanks in advance!
     
  25. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Sorry, it still pending review by the Asset Store staff and i will provide a link as soon as possible.
     
  26. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    413
    Some News ?
     
  27. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Unity didn't like my description for the Asset Store and i had to resend a new one so i guess another week of waiting :D
     
  28. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    413
    Week is over, some News ? ;)
     
  29. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Well, the Asset Store team is reaaaaaaaaally trying to find all defects. One week at a time :D Hopefully this will be the last unnecessary week of waiting for a reply.

    On a side note, the rest of the Gateway Games team is currently working on a small project that will incorporate UFPS and Shooter AI for a funny, over-exaggerated FPS, so for the next month i'm open up for any request for Shooter AI (also if anybody has any special projects that need some Shooter AI modifications, don't hesitate to contact me).
     
  30. RvBGames

    RvBGames

    Joined:
    Oct 22, 2013
    Posts:
    141
    Nikita, would it be possible to discuss your engine in private? I just sent a private message to you. Thanks.
     
  31. someunityguy

    someunityguy

    Joined:
    Jun 28, 2011
    Posts:
    35
    Love the ease of use and simple set up.
    but i was curious about the Engagement Scripts - have any more examples that we can build off ?
     
  32. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    @someunityguy - I was planning on adding some more Engagement Scripts, and i'm all up for any suggestions!

    IMPORTANT NOTICE FOR ALL DEVELOPERS: We now offer anybody who has a promising project that needs Shooter AI to contact us, and you may get a free copy of Shooter AI, and we will work closely to implement it in your game! As a return, your finished game will have our logo at the start and you can pay the price of Shooter AI once you start earning money with the game (this part is negotiable).

    As a side note we're currently optimizing Shooter AI, and it now runs with 4v4 stable at 200FPS (no vsync, 175 FPS min). We're hoping to get epic battles possible.
     
  33. someunityguy

    someunityguy

    Joined:
    Jun 28, 2011
    Posts:
    35
    Err off the top of my head
    Flee (run away) - Panic - Suicide Bomb - Flank Attack - Kill Weakest - Find Reinforcements - Hide and take potshots.

    Would be nice and shiny to have the ability to stack engagement scripts and weight there probability's in the editor.
     
  34. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Great ideas! They'll be in either in this or next update! Currently making a Team Controlling Panel, so you can edit parameters of all AI of a team from one panel. Any suggestions appreciated.
     
  35. OutSpoken_Gaming

    OutSpoken_Gaming

    Joined:
    Oct 14, 2013
    Posts:
    91
    Your web player demo with UFPS is giving a corrupted file error.
     
  36. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Thanks for the heads up! I'll fix that as soon as i can.


    EDIT: Fixed
     
    Last edited: Nov 11, 2013
  37. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    any word on this?
     
  38. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Last edited: Dec 2, 2013
  39. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    893
    the system compatible with third person character controller?

    @Team Controlling Panel, so you can edit parameters of all AI of a team from one panel.

    player team not implementable?

    enemy team> is is captain and followers
    > weapon use order, I mean weapon use tactics
     
  40. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    1) It is compatible with any player controller, though we recommend UFPS
    2) Exactly, and you set the strategy for the team.
    3) It is possible (and easy) to make the AI fight on the side of the player.
    4) Yes, enemy team has one captain and the team follows the strategy based on him.
    5) For melee weapons, sure
     
  41. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,393
    hi im interested

    how do you handle like zombies which done use guns or melee weapons or characters with multiple weapons?

    with multiple weapons on a character how does it handle if lets say out of ammo with one weapon, does it automatically switch to other. is there way to give order (priority) so its selects one over the other, like for example by amount of damage it can do, etc.

    what about like granades can it handle weapons like grenades

    and like swords, bow and arrows

    can it do melee fists, what about bats, etc...

    can multiple characters of different class on the same team cordinate the attack. slightly different ai, one would go in other flank, one would ambush, etc... can it handle that kind of stuff.

    could they coordinate the order that they attack and handle knowing others are wonded and provide suppressive fire

    could they be used to heal wounded. so if it spot friend that is wounded would it be able to go heal and then attack.

    i guess how much is handled automatically and how much could api handle and how much would require expansion and does it have like api for ai expansion / callbacks...

    thanks in advance
     
    Last edited: Nov 15, 2013
  42. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    1) Melee also includes hand movements/attacking.
    2) Currently, there exists no system for multiple guns, though the API would allow it very quickly. Also this is a good idea, i might try and iplement it in one of the upcoming updates.
    3) Grenades are also currently not implemented, though on my to do list and possible to implement on your own with the API.
    4) Swords = melee; bow and arrow = ranged weapon (just put in custom animations)
    5) Fists are easily implemented, bats are melee
    6) I'm currently working on the strategic side of Shooter AI, but it is already possible to do this using engagement scripts/your own scripts. This should be available by the next update sometime next week.
    7) This may be a bit harder but yes
    8) That could also be made with the API, though that would be a nice feature.
    9) Yes, all used scripts can be directly accessed and modified, and everything is nicely commented + 26 page manual. Expansion was our first priority with this system and we tried to make it as easy as possible.

    Thanks for the feature ideas!
     
  43. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,262
    In the ufps demo the head is jiggering so much it is Not looking nice.
    Also i found the Demos are to fast and the bullet Trails are irritating.
    Will you do a more RPG like demo with melee too?
     
  44. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    I understand what you mean, and the upcoming update (next week) it will be fixed (just finished it yesterday). The head movement is very smooth and realistic, especially if you rig the character nicely.

    I was going to make new demos in the next few weeks, also demonstrating melee.

    Thanks for your interest!
     
  45. jellypixel

    jellypixel

    Joined:
    Jul 16, 2013
    Posts:
    148
    interesting
     
  46. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,129
    Avoid using the bullet trails, they are unnecessary and the performance is affected.
     
  47. Venged

    Venged

    Joined:
    Oct 24, 2010
    Posts:
    500
    Is there a tutorial video and or documentation that explains how to setup the player ti attack the AI and vice versa?

    I would be using this AI system with a mecanim player controlled system like Character System or the likes off. I need Third Person Mecanim Player Control so the UFPS system won't work for me.

    Thanks,
     
  48. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    1) The first video in the playlist (Shooter AI Quick setup) describes how to do this. Playlist

    2) Shooter AI is compatible with UFPS, but doesn't force you to use it (Shooter AI doesn't even need a player character). The system that you want to use for player control is totally up to you, as long as it hooks into the API (very simple, basically just one function)

    Thanks!
     
  49. Venged

    Venged

    Joined:
    Oct 24, 2010
    Posts:
    500
    Thanks for the quick response. What i'm not clear about is how I would register attack damage for my Player to the Shooter AI NPC and vice versa. What scripts to attack to the Player ect...



    I will look at the link you suggested. Thanks
     
    Last edited: Nov 17, 2013
  50. nikita68

    nikita68

    Joined:
    Feb 8, 2013
    Posts:
    289
    Attach the void "Damage" to any script on the main parent object (that contains the collider) with one parameter that inputs the amount of damage.

    eg.
    Code (csharp):
    1.  
    2.  
    3. void Damage(float damage)
    4. {
    5. //your code that handles the player's health
    6. }
    7.  
    8.  
    If your using a custom bullet setup (though we highly recommend using the built in), you just need to send message "Damage". Attach this to the bullet.

    eg.

    Code (csharp):
    1.  
    2.  
    3. void OnColliderEnter(Collision col)
    4. {
    5. col.gameObject.SendMessageUpwards("Damage", extraHitValue, SendMessageOptions.DontRequireReceiver);
    6. }
    7.  
    8.  
    WARNING: for better results look at the script "BulletHealthExtras", that handles A LOT of bullet stuff such as dust and collisions.
     
    Last edited: Nov 17, 2013
unityunity