|
Post by bender on Jul 10, 2019 15:26:59 GMT
I don't mean this as a slam to Invector but I have both assets and creating AI is a big undertaking. I don't want to go down one road and feel like I made a REALLY bad decision. Anyway I know FSM AI, since it is tightly integrated with Invector Shooter, will provide me with AI that can hear me whereas Emerald AI cannot (unless I do a little development). But I would like to hear any pros/cons between the two and any suggestions.
Thanks
|
|
|
Post by magique on Jul 10, 2019 21:56:21 GMT
I also have both assets. For me, I'm using Invector exclusively for AI Companions and any humanoid based AI. This gives a much tighter and easier to use integration with the Invector 3rd Person Template. For any non-humanoid AI I am using Emerald AI because it's much easier to set up non-humanoid AI with Emerald and the Invector integration is quite easy.
However, the more I learn about the FSM and how to do custom AI behaviors with Invector, I might eventually go all-in on Invector. It's just a bit painful right now to set up the animation controller for non-humanoid AI.
That's my 2 cents for what it's worth.
[EDIT] Also, Invector AI doesn't quite work perfectly with pooling solutions such as Core GameKit's PoolBoss. They have been working on getting it to work correctly, but it's still an issue at the moment.
|
|
|
Post by shadex on Jul 16, 2019 18:29:00 GMT
I don't mean this as a slam to Invector but I have both assets and creating AI is a big undertaking. I don't want to go down one road and feel like I made a REALLY bad decision. Anyway I know FSM AI, since it is tightly integrated with Invector Shooter, will provide me with AI that can hear me whereas Emerald AI cannot (unless I do a little development). But I would like to hear any pros/cons between the two and any suggestions.
Thanks
I would say for humanoids Invector's AI is faster, and can provide more interesting fights. It's also much easier to extend provided you have a decent understanding of code. It's biggest problem is how wander likes to walk into walls forever. It's faster though. For non humanoids, you have to learn how to manually add invector's AI, but you'll kinda have to know that to fix and altar Invector's AI anyways. However for my needs, Invector can safely had 20 complex AI's in scene, where emerald can get about 10-15.
If you want boss fights, it's not even a consideration. Even non human AI fights are just better using vanilla Invector AI with a simple script to pick a random attack. Or at least for the tradiitonal dark souls / zelda / traditional boss fights and staged boss fights.
I went all in with invector after going through 5-6 AI's, including a custom one Insomnia did with behavior design. After building a level, or randomly generating a dungeon, it always came down to how many guy's can i get on screen. One thing to add. Invector initializes much faster and is uses less resources when activating it. It allows you to add a collider on the player, and setactive() on the AI within range without the game hickuping.
|
|
|
Post by magique on Jul 16, 2019 18:33:03 GMT
Interesting. I was actually going to update my response because I've switched my Humanoid AI, including my companions, to Emerald AI because I was hitting a really bad performance issue with the Invector FSM. Since switching, my performance has been better. Deep Profiling showed some real performance hits with state transition code.
|
|
|
Post by shadex on Jul 16, 2019 18:49:10 GMT
Interesting. I was actually going to update my response because I've switched my Humanoid AI, including my companions, to Emerald AI because I was hitting a really bad performance issue with the Invector FSM. Since switching, my performance has been better. Deep Profiling showed some real performance hits with state transition code. That doesn't make sense to me. The animator controls State transitions, and the code is all pretty low level code. Either way, it's a state machine, you would have to be doing something intentional like trying to find a bunch of game objects by name in every transition to slow it down. Usually what slows AI's down is physic's and pathfinding. Also how are you seeing state transitions in the deep profiler? Animator is not part of the profiler.
|
|
|
Post by magique on Jul 16, 2019 18:51:21 GMT
Interesting. I was actually going to update my response because I've switched my Humanoid AI, including my companions, to Emerald AI because I was hitting a really bad performance issue with the Invector FSM. Since switching, my performance has been better. Deep Profiling showed some real performance hits with state transition code. That doesn't make sense to me. The animator controls State transitions, and the code is all pretty low level code. Either way, it's a state machine, you would have to be doing something intentional like trying to find a bunch of game objects by name in every transition to slow it down. Usually what slows AI's down is physic's and pathfinding. Also how are you seeing state transitions in the deep profiler? Animator is not part of the profiler. If you turn on deep profiling, you'll see some big chunks of time taken up in the FSM and if you drill down, you'll find calls like TransitTo(), I believe. I'd have to profile again to get the exact details.
|
|