Search Unity

[UPDATED] ICECreatureControl v1.4.0 - creature AI for enemies, animals, monsters, zombies ...

Discussion in 'Assets and Asset Store' started by icetec, Aug 11, 2015.

  1. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Hey there Currently The Orientation Doesn't Work With Unity terrain (Atleast For Me ), So If You Are using A Mesh For terrain then be Sure It Has A collider on It Mesh collider Will Work best As it Will Cover All high And Low Point of Ground , Now Not Set that mesh On Default Layer(You Can Change It to other ) and in The creatures Essentials Settings Set body orientation To Biped Or Quadruped According to Your Creature (Quadruped For Four Leg creature ) now Set Ground Handling To raycast and Choose the layer under raycast to what You Choosed For that terrain Mesh (default Or other If You changed), now every Thing Will Work Fine , but Ya it somehow doesn't Work With Unity Terrain Atleast for Me .
     
  2. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    191
    Thank you for the answer. Yes, I am using Unity terrain with no plans to switch. I will leave it as is for now then.
     
  3. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Most welcome :)
     
  4. jessejarvis

    jessejarvis

    Joined:
    Aug 9, 2013
    Posts:
    303
    Maybe my question was overlooked month ago, but does this work with UNET/uMMORPG now? Or at least UNET even?
     
  5. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    AI seems to Sync, at least animation and position wise. Have yet to test things like damage, stamina, hunger, etc.
     
  6. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Hello!

    So , how do I completely remove ICE from my project? seems to be not enough with just deleting the ICE map.... Toolbar still there..
     
  7. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Should be enough. try rebooting Unity.
     
  8. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Greetings folks. We are getting closer to being ready to push out ICE now in our project. We have been doing Dev live streams lately for Astral Terra. Yesterday I did a 2 part stream on ICE integration. I did these for the benefit of our own Astral Terra players but also for Unity devs that may have ICE and are trying to learn the system. I actually did a 1 1/2 hour stream the day before but it pooped out and YouTube crashed it. These videos go a little faster but do cover settings for an active combat AI agent and a merchant AI agent.

    Pt1:
    <iframe width="560" height="315" src="
    " frameborder="0" allowfullscreen></iframe>

    Pt2:
    <iframe width="560" height="315" src="
    " frameborder="0" allowfullscreen></iframe>
     
    Mad_Mark and julianr like this.
  9. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Looking for feedback on performance. ICE is killing the performance right now with only a medium amount of agents active. I have 91 FPS when I spawn onto terrain with ICE off. I have 54 FPS when spawning onto the terrain with ICE active. Enable/Disable Pooling Coroutine does nothing, I suspect since pooling is broken. Enable custom garbage collection actually made performance worse so that is turned off. Coroutines is enabled on all agents and if disabled performance is way worse. I have a total of 15 agents walking around which consists of 6 different models/characters. When opening the profiler it looks like the loss in fps is due to Ice behavior update.

    Open to any ICE optimization options or tips I may have missed.
     
  10. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Hmm, this could be caused by any number of settings, so without seeing your interactors and settings this could be hard to pinpoint.

    Here are some tests that I did, on a flat terrain with 2 different characters:
    66 FPS with 120 ICE characters active on screen.
    ICE Stress Test 01.png
    165 characters on screen @ 47 FPS
    Stress Test 02.png

    79 on screen characters (188 total active agents) @ 39.8 FPS
    Stress Test 03.png
    Tomorrow I will sit down, and make a list of settings that could impact performance, however I encourage @icetec to implement some kind of warning that does this, maybe put a little exclamation point on some of these settings.
     
    icetec, Tethys and lod3 like this.
  11. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Tonanbora and I are watching your videos. I really dislike the Game show logo! Lol

    Could the raycasting be a problem? We have not had such huge differences, even with more agents spawned. We used navmesh and did not use procedural terrain. Might help you narrow down the issues. We will be testing with more complex terrain and npcs soon. Will post our results.
     
    Tethys likes this.
  12. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I think such very simple tests with simple level and simple AI (i also made) are biased.
    This is not a real game example with terrain, shaders, trees , colliders or complex Ice Creature settings and AI.


    Astral Terra is a really nice game, and this big game is the best way to test ICe plugin in big game usage.


    There is lot of scripts and components, and i don't know for example if you use Unity Messaging with ICe plugin, or how much Raycast are done per creatures and per Update() call for navigation and when using obstacle feature ?

    You could do those tests to determine what is wrong perhaps :

    1) Can you deactivate network and test the game ? to compare with offline mode.

    2) Compare with very simple AI behaviour
    Make a simple AI with ICe plugin that runs and stay close to player on range , return to home when you press a key.
    And compare performance.

    3) Code above simple AI, drop same number of characters on level.
    Compare frame rate with your actual game test.



    Also consider other stuff to check :

    - Unity message is slow. If you use it on your AI it can slow down stuff.

    - Unity Navmesh is slow when you have several navmesh agents
    ( A pathfinding Pro plugin for example is multithreaded and more efficient)
    When there is no obstacles between creatures and player, switching to simple physics movement and turn off navAgent is another way to improve performance.

    - Raycast or Sphere cast :
    How much are casted per creature and per Update ? this can really drop down performance.
    It can be used for ground checking , but if you use navmesh it's not necessary.For covers features i didn't check the code if it is Raycast based.




    Another way peformance can be improved is to call some Tick() function each 3 or 5 frames to call Ice plugin behaviours and rules, instead of Unity Update(). Keep Update() only for real time stuff like character rotation to player for example.
    You could also have some AIBalancer gameobject that checks number of AI around player and visible , and change in real time the Tick() attribute per AI.


    Anyway, i'm interested about what you can find about performance, i'll take a look at code Ice plugin also.
     
    Tethys likes this.
  13. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Thanks for the suggestions. I have the same creatures using raycasting in a home rolled AI setup and have much better performance for some reason(with Photon as well). My AI system uses similar motion, with a raycast out for valid waypoint placement on ground. If valid it places a waypoint, with velocity and animation the MOB is moved to the waypoint. It's very similar to the Rigidbody motion option we are using in ICE. I ask about optimization ideas within ICE because I have seen similar issues in my VR project, though currently things are running pretty smooth. I'll report back tomorrow after I have had some more hours to test each mob individually to see if there is a specific one that is impacting performance due to something that is setup on them. I remember in the past there has been a issues with using something that would just kill the FPS for some reason(an no I dont have debug enabled on everything :p).
     
  14. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Haha, indeed, me too. I'm on the fence with streaming software right now. I have used Gameshow for 3 weeks now but it poops out and has issues sometimes (and I do have a really decent rig) so I am not real keen on paying for a license yet. Totally up to suggestions if you guys can recommend something solid.
     
    Teila likes this.
  15. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Hey Guys I am Still Waiting For RFPS To ICE Damage , My RFPS character is Not Able To Damage ICE Creature . Can Anyone Help Here .
     
  16. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    1 thing I discovered today that improves performance is disabling Dynamic Vital signs. This makes sense since IF they are loops that are checking very frequently if not every frame. With just one type of MOB, 4 instances of them on the terrain, turning that off yielded back about 6-8 fps on average. Now consider that over multiple mob types and the number of mobs being in the teens....

    Disabling Obstacle Avoidance with Overlap Prevention and Deadlock prevention actually does NOT reduce overhead, at least not enough to see a difference so far. I'm back up to 12 mobs already and am holding at about 70-72 fps after turning off Dynamic Vital signs on MOBS (from 54 FPS on the other tests). Going to try to still squeeze a little more performance out if I can. Disabling the Patrol mission actually reduced my FPS somehow haha. So, leaving that enabled on mobs. Would love to get the update from ICE that fixes the Pooling bug - I have to imagine we're going to see another performance boost there and a reduction of the instantiation lag when adding mobs right now.

    ** Multiple Interactors on an Agent impacts performance. I discovered my Stag and Doe were helping kill performance, and the Barghest as well, because they all react to both Player and Enemy. I have the animals running from players and enemies. By disabling this and Dynamic Vital Signs I can now have 14 mobs on the terrain with 72-74 fps (all tests done from the same position looking at the same spot). These are disabled for now but it is disappointing we cannot have multiple interactors without impacting performance that bad. I also had to reduce the number of active missions to just 1 per creature. It's a combination of the multiple things we disabled that brought it back as well, so any one thing may not be that bad, but as the AI gets complex, the FPS drops dramatically it would seem.
     
    Last edited: Dec 1, 2017
    zenGarden likes this.
  17. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Is he using loops for this? :eek:
    Never really looked into the dynamic vital signs code.

    If this is really the case, I highly HIGHLY suggest that @icetec switch over to an event driven system.
    This way, he can detect when a value changes, and inform any listeners, which means that the vitals would only get updated when they have too (instead of every frame).
     
  18. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Oh sorry, not trying to make a claim, it was just a n00bish assumption. Turning them off certainly impacted performance but it may be for other reasons.
     
  19. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538

    Nice finds and tips.

    I think there is some serious refactor about code to do.
    Change ways many stuff is used every frame, move to n frames per updates. Some stuff i think are brute coded without any optimisation because never tested in real game.
    @icetec should do some refactor and performance stress test using a complex scene (complex trees, water, models ,complex shaders) with complex AI as yours ( instead of testing simple AI on a ground empty plane )

    About pool bug i already talked about the real pool bug a week ago, we should have new soon ( even if support is kind of lower ).
     
  20. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    His AI is simple, not complex.
    If you watched his video, all his AI does is wander, and attack the player (lizard people), just like the AI I setup for the stress test, which you called "simple". :p
    You seem to have an odd view of what "complex" is.;)

    And, as a matter of fact, it could very well be the interaction between the ICE AI, and the Voxel Terrain Tethys is using.
    It could very well be that the AI is detecting all those individual voxels (or chunks), and taking them into account when performing obstacle avoidance.

    Also, just so you know, I had the following AI in a "complex" scene during an ICE presentation for my local Unity User group, and the terrain was made using Gaia, and was complete with grass and trees, and a small town on a ridge overlooking a lake:
    > 10 Hens that wandered during the day, and returned to their coop at night. They also flocked to the nearest hen with the highest agressivity while wandering.
    > 1 Rooster that would randomly crow during the sunrise hours only, and patrolled around, and like the hens, returned to the coop at night.
    > 10 Wolves that hunted, moving further away from their lair the more they got hungry.
    > 20 Sheep, and 1 Ram. The Ram wandered around, and the sheep followed the ram. Sheep and ram ran away from both player, and wolves.
    > 1 Stone Golem (like in my video) that wandered a cliff side, and shot a line of stone at the player if it got to close, and was using Final IK for limb placement.
    > 1 Panther that would stalk the player, attempting to get behind the player.

    And all with a decent FPS of around 50ish, depending on how much was in view.
    I could have upped the FPS by adding culling, as I did not have any culling at all. ;)

    However, I was not using voxel terrain, and was using A* pathfinding instead of ICE's internal navigation.

    Also, I did stress tests when I first got into using ICE:

    Battle Of Fort Prototype, where over 40 agents battle over a fort.
    AI does the following:
    > Remain in their base until a specified number of their allies have spawn, then move out to a specified point to "attack".
    > Attack any enemy that comes within range.
    > Spawn Rigidbody corpses that stiffen when not moving.
     
    Last edited: Dec 2, 2017
    nirvanajie, icetec and Tethys like this.
  21. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    So even with simple AI as you call it, he already posted videos because of poor performance.
    Imagine you do lot more complex AI the frame rate drop.

    I wonder what are visibility settings in your game, models complexity and level complexity and shaders.
    Make some video as he did instead of only stating numbers :rolleyes:

    Why are you trying to says Ice Creature is very optimised in code ? Did you took a look at code ? Do you know if all phases are managed in Update() per frame instead of distributed frames ?
    He pointed serious performance drops about adding more interactions and behaviours, so there is indeed some stuff to optimize.

    I don't know if Pit will do something like code refactor or just give minimum support.
    But if i plan to try again Ice plugin later, for sure i will make some code modifications for performance, specially change the Update().

    If you are very happy with ICe plugin as it is and some bugs not fixed, good for you.

    Have a good day.
     
  22. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    No, I am simply stating that the performance drop might not just be ICE. Voxel Terrains are rather infamous for causing performance drops all on their own, and the combination of ICE's internal pathfinding + Voxel might be the cause of the problem. Since interactions utilize the creature's pathfinding method, if the internal pathfinding is not playing well with voxels, then naturally disabling interactors and behaviors are going to have a positive effect on performance.
     
    icetec likes this.
  23. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    ICE effects CPU, not GPU.
    Thus, shaders and model quality are irrelevant to ICE's performance.
     
    icetec and Tethys like this.
  24. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    The voxel terrain has nothing to do with performance in this case - I have 90+ fps with my own AI mobs wandering the terrain - lets look at ICE instead. ;) The voxel terrain is just meshes - simple low poly meshes that make up a terrain so there is nothing wonky going on there. One chunk is a good 30-40 yards of terrain, and thats a single mesh. I only spawn AI around the player, so were talking about 2 chunks, or meshes, that AI is interacting with. But it isn't flat. Since my motion type is rigid body, its pretty simple stuff. Were talking about what should be a scan to detect a valid surface, and then velocity and gravity do the rest. Maybe could possibly optimize a little more by reducing how often mobs look for a new waypoint. Also. our waypoints (for home and patrol missions) and our interactors are all dynamic and found by TAG. Maybe there is something there reducing performance as well.

    I believe I have more complex AI then you gave credit for - they have obstacle avoidance, overlap prevention, Home, Patrol missions, avoid interactors and attack interactors - all on a complex environment. Some mobs run to eat when they get low on health. Some seek cover to get away from players. The flat plan example is not a real stress test. Also, using just 1 or 2 mobs with the same behavior with 20 instances is also not a good stress test IMO. You need multiple interactors per mob, multiple mob types and then multiple instances of each mob walking in an environment where they have to avoid stuff on the regular, and take into account XYZ. I like the test's you listed, combine them all and put it in a forest and lets talk results(something like Tropical pack or Medieval Environment pack or one of those if you have it could be a good stress level to test on since its hilly and lots of trees).

    Just a general note here guys - I'm 3 years on Astral Terra an 1 year on Realm Forge - pretty good on general optimization techniques here, I have run the gambit of that stuff over the years to get the game as performance friendly as it is now. I'm concerned about ICE and what we can do there to improve performance. At this point I can live with what we are seeing right now but still want to see it do better and am spending some more time early this week to try and see if there is anything else to squeeze a little more out (72-74 fps isnt bad considering the complexity of environment and amount of mobs, just hate to seeing to much of a drain on resources since I get close to 100fps without ICE). It will also help when ICE pushes out the pooling fix and also the waypoint fix. I also wonder if GPU instancing would be possible for spawning mobs and if that would reduce the instantiation lag. I'm still kind of new on the subject but adding it to our tree management gave us awesome performance improvements.
     
    Last edited: Dec 2, 2017
    icetec and TonanBora like this.
  25. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Trying to unpack that project I used for my presentation. Once it is out of storage, i'll try and record a video of it.
     
    Tethys likes this.
  26. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Listing my original setup here which caused the performance drop from 91 fps without ICE to 50-54 fps with ICE:

    Rigid Body motion setup with Obstacle avoidance (2 layers for Trees and Buildings), overlap prevention and deadlock prevention set to update. Raycasting for the ground setup with layer. This can be replicated with a mesh terrain. default water avoidance. All agents with capsule collider and rigid body. All motion/position sections have the 3D button enabled for hilly terrain(may be a performance hit). Dynamic vital signs and Sensoria enabled. All targets for interactors and missions are TAG based.

    1. 2 Stag leader AI agents with Patrol mission, Escape to Heal mission, Avoid Player and Avoid Enemy interactors.
    2. 4 Doe AI agents with Escort Stag, Escape to Heal mission, Avoid Player and Avoid Enemy interactors(seek cover).
    3. 3 Lizard Man AI agents with Patrol, Seek/Attack Player interactor.
    4. 2 Bloodfiend AI agents with Patrol, Seek/Attack Player interactor.
    5. 2 Grottonoid AI agents with Patrol, Seek/Attack Player interactor.
    6. 1 Merchant AI agent with Patrol, Stop for Player interactor.
    7. 2 Fae Lizard with Patrol, Seek/Attack Player, Seek/Attack Creature interactors.

    In my current setup I reduced this to 14 mobs instead of 16, made all mobs have only one interactor instead of 2 in some cases. Reduced everyone to only 1 missions instead of 2. Turned off dynamic vital signs. I went from 50-54 fps back up to 72-74 fps in our test zone.
     
    Last edited: Dec 2, 2017
  27. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    If you make a complex scene heavy demanding about GPU and CPU, you will see a frame rate difference noticeable when adding new complex scripts for example.
    Testing on some 3D plane is irrelevant, or some low poly environments and models is irrelevant for performance stress tests. Anyway, it would be cool to see some video of your game and see how many AI it displays and how complex or simple is your AI.

    Yep, some people seem to not understand having more scripts and physics have a cost.

    How distant are each different mobs groups ?
    Can the player see many different creatures from your list in the same area ?


    It's a Usefull benchmark.
    I'll try to make different AI and also make some stress test.
     
    Tethys likes this.
  28. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hello everyone, below you will find a new tutorial and demo scenes for the integration of Realistic FPS Prefab. Basically, it works similar to all other integrations, but RFPSP requires additionally also some modifications of the source-code. ICE can handle all the required steps automatically, and if you follow the instructions of the tutorial, it should not be a problem to use ICE with a few mouse clicks with RFPSP.


    Basic Scenario of the tutorial ...
    www.icecreaturecontrol.com/files/demos/ICERFPSPTutorial.unitypackage
    http://www.icecreaturecontrol.com/files/demos/ICERFPSPTutorial.zip

    Final Demo Scene
    www.icecreaturecontrol.com/files/demos/ICERFPSPDemo.unitypackage
    http://www.icecreaturecontrol.com/files/demos/ICERFPSPDemo.zip

    Btw. I'll publish the minor update end of the week. The update contains some bug-fixes and improvements (e.g. culling conditions, spawning without valid spawn-points etc.)

    Have a great day!

    Pit
     
    TonanBora likes this.
  29. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi guys, whenever you get an issue with the performance, you can try to optimize the runtime-behavior of a creature by increasing the perceiption and reaction time but also by using the new preselection features of the target settings.



    The most costs will be spent to perceive the environment and to select suitable target objects, and in particular, if multiple objects of the same type are available. By default, a creature tries to get the best target object in each perceptual cycle, which will be handled by a request to the register. If there is only one object of the requested type available, the request returns the found object directly, but if there are dozens of objects of the same type are available, all given objects must be compared to return the best one. To reduce this costs, you can enable and adapt the preselection settings, so you can define for example an interval in which the creature will look for a new target. But you can also define that a creature should only request a new target object if the current one isn't valid anymore etc.

    I hope this will be helpful to you!

    Have a great day!

    Pit
     
  30. icetec

    icetec

    Joined:
    Mar 11, 2015
    Posts:
    592
    Hi Tethys, could you save the whole settings of your used ICE creatures as presets and send me the xml files, so I can check them and maybe I can identify some critical settings.

    While using the internal motion control, I assume that you are using also the slope limits, internal obstacle avoidance and overlap prevention which could be potential causes. In this case, it could be helpful to adapt the settings to optimize the used raycasts. Also it could be helpful, if you could send me a screenshot of the profiler, who is pointed on a peak and sorted by 'Total' so it's easier to identify potential causes.

    (example)


    Have a great day!

    Pit
     
    TonanBora, Tethys and Teila like this.
  31. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Thanks For This PIT , I had Done Adding Those Lines Of Code Into RFPS Scripts Way before , But Nothing Was Working , Now After Watching That Video The Bulb inside My Skull Suddenly Glowed And The Problem Solve , It Was Just A silly Mistake From My End (I think So) That Was Preventing my RFPS player From Damaging The ICE Creature , Problem Solved (You Need To Have the Correct TAG On The Creature :p). Thanks Pit For the Video .
     
    icetec and TonanBora like this.
  32. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Greetings @icetec . I increased reaction time on all agents as well as enabled Preselection with increased interval of 2-3 on all agents targets. This did not increase FPS, not even by 1. Still sitting at 70-74 in my testing spot.

    I am not using Slope Limits, but as mentioned in my other posts I am using obstacle avoidance with overlap prevention and deadlock prevention with Rigid Body motion type. Turning off Overlap also does not alter FPS at all. I need obstacle avoidance since my game environment is various forest, plains, mountains, jungle and cave biomes and filled with trees and large rocks. Thanks for the suggestions, I'll zip those presets up and get them to you tomorrow. Any word on when we can get the fix for the pooling bug? Would love to get that edit you made for waypoints as well if it's not too much hassle.
     
    Last edited: Dec 5, 2017
    recon0303 and zenGarden like this.
  33. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Hello Guys Most Of the Problems Are Solved , Now Can Anyone Suggest A Good Way To Keep track Of the Creatures Death , I mean I Got 4 Different Creatures , Now I want To Keep Tack Of Them Using ICE So That I can Know How Many Creatures Are Died , Bassically I want To Create Small Objectives Like Kill 5 Dogs Or Kill 2 Lions , So How To Keep Track of Them Using ICE Creature Register. So That Upon Fulfilling That Criteria I Can Call Different Actions , And Also I should be Able To Change The Criteria Itself Like 1st Kill 5 Zombie And upon Completion It changes to kill 3 Dogs , I Hope You Understand what I am trying To Say or do .:) Well Lets Here The Suggestions now,

    It Would Be The best Way if We Can call Custom Death Function From the Death interaction itself like attach That Function And When Creature die It calls The Function , I have Not Tested If Its Possible , But Will Be Good To Hear Your thought On How To Achieve This All.
     
  34. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    How it goes if you switch to navmesh ?

    I got throught Ice plugin code and there is lot of events, coroutines and stuff , the only one to able to help you on performance is the developper.
    Ice plugin has lot of layers made for complex animals echo system and surrounding environment.
    For ennemies standard AI (detect, pursue, attack, return home) why don't you pick up some lightweight plugin like FSM or BT plugin ?
     
  35. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    I mentioned it earlier, I have a procedurally generated smooth voxel environment that players can alter in real time, which means no Nav Mesh support. I have to have 1. an AI system that doesn't require navmesh and 2. A potentially complex AI system since I have a modern adventure/exploration/survival game. Simple AI would never be enough (it isn't now, and the current AI has been live for over a year in the game and is FSM based), and while we wont have crazy complex AI, we still need something more than HerdSim like behavior. Unfortunately though, with ICE, it looks like the cost may be too high when you go beyond the simple kind of wander and hunt behaviors on multiple agents, with obstacle avoidance and overlap prevention as well. I had this issue in the VR project and had to reduce my animals to very basic behavior in order to maintain a decent FPS. In my VR project, it may actually make sense to roll with something a bit more simple to save on overhead.
     
    Last edited: Dec 5, 2017
    Teila likes this.
  36. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Yep, i understand your concern.
    Most users are not making some game on the same scale as yours or as complex.
    Ice plugin is pretty complete indeed, but only Pit will be able to work on performance issues you got.
    Did you thaught sending him some test level he could debug and use as performance test ?
     
    Tethys likes this.
  37. froslie

    froslie

    Joined:
    Apr 20, 2015
    Posts:
    18
    [No turn animations - best settings?]

    So, I'm working with quadruped creatures that don't have turn animations. When they seek a new home location, often it is behind them randomly, they pivot around their axis rather awkwardly.

    I am hoping someone might have a few pointers regarding the best settings to help turning follow paths in more believable way. I am able to control their paths with NavMesh, or AStar without issue...
     
  38. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Might be able to use A* Pathfinding Pro, as I do believe they have the ability to update Navmeshes at runtime (for when someone changes the terrain).

    Also, you could check out Unity's navmesh Component system, as they have something that allows AI agents to generate local navmeshes as they move. However, seems that when you try to use the navmesh components, you cannot build your project (due to build errors).
     
  39. ranaUK

    ranaUK

    Joined:
    Mar 1, 2017
    Posts:
    166
    On home or patrol, I am not getting a trigger event on end. If I have it set to start, I get the call. Has anyone else experienced this?

    I’m trying to have a random waypoint on a large nav mesh (10kX10k). Instead of coding a random offset, I thought it would be easier to call a method on my waypoint (inherited from location) and reposition it.

    Any better ideas?
     
  40. froslie

    froslie

    Joined:
    Apr 20, 2015
    Posts:
    18
    Another question related my last post: does A* pathfinding Pro not work with Advanced animations?

    I watched your tutorial regarding mecanim, TonanBora and heard the bit toward the about root motion. I have creature set up correctly using turn animations, but when I enable "custom" pathfinding the creature executes its animations in place, but doesn't move. it works fine under other pathfinding options.
     
  41. TonanBora

    TonanBora

    Joined:
    Feb 4, 2013
    Posts:
    493
    Hmm, I am not sure. I'll do a test on this with the little dragon and get back to you.
    In the mean time, make sure that the "Use Root Motion" on the animator is ticked, and that "Ignore Root Motion" is not ticked on the behaviors that you want to use root motion on.
     
    nirvanajie and froslie like this.
  42. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    118
    Does this asset do anything about breeding/mating etc.?

    I want a herd to breed every season and pop out a new baby as long as there are 2 adults (one of each gender) still alive in the herd. Then the baby will automatically be assigned to the herd and grow up.
     
  43. indie_dev85

    indie_dev85

    Joined:
    Mar 7, 2014
    Posts:
    52
    @icetec , using ICE 1.4 how i can trigger hit animation whenever player get hit by a bullet.
     
    Last edited: Dec 11, 2017
  44. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Hello Guys , I got Stuck at Some Nonsence , I Want To Call A public Function When the Creature Dies or the The Durability reaches 0 , So I thought To Add this in the behaviours rules itself And Found Something Called Event which Takes a method Name And Calls it When that Rule actives, So in My case I Gave My Custom Death Function Name To That events Field in My Death behaviours rule , So I was Hoping That When Creatures Dies And Plays Death Animation it Also Calls My Function But nohing Happens (The Event only Supports available behaviour events which my function is not) Now how can i Achieve This Thing Anyone got Any Ideas . I basically want To call that Custom Function For death To Manage how many Creatures player Has Killed or So . Any Help Would be Huge Time Saver For Me.
     
  45. danteswap

    danteswap

    Joined:
    Oct 27, 2013
    Posts:
    164
    Found a Workaround but Is Not optimal , But Get Desired Work Done Used Reference to ICEWorldEntity And Checked For The health Status Got Working But as said Its Not Optimised As using Invoke When Damaging To Check Status, Still Waiting For Some optimal options
     
  46. DivineMercy

    DivineMercy

    Joined:
    Jun 28, 2016
    Posts:
    33
    Hello, is there a way to grab the creature's current interaction state? I would like to see if there is a way to see that "my creature is currently under this interaction X, in act 1" and if so, do abc. Is this possible? Thank you!
     
  47. Jacky_Boy

    Jacky_Boy

    Joined:
    Dec 8, 2013
    Posts:
    95
    @icetec Hey Pit I can seem to get apex Path to work with ICE. I added the adapter components, but how to set up? I chose custom pathfinding but no progress ...
     
  48. GhereGames

    GhereGames

    Joined:
    Mar 24, 2015
    Posts:
    23
    I'm using Gaia terrain that has some smooth hills and sharp cliffs. My creatures can "climb" up the 90 degree cliff walls and drop off of them from very tall heights. Is there a way to stop this and make them find a lower grade path up the hills, etc.? I tried a navmesh,but get unnatural motions when using the NavmeshAgent for the Motion and Pathfinding in ICE.

    Also, is there a way with the Gaia terrain to make the animals, quadrapeds, change their pitch as they go on a small hill or such?
     
  49. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672

    I believe you want to enable Slope Limits on the Motion and Pathfinding to prevent agents from navigating past certain angles.

    To make animals orient to the terrain you can choose Quadraped instead of DEFAULT. This makes them adjust to the slope - there is a BUG with this, however, and we have been waiting for ICE to publish the fix.
     
    nirvanajie likes this.
  50. GhereGames

    GhereGames

    Joined:
    Mar 24, 2015
    Posts:
    23
    I am using Dialogue System. It includes quests and you can easily adapt your creatures to increment a La variable when they are killed.

    Another way would be to add a script to a dying creature you spawn that increments a variable on a tracker object. That is if you are dropping a dying animated creature when a creature is killed.

    And yes, the tag makes a huge difference. I think I had the same thing when I was learning to combine RFPS and ICE.