Announcement

Collapse
No announcement yet.

Utility AI Plugin

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

    [WIP] Utility AI Plugin

    Click image for larger version  Name:	UtilityAI_284x284.png Views:	1 Size:	35.6 KB ID:	1609961

    Light weight, modular, and scalable AI solution. Comes with examples.

    Utility AI plugin skips behavior trees entirely for a system that makes decisions based on scoring likelihood of performing certain tasks.

    The goal for the end product is to have multi-threading, async, c++ base classes, exposed blueprint functions, replication, and some experimental ideas I want to try out.

    May also write a new movement component.


    Trello Board: https://trello.com/b/dIgsToQa/utility-ai-plugin
    Last edited by Starkium; 04-19-2019, 07:12 PM.
    Consider supporting me on patreon

    Weapon Master and VRE Merge TUT

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

    #2
    I'd like to start taking requests for what kind of tools should be included in this package. I've been building custom nodes and classes for game usage and testing.

    This is what is included so far:


    Classes c++:

    - Utility AI detour crowd ai controller
    - Utility AI base Character
    - Async mini-timer
    - UA_Function Library


    Blueprints:

    - noise emitter test actor
    - Example characters: civilian, zombie, shooter
    - Example Controllers: civilian, zombie, shooter
    - VERY Custimizeable Spawners
    - Spawner Manager
    - Thinker , this is a controller manager. Will process provided info in async and or multithread for additional performance gains when number of AI becomes too great
    - HotSpot volumes, not the same as native UE4 hotspots, might rename this to heatmap or something


    Components:

    -extended character movement component ( performance gains )


    Functions:

    - Random Spawn Location in navigable radius with fallback
    - Destroy Controller
    - get actor's skeletal mesh
    - generic array sort, sorts by given parameters


    Macros:

    - compare Tasks
    - check task priority levels
    - set desired movement speed ( does a lot of checks )


    Misc:

    - example scored task library ( move to, investigate sound, wander, etc.)
    - Tasking Interface
    - Tools interface


    Planned Features:

    - "behavior system" , evaluate task sets based on something like an alertness level or by enum of current behavior, allows overriding same task for different outcomes
    - aysnc find spawn location
    - async find cover/hiding spot
    - work locations
    - patrol routes
    - boid system
    - "vertex animation blueprint" , I don't know how much work will go into this but I'd like to give it a shot. Would be great for using instanced static mesh actors instead of skeletal. Really isn' an animation blueprint, more of a quality of life set up for artists working with vertex animations. THIS IS NOT MEANT FOR COMPLEX CHARACTERS

    - Works with faction system
    Last edited by Starkium; 04-19-2019, 06:38 PM.
    Consider supporting me on patreon

    Weapon Master and VRE Merge TUT

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

    Comment


      #3
      Thats cool, something im definitively going to get if it comes out! Just one question though, Will it have like a ”cover” like behind obsticals and such? Cause that would be awesome. Thanks

      //N1LSS0N

      Comment


        #4
        This sound really good and if it cover my needs ill be sure to pick it up, I'm working on a survival game and the main issue I run into is performance issues when there are to many NPCs active at a time, I would like to do hordes, If you code this to handle different types of AI and code it so you can customize to should be tops, keep up the good work .

        Comment


          #5
          Can you Show US a Video from the current state?

          Comment


            #6
            Originally posted by halobungie View Post
            Can you Show US a Video from the current state?
            I will get that set up yeah. sorry been juggling life, contracts, my own projects, etc. Still trying to work out this one kink with the varying reaction times of the AI. it's the only issue I'm having so far. Also trying out the animation sharing plugin to see what gains it gives. Will provide an example if I get it working.
            Consider supporting me on patreon

            Weapon Master and VRE Merge TUT

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

            Comment


              #7
              Think I may approach the reaction time problem by switching what AI are thinking based on distance or something like that.
              Consider supporting me on patreon

              Weapon Master and VRE Merge TUT

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

              Comment


                #8
                Hi, is there an estimation for when this might be released to the Marketplace?
                Modular Menu System @ UE4 Marketplace: "Build your UMG Menus in Minutes!"
                Marketplace Page | General Discussion | Support Thread | Preview Video

                Comment


                  #9
                  Originally posted by haimat View Post
                  Hi, is there an estimation for when this might be released to the Marketplace?
                  hmm been debating in my head if I want to release at a lower price and increase price as more features get added or give UA a real stress test before putting it public. Plus I want to write up a wiki for documentation and add some examples.

                  Another thing, I'm trying to use as much in engine functionality as possible. The problems I keep running into seem to be rooted in epic's unfinished systems, like AI perception, so I may be forced to write my own perception system based off line and sphere traces. This could run a lot better so I may do that down the line anyway.

                  I'm not that great with time estimations, but If I take a wild stab at it I'd say this: If I can get perception system working well I'll start having some trial runs done and if those goes smooth then I could submit to the market in like a month maybe two? ( I work a main job and do dev on the side) If I hit every brick wall along the way getting the basics together it could be 3 months or more.


                  Bonus: this pic is a bit dated now, but here is a test I did at one point.

                  Click image for larger version

Name:	stress.png
Views:	1
Size:	560.8 KB
ID:	1628648
                  Consider supporting me on patreon

                  Weapon Master and VRE Merge TUT

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

                  Comment


                    #10
                    Here's a test inside the new update for End of Days

                    Click image for larger version

Name:	EoD-UAI.png
Views:	1
Size:	393.1 KB
ID:	1628653
                    Consider supporting me on patreon

                    Weapon Master and VRE Merge TUT

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

                    Comment


                      #11
                      Ok did some testing with a packaged project finally. Non nativized blueprint gives me a total game time of 7ms with 100 ai. Haven't been able to get it to nativize to see further results, but I'm in the process of moving a lot over to c++ and then adding in something like batching/pooling for task processing so as to avoid too many ai thinking at once.

                      Now that I'm moving a lot over to c++ I've been thinking about use cases for UAI and I'm not certain that every user will want a perception system or a crowd controller by default. Ideally I would do all this processing stuff in a component that you could throw on your controller and stuff, but I actually would lose some of the "free replication" by doing that.

                      Soooo going to have to make this hierarchy have a bit more depth .... somehow. Would really help me a ton if I could gather some information from the community about how they would want to use UAI. For example, do you even need a health variable? A perception system? For AI to continue operating even though they are out of the rendering range of the player? I've been running into these situations myself in End of Days.

                      I suppose I could iron this out across some plugin updates as I gather more information from the community. That would kind of suck for anyone building their game with the first update though. Going back and remaking things is always a pain. I'll put together a survey or something so I can get more info.
                      Consider supporting me on patreon

                      Weapon Master and VRE Merge TUT

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

                      Comment


                        #12
                        Ok put together a survey. It would help a ton if anyone would be willing to take it. It's only 8 questions long. https://www.surveymonkey.com/r/Y65QNW6
                        Consider supporting me on patreon

                        Weapon Master and VRE Merge TUT

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

                        Comment


                          #13
                          Originally posted by Starkium View Post
                          Ok put together a survey. It would help a ton if anyone would be willing to take it. It's only 8 questions long. https://www.surveymonkey.com/r/Y65QNW6
                          Done, hope it helps!
                          Modular Menu System @ UE4 Marketplace: "Build your UMG Menus in Minutes!"
                          Marketplace Page | General Discussion | Support Thread | Preview Video

                          Comment


                            #14
                            Originally posted by haimat View Post

                            Done, hope it helps!
                            It does, thanks my dude. I've got a pretty good idea of how I should approach it long term, but I want to make sure enough use cases are addressed for the initial launch.

                            What I'm doing now for my character and controller c++ classes is just creating a child of character and detour crowd ai controller and overriding stuff and adding other stuff. What I probably should do is raise this up to a pawn base class and ai controller base class and then create copies of the standard child classes that would inherit from my custom pawn and ai controller class instead. That could be a ton of work though considering how much goes into character alone. I'd have to copy the movement component for example and then replace the references with my custom character and blah blah and i don't know where else in the engine references could be that are needed. It's why I've been going back and forth debating if I should make a lot of the logic in a component or something instead. Would lose a lot of the free replication though as I said, but thats probably still a lot less work to do and the performance hit could be negligible.

                            I should probably do some sort of beta type thing too, but I have no idea how I should approach that. Gumroad or something?
                            Last edited by Starkium; 06-21-2019, 11:19 AM.
                            Consider supporting me on patreon

                            Weapon Master and VRE Merge TUT

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

                            Comment

                            Working...
                            X