Announcement

Collapse
No announcement yet.

[Twitch] Support Stream - AI - Dec. 2, 2014

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

    [Twitch] Support Stream - AI - Dec. 2, 2014

    WHAT
    Senior AI Programmer Mieszko Zielinski takes us through behavior tree services, EQS (Environment Querying System), navmesh generation, and answers your questions on AI.

    WHEN
    Tuesday, Dec. 2nd @ 2PM ET - [Countdown]

    WHERE
    www.twitch.tv/unrealengine

    WHO
    Mieszko Zielinski - Senior AI Programmer
    Sean Palomino - Developer Support Manager

    Feel free to ask any questions on the topic in the thread below, and remember, while we try to give attention to all inquiries, it's not always possible to answer everyone's questions as they come up. This is especially true for off-topic requests, as it's rather likely that we don't have the appropriate person around to answer. Thanks for understanding!

    EDIT: The YouTube archive is up here

    Also - Mieszko is joining us on Thursday to continue the discussion. Come join us!
    Last edited by Ivey; 12-04-2014, 12:39 AM.
    Let's Connect [Twitter]

    #2
    [Question]
    What bonuses (if any) are there to using Behavior Trees as opposed to creating the logic in the Enemy Parent Blueprint?


    (I currently created it all in the Parent class and I was wondering if there were any bonuses to moving it to behavior tress...cheaper, faster, etc?....)
    Last edited by President; 11-30-2014, 02:43 PM.

    Streams: www.Twitch.tv/BlinkTheory
    Patreon: www.Patreon.com/BlinkTheory

    Comment


      #3
      [Question]

      At the moment it's only possible to specify how frequently a Service in a Behaviour Tree repeats itself in seconds. Would it be possible to be able to have an option to specify this in ticks and also limit the total amount of services that take place during a tick of the game so that it's possible to optimize AI further without digging into C++?

      Comment


        #4
        [Question]

        Nav Link Proxyies only allow AI to jump down from ledges & platforms. Will there be an added feature allowing AI to jump up to a platform as well?

        Comment


          #5
          [Question]

          Whats the "optimal" Way to handle a behavior tree? right now my current BT is mostly composed of BT Tasks and a few decorators ( mostly to go a different path if a specific bool is set etc ), When shouldother nodes besides Task be used? ( Parallel, services etc ) a example scenario would be appreciated
          Offering my Freelance Game Design ,Counselling and C++ Programming Skills!
          https://forums.unrealengine.com/show...ner-Counseling

          Marketplace Assets
          Melee Tracing Plugin:https://forums.unrealengine.com/show...Tracing-Plugin
          Medieval Combat Starter Kit:https://forums.unrealengine.com/show...at-Starter-Kit
          Foliage To Blueprint:https://www.unrealengine.com/marketp...e-to-blueprint

          Comment


            #6
            [Question(s)]

            1. Are there any implementations of steering behaviours in UE4, to handle navigation of big groups of agents. Also, what would be the best approach to design AI for big groups of Agents in UE4?
            2. When will you continue your awesome blog?
            3. Will there be more AI examples in the future? Like Example projects that focus on AI.
            July's GameJam Entry: https://forums.unrealengine.com/show...l=1#post341226

            Comment


              #7
              Hey guys.. got a few:

              I'd like to have a priority selector and some kind of floating point value returning decorators (i.e. returning a utility value) instead of the default boolean condition based decorators, is this possible, if so how would I ensure that the priority selector would be run at a given update frequency?

              I really need some way of handling when a subtree gets overridden by a higher priority tree so I can do some cleanup. Can we have a cleanup callback into blueprint as the subtree gets changed so I can reset values in the blackboard

              Can we have access to set blackboard values on startup/default.

              What is the status of navmesh support for large world?

              Got to ask about documentation. Can we have some official organized docs at some point?

              There seem to be some issues with the BT editor during debugging, in that sometimes it keeps focussing on a specific node no matter which nodes are actually being activated.

              On a similar note, the BT editor doesn't seem to single step as you would expect. Its almost like its not evaluating the nodes in the correct order sometimes.

              How easy would it be to have arrays inside the blackboard? i.e. so we can have an array of enemies within the blackboard as a single array-type value (much as in variables in blueprint).

              I'm sure I'll think of more on the night

              Phil.

              Comment


                #8
                Originally posted by zoombapup View Post
                I really need some way of handling when a subtree gets overridden by a higher priority tree so I can do some cleanup. Can we have a cleanup callback into blueprint as the subtree gets changed so I can reset values in the blackboard

                Hey Phil, I seen your question and I needed something similar to check nodes results. What came after was to use a Decorator which can report back the results of the node its attached to once the node finishes execution. This event within the Decorator is called the Event Receive Execution Finish, returns Node Result enum which you can Switch on. The enum breaks down 4 different states; Succeeded, Failed, Aborted, or In Progress.

                So I have a decorator on a node which tells the AI to move to the next route(increment bbdata int route up) if it finishes it current route successfully. If it aborts in your case, it can call functions which do your garbage collection.

                I hope that is what you're looking for.
                Last edited by PeterLNewton; 11-27-2014, 04:23 AM.

                Comment


                  #9
                  Hey Peter,

                  Yeah, I tried the Event Receive Execution Finish. Only it didn't happen , seems its wasn't called on the subtree nodes that were "subsumed". I think it might work in your case because you're running it on the executing node, where as I need to run it on the parent node (so that anywhere it needs to quit out of that subtree I should reset my value).

                  Unless Mieskzo fixed it and I've missed the fix which is pretty likely as I've not updated UE versions yet (I wanted to make sure I used the same versions for my tutorials rather than switching over mid-stream).

                  Maybe I'll update when 4.6 comes out and is stable and update my tutorials a bit.

                  Looking forward to watching Mieszko handle a stream

                  Phil.

                  Comment


                    #10
                    Originally posted by zoombapup View Post
                    Hey Peter,

                    Yeah, I tried the Event Receive Execution Finish. Only it didn't happen , seems its wasn't called on the subtree nodes that were "subsumed". I think it might work in your case because you're running it on the executing node, where as I need to run it on the parent node (so that anywhere it needs to quit out of that subtree I should reset my value).

                    Unless Mieskzo fixed it and I've missed the fix which is pretty likely as I've not updated UE versions yet (I wanted to make sure I used the same versions for my tutorials rather than switching over mid-stream).

                    Maybe I'll update when 4.6 comes out and is stable and update my tutorials a bit.

                    Looking forward to watching Mieszko handle a stream

                    Phil.
                    Interesting, would you mind showing me a sample of what you have setup? I'm trying to recreate your scenario so that I can see the problem too. I have 3 branches, so 3 separate subtrees. I have a callback decorator on a subtree within one of the trees, not on any of the main branch nodes. When my bot switches states, and the subtree's subtrees are ultimately aborted out. I still get notifications of the aborts. So let me know if I'm doing something different.

                    Comment


                      #11
                      Hey Peter, its quite likely been fixed in newer versions of the engine. I had a blackboard value that I was using to control a condition on one of the subtrees, when I ran a higher priority subtree I wanted to capture that so I could null out the blackboard entry for the currently running tree just before it switched context to the new subtree. So I think it was the EnemyTarget blackboard actor value I wanted to set to NULL if I ever aborted the subtree that dealt with Enemy attacking (so for instance if I had ran a higher priority tree when the AI got too far away from its guard target). The problem was that the Execution finish nodes weren't being activated (I had a cleanup decorator on the subtree so that no matter where I was in the tasks of that subtree if the subtree was subsumed for any reason I could clear the Enemy Actor value out).

                      I'll test something similar sometime next week and see if its been fixed as it felt like it should have received the execute finish for EACH node in the subtree.

                      Phil.

                      Comment


                        #12
                        [Question]

                        What is the PROPER way to generate NavMeshes? I ask this because I installed one in my level and now every time I start the editor, I get a message that the NAV mesh is being re-generated and I have to wait about 5 minutes before the thing finishes its computations. Is there a way to just do this when the level is built rather than everytime the level is started or played?

                        Comment


                          #13
                          Originally posted by Demolition Man View Post
                          [Question]

                          What is the PROPER way to generate NavMeshes? I ask this because I installed one in my level and now every time I start the editor, I get a message that the NAV mesh is being re-generated and I have to wait about 5 minutes before the thing finishes its computations. Is there a way to just do this when the level is built rather than everytime the level is started or played?
                          See this https://answers.unrealengine.com/que...eload-a-m.html

                          Comment


                            #14
                            Hello, i waiting this stream.
                            My Questions:
                            1. When users can see fixing this very bad bug?: https://answers.unrealengine.com/que...eload-a-m.html
                            2. Save/load navmesh ... Please add "Save/load navmesh" in Editor. Ie, saving and loading navmesh in a separate file (example .unavmesh), separate from the ".umap" level file. It's very useful!
                            3. When users can see "different-sized agents support on a single navmesh", add in close future or in 2015?
                            4. When users can see DetourCrowd in Editor (without use C++ code)?
                            5. AI work plans on future 2015?

                            Thanks!

                            For "UE4 AI noobs": interesting UE4 AI future - AI section in https://trello.com/b/gHooNW9I/ue4-roadmap
                            Last edited by AntonioModer; 12-01-2014, 10:40 AM.

                            Comment


                              #15
                              [Question]

                              Does it require a special system to create AI for an open world game where pedestrians walk on the curb and cars follow the traffic laws? Or can this be done using just the systems available that would normally be used for regular AI. And how efficient would something like this be when it's fully made with Blueprint, or if it's made in C++ but expanded with Blueprint? For me, it doesn't necessarily need to be incredibly realistic, but a system where cars follow the basic rules and pedestrians don't walk on the road would be enough.
                              Portfolio: https://www.artstation.com/final-frontier
                              Stargate & DHD: https://forums.unrealengine.com/comm...5-stargate-dhd

                              Comment

                              Working...
                              X