Announcement

Collapse
No announcement yet.

Utility AI Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Originally posted by GrumpyNZ View Post
    I volunteer as guinea pig! Happy to chip in some donations to help speed development of this. (just did the survey)
    I'd greatly appreciate that. There's a patreon link in my signature.


    I'm not really sure where the bottleneck I'm hitting right now is coming from. I have a friend who claims his behavior tree set up can have 400 zombies chasing him in his vr title and still have over 90 fps on an i5 and 1050 ti combo. At this point, Utility AI Plugin isn't yet batching/pooling the AI processes and isn't multi threaded like behavior trees. Those two things alone shouldn't cause the massive reported performance gap of the alleged 400 ai BT set up and the UAI set up.

    If I packaged up a shipping build of UAI, I can run 50 ai at around 120 fps with volumetric fog, Post process, dynamic nav, eqs, and all the other resource eaters turned on; on an i7 3770k and 980 ti classified.

    That being said I'm getting some incredibly weird results in the profiler when I look for places to optimize. You get the expected big three at the top of the list: skeletal, animation, character movement.

    If you go into `stat game however the world tick time is freaking huge at over 50 ms. I don't have a single thing, that I have made, with tick turned on at this point. So this is something native to the engine that is eating up performance? Simply looking away from the AI drops the tick time to nothing so what might that be then? something in animation? well that doesn't make much sense because even running the ai without a mesh and animation shoots the tick time up.

    I'll save you the headache and say that the AI SIMPLY EXISTING at all causes the tick time to go up and substantially more when you look in their direction. Even without overlaps, mesh, logic, or literally anything that you'd be able to see from the blueprint side of things. This makes me think that something deeper in the engine is wrong here and it's been driving me nuts for weeks on end now.
    Consider supporting me on patreon

    Weapon Master and VRE Merge TUT

    Life Art Studios | Discord | End of Days - VR Zombie Survival

    Comment


      #17
      i hope see this in a video, my game will have a few npc in screen because i use the open world spawn system so will fit my needs in all my games! i've already have a bp from marketplace and use Utility AI. But with a controller manager will increase my performance, also i hope is easy to create new behavior, goals for AI and reuse this same behavior in others NPC. A simple comp where enabled behaviors to the NPC, will be welcome!

      Comment


        #18
        Originally posted by LucianoJacomeli View Post
        i hope see this in a video, my game will have a few npc in screen because i use the open world spawn system so will fit my needs in all my games! I've already have a bp from marketplace and use Utility AI. But with a controller manager will increase my performance, also i hope is easy to create new behavior, goals for AI and reuse this same behavior in others NPC. A simple comp where enabled behaviors to the NPC, will be welcome!
        My idea is to make behavior evaluations stored in a bp function library. I've seen other people use straight UObjects, which is more efficient I admit, but doesn't allow for much sharing unless it was super generic like a BT task/service (whatever word goes there). It's going to take time playing around with the system and getting feedback from testers to get the set up feeling right so I'm going to see if I can make the system accept both UObjects and functions library's ( should be not much trouble since everything stems from UObjects and my system is looking for an output of a struct anyway )

        Something is still somewhat odd about the performance results I am getting. A packaged project gives me 110ish fps with 50 ai and it really should be much more than that. since behavior trees can get higher than that. I'm starting to think it's an accumulation of several things that gives me this result. My PC is leaning on the old side now, theres a lot of stress of built in Unreal Engine features, I haven't brought everything over to c++, and I haven't added the batching type stuff yet. Also starting to consider that the models/animations I'm testing with could be unfavorable.

        I have some time on my hands now so I will be digging into this much more. First things first though, going to update the beta version of my game so I can get back on track with my community. Day job has really taken me away from the dev life lately. Going to make an attempt at full time dev again.
        Consider supporting me on patreon

        Weapon Master and VRE Merge TUT

        Life Art Studios | Discord | End of Days - VR Zombie Survival

        Comment


          #19
          HEY! I've made some progress here as to figuring out what the performance issues are. Ok so turns out having a physics asset on the meshes even if not in use will still be ticking. I've gone ahead and removed them from my meshes, if I want to do rag dolls I'll have to come up with some sort of method of spawning them or having a pool set aside for them. Next up, I changed my mesh reduction settings in the lods to have 2 bone influences at LOD 1 and every lod after than is only 1 bone influence. I had huge performance increases with these two things in place.


          Some ideas on how to increase performance: Have all my AI share 1 material, fix the animation sharing plugin and animate through c++( it's broken in 4.22.3 ), add all those logic improvements I've been talking about (pooling, async, threading, blah blah), make some sort of impostor set up for distant AI, something with movement component ( possibly not require nav mesh ), look into switching physx broadphase settings to MBP, and IDK maybe look into what octrees can do here. I don't know anything about them, but it seems to be what most AI heavy systems are using.

          Consider supporting me on patreon

          Weapon Master and VRE Merge TUT

          Life Art Studios | Discord | End of Days - VR Zombie Survival

          Comment


            #20
            Small update, got some more ideas from Tom Looman's articles and I think I'm going to refactor a bit.
            Consider supporting me on patreon

            Weapon Master and VRE Merge TUT

            Life Art Studios | Discord | End of Days - VR Zombie Survival

            Comment


              #21
              This is amazing stuff. I read Tom's articles and am thrilled that you are doing this. I'll definitely be following you and supporting you. I am interested in open-world stuff, adaptable AI and extensible systems.. and I see how clunky BTs can be for this. I'm 100% BP in my skill-set so creating libs for this on the BP side is a God-send for someone like me

              Lots of challenged to overcome it looks like but just want you to know there is definitely an interest in this
              Last edited by Notion; 10-22-2019, 05:31 PM.

              Comment


                #22
                Originally posted by Notion View Post
                This is amazing stuff. I read Tom's articles and am thrilled that you are doing this. I'll definitely be following you and supporting you. I am interested in open-world stuff, adaptable AI and extensible systems.. and I see how clunky BTs can be for this. I'm 100% BP in my skill-set so creating libs for this on the BP side is a God-send for someone like me

                Lots of challenged to overcome it looks like but just want you to know there is definitely an interest in this
                Thanks , been kind of side burning this when I can. I seriously need it for my own projects too, but man I've ran into some really weird issues getting this going. Found out one of them was an engine bug related to physics and now I'm pretty much fully into 4.23 and getting ready for 4.24.

                Going to take another peak at the animation sharing system, but I think as far as my PC is concerned, I think I've hit the bottle neck on my i7 3770k and 980 ti classified. I guess that's fine considering CPU is like 8 years old. Going to end up getting a ryzen or thread ripper I think because I want to see what top tier and low tier can look like with this.
                Consider supporting me on patreon

                Weapon Master and VRE Merge TUT

                Life Art Studios | Discord | End of Days - VR Zombie Survival

                Comment

                Working...
                X