Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Intense Shooter AI

Discussion in 'Assets and Asset Store' started by techcloud, Jun 1, 2016.

  1. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    Intense Shooter AI v1.3

    Real Time Goal Oriented Action Planning with Unity
    New Generic Character Controller System
    New Goap Planning logic
    Check Forum Thread for more info

    Main Features
    - Advanced real time goal oriented action planning system
    - Physics based Locomotion System without root motion
    - Generic Gear System, gears are controlling the characters
    - Weapon and Throwable Gear Systems
    - Simple action/goal/sensor etc. scripting - Fully rigged 2 Shooter prefabs.
    - Various Character Control Systems
    - Sensors/Systems/Actions/Goals are scriptable objects which can be created in the editor mode for different behaviours of the same agent.
    - Various optimize options.
    - Example scene.
    - Many debug options.
    - C# code
    You can also buy IntenseTPS to get this asset for free.
    Mail

    Asset Store Link




    ChangeLog V1.3 (Main Changes)

    a-Goal oriented action planning

    -Goap logic of AI is much better now.

    -All of the actions,sensors,systems etc. are improved.

    -Planner chains actions starting from Goal conditions now. This gives much more flexibility to planning...

    -Actions can request different preconditions according to agent’s conditions at the actual planning time, they can also -store imformations at planning time and then use those informations when the action is activated if they exists in -the final plan.

    -Planner can chain all kinds of actions if requested while planning and more than once if needed. This behaviour is used on GoTo action of AI agents. There is not enough action to showcase this for now though but you can take a look at the action scripts to get the idea of the new planner action chain logic.

    -Runtime cover checking sensor is available now.

    -Enemy sensing is much better now with the new enemy manager sensor.

    -Some sensor-action etc base classes implemented to help developing new ones easier.

    -Blackboard is improved & used more efficiently


    b-Subsystems

    -Character control systems are redefined now and completely reusable.

    -Throwing and weapon systems are defined by using these controller systems.

    -Seperating them from one another opens up many opportunities. You can create new character controlling mechanics just by reusing them.

    -Usage of those systems can be described with a basic example from the project:

    -If a character wants to aim weapon, weapon's character driver (also new feature) asks various controller systems for new controller objects it needs, like look ik controller. Then it says that character should look at enemy or forward by using this controller.

    -So by using look ik character control system, you can create new behaviours like looking at friends, points of interests etc.

    -This kind of behaviour was started to be used in the previous versions but now all of the systems are seperated and redeveloped for flexibility & reusability.

    Some of the character control systems are :

    -Gear manager

    -Weapon manager

    -Throwable manager

    -Capsule collider manager

    -Cover manager

    -Locomotion manager

    -Animator layer weight manager

    -Limb ik manager

    -Weapon & throwable managers are just modified versions of the new base Gear Manager system, this system is defined to make characters use different types of weapons/throwables etc. simultaneously. Even superpowers can be implemented with the new gear system when the need arises.

    -You can discover more about the new gear-character-control logic by checking the weapon/throwable driver scripts.

    -Basically you can define all kinds of different character controlling gears by implementing new gear(weapon,throwable etc.) drivers if you need. When you get the logic behind it, the things you can do with it, is unlimited.

    -Locomotion manager is not using root motion now. It works smoothly both for input and navmesh and very easy to change locomotion behaviours at runtime with its controller object.


    c-General

    Environment tagging are better now. Its using unity scriptable objects.

    Character objects like weapon grenade bullet etc, have item id’s now and all of them are instantiated at runtime by using ids.

    Scriptable object instantiator window is more generalized now as there are much more scriptable objects you can use.

    Weapons & throwables are reading character positioning data from xml files now. New scripts are defined to help you make the new characters use available gears quickly and save everything at runtime.

    Debugging scripts are improved, and new ones added.
     
    Last edited: Dec 29, 2017
  2. giraffe1

    giraffe1

    Joined:
    Nov 1, 2014
    Posts:
    290
    Interesting stuff.
     
    techcloud likes this.
  3. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    You can check this and this reference for more information about the system.
     
    Last edited: Jun 2, 2016
  4. redchurch

    redchurch

    Joined:
    Jun 24, 2012
    Posts:
    63
    Picked this up. Seems really solid. Some questions:

    • Are there examples for setting up a player character?
    • How would I make the A.I. take cover behind objects?
    • Any plan for integrations for the popular controllers like Third Person Controller, Motion Controller by Ootii, UFPS, etc.?

    More videos and documentation related to these would be nice.
     
  5. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    AI cover system will be included in the next update. That is the plan.
    Integrations to other projects may be available if there are enough requests.
    More videos like tutorials and demonstrations will be available soon.
     
  6. EvilGremlin

    EvilGremlin

    Joined:
    Aug 12, 2016
    Posts:
    231
    Hey Techcloud,

    I've recently been looking at using Unity to make the game that I've always wanted to. A long, long time ago I actually came up with a similar AI concept. It never left the drawing board, due to monetary/development time constraints. But I am very happy to see that you are actually working on one of the things I am most interested in. Once I nail down my core game concept and get to work I will be picking this up.

    Obviously, you are under no obligations here. I would like to know if these things are possible now, if they may happen in the future, or not at all. If they are not I may just end up coding it myself, but you'd probably do a better job.

    1.) Cover (which you said being worked on, so great). This is a big deal for me.
    2.) Quick melee. I like to have my AI activate a melee attack before reloading in CQC. It just feels more realistic.
    3.) Hazard identification. I also like to have my AI be able to use hazards in the environment. Like explosive barrels near the player, etc.
    4.) Flanking the PC. I know this is a difficult one, but it is also one of my favorites.

    Anyway, I have no idea if any of these things are already included or in the works. I just wanted to know ahead of time.

    I also have a related question. I am new to this whole concept of purchasing and then integrating different people's pre-built work into a game. Historically, I've done design and coding. But never had to take two systems not really made for each other and incorporate them. How difficult is this going to be for me to integrate into Realistic FPS Prefab? I am confident I can do it, even just learning C#. I have years of C++ experience. I'd just like to know what I am getting in to here.

    Thanks.
     
    Last edited: Aug 12, 2016
  7. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    Currently next update is being improved, it will take some weeks though as I've just focused on this...My plans for shooter ai's are similar/same as the ones u mentioned... One melee hit sample action is already in the project. Using environment objects is not very different than the actions available, but I will try to include features like that in the next update. Flanking player would work better with team. Team orders hasn't added yet, but team orders like flank-cover etc can be given only by playing with goal priorities(just an idea) by a base-parental system. I can try to include it on later updates.
     
    EvilGremlin likes this.
  8. EvilGremlin

    EvilGremlin

    Joined:
    Aug 12, 2016
    Posts:
    231

    Nice. Thank you for the speedy reply. I am not too worried about the flanking. I can set that up. Thanks again.
     
    techcloud likes this.
  9. Deleted User

    Deleted User

    Guest

    Amazing work. Looking forward to further updates!
     
  10. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    941
    Hello. Can you define your own actions and goals in this asset? I'm just looking for a GOAP framework. Not really using it for an FPS game. If it's a generalized framework, that would be great.
     
  11. EvilGremlin

    EvilGremlin

    Joined:
    Aug 12, 2016
    Posts:
    231
    Is this compatible with Apex path? I know some AI solutions are not.
     
  12. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,586
    Is there a web demo ?
     
  13. FusionSticc

    FusionSticc

    Joined:
    Mar 16, 2014
    Posts:
    49
    Would it be possible to add in AI communication in some future update???

    EXTREMELY LATE EDIT: Would it also be possible to create a doc or tutorial on how to swap out animations or use our own anim controllers (When you have the time of course)
     
    Last edited: Jan 4, 2017
  14. ApexofReality

    ApexofReality

    Joined:
    Feb 14, 2016
    Posts:
    102
    Is this compatible with either easy weapons or rfps?
     
  15. reocwolf

    reocwolf

    Joined:
    Aug 1, 2013
    Posts:
    182
    Hi there. Very interesting. Have you thought of integrating with Ootii's Motion Controller? I'm pretty sure that if you talk with Tim, he'd be interested in helping with it.
     
  16. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hi,

    About map generation there is lot of parameters and this would need a proper video tutorial also.




    I have an issue because it seems the baked data seems not to cover higher surface, how to set up map parameters to cover heights like bridges or stairs ?


    The kit is good, but it has so much features, it really lacks detailled video tutorials about how to set up and explaining all available features.
     
    Last edited: Feb 14, 2017
  17. DanielKaravolos

    DanielKaravolos

    Joined:
    Jun 18, 2013
    Posts:
    2
    I am trying to figure out how the MapAnalyzer works. I created an empty scene with just a plane and one roadblock, all settings are the same as the examplestage. But somehow, the MapAnalyzer does not seem to recognize the roadblock as cover. Can anyone help me?

    EDIT: I found the solution. The Roadblocks in the example stage did not have a collider in my new scene (for some unknown reason) and the layer mask of the analyzer actually specifies which layers to look at, not which layers to skip. Furthermore, the layermask of MapAnalyzer requires to see both the ground layer and the cover layer.
     

    Attached Files:

    Last edited: Oct 26, 2017
  18. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    Next version will be out in the next weeks. Agents will find cover positions at runtime and map analyzer will be removed.

    Btw, You can get quicker replies if you ask your questions by email.
     
  19. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    You can't expect people be confident on your product when you disappeared one year no more responding to the fourm :rolleyes:

    The issue with mail support is that other buyers won't get access to solutions and informations you can give while forum allows that.


    Meanwhile i baught this one that looks the best Tps cover system actually and it gets continuous support.
    https://forum.unity.com/threads/third-person-cover-controller.472313/
    It's more simple to use and understand with only needed parameters.

    While your plugin is over complicated with too much settings for AI, and video tutorials are lacking.
    Another big downside on your plugin is characters setup and animations is too complicated to get it working with our own characters.
    Anyway nice to see you back, and perhaps i'll try your new version lol
     
    Last edited: Oct 29, 2017
    techcloud likes this.
  20. DanielKaravolos

    DanielKaravolos

    Joined:
    Jun 18, 2013
    Posts:
    2
    I like this system and added some behaviours of my own, but sometimes after a change the AI cannot seem to find its weapon anymore and everything gets bugged (the arm positions are weird and the AI sometimes still shoots despite lacking a gun). I cannot predict when this happens and it is a pain to fix. Has anyone else encountered and solved this?
     
  21. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    New version is waiting for unity approval. Hope you guys will like it when it's out.
     
    zenGarden likes this.
  22. GWStudio

    GWStudio

    Joined:
    Sep 27, 2016
    Posts:
    109
    how to integrate with ufps ???!!
     
  23. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    There is no special thing about it, just import both of the projects. Only damaging and AI detection logic must be altered on both sides.
     
    GWStudio likes this.
  24. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hi @techcloud,

    That's a big improvment over past version, it's now really usable :)

    On a side note you could have made a scene with a player controller using Unity standard Assets TPS and FPS controllers instead of proposing only a AI vs AI scene.

    A scene example with melee character using GOAP ?

    Do you plan some video tutorials, so we would not need the manual , about setup our own characters AI, setup our own player controller to work with the plugin AI ?

    Also UFPS is very popular, do you plan contacting the author to make some integration ? Or make some short text or video tutorial integration ?


    Anyway great work on the new version.
     
    Last edited: Jan 3, 2018
  25. GWStudio

    GWStudio

    Joined:
    Sep 27, 2016
    Posts:
    109
    any tutorials or tips for making this integration
     
  26. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    Thank you... In fact, this version is a big step up, I didnt have enough time to really show all of the features though.

    You can try Intense Tps Demo(Windows), it is using the same AI => Demo (Windows)
    I dont think there will be a controller inside the project though.

    Okay, I will try to make a video about importing new character.
     
  27. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    You already setup a character the player can control on your last demo.
    Could you include that scene in the plugin package ?

    Your dynamic cover detection with 10 characters on the scene could sometimes make 10*10 = 100 raycast per Update
    Code (CSharp):
    1.         public static bool CheckCoverAroundPos(...)
    2.         {      ...
    3.             for (int i = 0; i < CoverCheckProps.RayCount360; i++)
    4.             {  ....    
    5.    if (Physics.Raycast(ray, out hit, CoverCheckProps.RayMaxDistance, CoverCheckProps.RayMask))
    6.                 {
    Letting the AI go Idle or Walk around while asking some RaycastManager to calculate 10 Raycast spread among 10 frames would have been lot better for performance.

    I got a request to use the plugin in some arcade game, when AI is spawned it always know the player position without using detection module ? Could you add some example scene setup ?

    I noticed the AI can decide to walk to a cover that is close to the player while putting it into danger. Is there some setup to avoid that ?

    The plugin will need more users testing, if you turn on "functional debugger" script there is a nullReference error :(

    AI navigation should use a Raycast per frame to know there is other AI blocking their way instead of getting AI pushing other AI
     
    Last edited: Jan 3, 2018
  28. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    There are some optimization options (I know it can be improved though) of dynamic cover sensor, and there is always a limited number of agents that can be put into scene for these kind of agents, if you check the development process of some games, they aim for smooth gameplay with 5-10 etc. agents and they modify the agents like so.

    You can change vision sensor detectable layers to let the agent see through walls if you want it to know enemy positions. But some of the actions must be modified to get along with this behaviour, for ex. agent will try to fire through walls.

    I've tried to add more sample actions than less but clever actions to guide you implement your agent behaviours. For ex. if you want to make the ai choose better cover positions, you can change Confidence field of AIMemInfoCoverPosition with better/more parameters like checking the distance with every available enemy.

    AI's are using Unity navmeshagent, They should avoid each other without any other checks. I've not seen that kind of behaviour.
     
  29. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Still too many Raycast per frame can be critical if there is too many AI.
    Keeping the most important few ones in Update() while all others are managed asynchronously per frame is a better way to handle performance.


    I thaught all detection modules could be enabled and disabled as you wish.

    Navmesh doesn't have any smooth character avoidance, instead it's similar to colliders sliding among each others until you code some avoidance using raycast.


    The AI showcase gameplay is slow , not carefull as it can stand or walk without paying attention to ennemy fire and without using covers.
    It's far from dynbamic and cautious AI like "Uncharted" games, tt's almost looks like bullet proof robots gameplay, how to change behaviours ?
    What bout a video tutorial about creating new Actions, chain actions, planners, goals ?
    Why not adding ToolTip to get quick help about all settings available ?




    It is possible to create different behaviours as those or get some scenes examples ?
    - long rifle AI , always stay at distance and using covers, out of cover only to fire
    - shotgun AI : don't use covers , approach player to close range when possible
    - cautious Melee : uses covers to approach player in a safe way, use only melee attacks
    - Ranged and Melee : Use ranged fire as priority, if the player runs close range AI uses melee attacks


    Anyway, i really like how easy to setup new covers with tags and dynamic covers is a big improvment over previous version :)
     
    Last edited: Jan 4, 2018
  30. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    If you spawn many more AI you can sometimes get this erroron RangeWeaponsDriver
    Code (CSharp):
    1.   StartCoroutine(SmoothSetAimPos());
    Code (CSharp):
    1. Coroutine couldn't be started because the the game object 'M4A1(Clone)' is inactive!
    2. UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
     
  31. Neviah

    Neviah

    Joined:
    Dec 1, 2016
    Posts:
    235
    Will you support Photon integration?
     
  32. paulojsam

    paulojsam

    Joined:
    Jul 2, 2012
    Posts:
    569
    is this compatible with ultimate survival
     
  33. GWStudio

    GWStudio

    Joined:
    Sep 27, 2016
    Posts:
    109
    is this compatible with RFPS
     
  34. GWStudio

    GWStudio

    Joined:
    Sep 27, 2016
    Posts:
    109
    CAN THIS INTEGRATE WITH RFPS????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  35. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    u guys keep asking if this project is compatible with another project or not. This is a big project with many npc interaction systems like shooting-locomoting, I mean it has all the basic systems of a shooter npc. There are many packages out there, project cant support evey single one of them.
    However, shooter npc behaviours are all using unity built-in components. For example, detections (cover-vision etc.) are being done with unity colliders, or health draining is being done with a simple script. A decent c# programmer can get the picture of the npc system in a couple of days, after that he/she can start to improve it or define his/her own goap npcs from scratch with project's isolated goap scripts. Thank you guys for your support...
     
  36. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    This means the plugin is not intended so much for non coders, right ?
     
  37. techcloud

    techcloud

    Joined:
    Jul 8, 2015
    Posts:
    72
    it just means that non-coders should not wait for a miracle from this package :)
     
    zenGarden likes this.
  38. id0

    id0

    Joined:
    Nov 23, 2012
    Posts:
    455
    I have a couple of questions:

    *How difficult is setup single character from the scratch? How many scripts does it use?

    *Is it hard make some character from enemy to friend and vice versa? How does it work in this system?

    *I have a npc in game, so how difficult is it to integrate this into the system? Like character stand and talk, but only before he was damaged, and add behavior like "character walk to point, stand, smoke, then go to next point - sit on chair, sleep, etc...

    I have some programmer skills, but I would like to make it all easier.
     
  39. unity_DarkAngel

    unity_DarkAngel

    Joined:
    Sep 21, 2018
    Posts:
    8
    hi
    I need to integrate this AI with my character system (Game Kit Controller) please help me on this.
    where in code I have to add damage apply?
    and is it possible I upgrade to intense TPS?
    thanks