Announcement

Collapse
No announcement yet.

Rama's Multi-Threaded Dynamic Pathing System, Full Physics Support

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

    #76
    Originally posted by mindfane View Post
    Awesome!
    Hee hee, Glad you like!

    Originally posted by mindfane View Post
    I really hoped that 6DOF path finding will be in the engine itself.
    Alls I can say is that while the math was simple for me the computational intensity of full on nav meshing in 3D / 6DOF was too much for single game thread I was even using multi-threading for the second part, but the first part which had to be on game thread was too intense.

    I would recommend you consider placing waypoints that are level specific, unless your levels are completely randomly generated

    Drone would rely on these if knowing it has a target, and then you can use the waypoints to find the player, this is the grid/connected graph you keep talking about in a very simple form.

    You know, find the way point closest to player, then find a path from drone thru waypoints to player


    For new comers to the thread here is my latest video I am all excited about!

    Rama's Physics Simulating AI Pathing Extension of UE4 Navigation Code

    I reworked the UE4 Pathing code to support physics simulating meshes, no Engine code had to be changed thanks to the awesome way Epic set up the code to be so easily extended/modified!

    Last edited by Rama; 08-26-2014, 12:04 PM.
    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    ♥ Rama

    Comment


      #77
      Originally posted by Rama View Post
      Finally.....I see a video from Rama without colors. Good job Rama...Good job.

      Support my RTS Game (Agora) on Patreon!
      Unreal Nexus - Create Share and Experience!
      Unreal Engine 4 World-Wide User Map

      [PLUGIN] Aws Gamelift Client Plugin
      [TOOL] Create your own binary release of UE4 from GitHub source
      My UE4 Tutorials and Misc Tools

      Lead Programmer at YetiTech Studios
      Your Friendly Neighborhood
      Satheesh PV (a.k.a RyanJon2040) | Twitter, Instagram, Facebook, LinkedIn, YouTube, Google+

      Comment


        #78
        Originally posted by ryanjon2040 View Post
        Finally.....I see a video from Rama without colors. Good job Rama...Good job.


        Just wait till you see my own personal project that is a multplayer game involving physics simulating objects as main characters!



        Rama
        UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

        ♥ Rama

        Comment


          #79
          Dynamic AI Jumping For Shortcuts

          In this video I am demonstrating the use of Navigation Mesh Point Projection to identify shortcuts for the navigation path that require jumping!

          When you see my AI jump to take shortcuts to their goal in this video, it is not pre-determined!

          I am dynamically calculating whether the AI should take a shortcut by jumping, and then overriding their normal pathing system so that they pursue the shortcut instead.

          Toward the end of the video you will see them jumping pretty high to reach their goal that is on higher ground!


          I did all the coding for this in C++ in my custom navigation component classes and the character class


          When the AI unit is following the jumping shortcut I do the code in the character class, and turn normal pathing off.

          While in normal pathing, I am running my own custom navigation point project line tests to check for shortcuts, which is what those lines of dots are!

          I stop as soon as higher ground is found that has pathing on it, and redirect the AI to use this shortcut!

          ~~~

          Navigation Point Projection

          This involves taking a 3D world space point, and using a volume extent to check if there are any nearby points in the navigation mesh that are within the z value of the extent.

          In this way I can check if higher or lower ground has pathing, and is thus viable to path to via a jump!

          Finding the best shortcuts and telling the AI to use them involved a loooot of C++ coding on my part hee hee!

          Thank you to Epic for USTRUCTS so I could expose all of this to Blueprints and keep the data organized in code without creating additional classes!

          ~~~

          Video


          Last edited by Rama; 08-30-2014, 10:37 PM.
          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

          ♥ Rama

          Comment


            #80
            Another great post Rama, I've been looking for AI pathing similar to this for my project.

            Comment


              #81
              Originally posted by sh1pwr3k View Post
              Another great post Rama, I've been looking for AI pathing similar to this for my project.
              Nice to hear from you!

              You can always PM me about my programming services

              ( I am not trying to turn this thread into an ad, I do share what I share here just for fun!)

              Rama
              UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

              ♥ Rama

              Comment


                #82
                Rama, I swear i remember you talking about coherent squad AI behaviour? Any work on that?. Also id like to ask how well your pathing system fits to procedural created AI tasks mixed with user interaction and AI Response interactions.

                Ive been working on using an AIML chatbot (started even before UE4) with AI direct verbal communication and response between user and assigned AI (voice recognition from user, verbal AI response which also dictates AI state). The nature of AIML chat bot AI is driven to select and execute specific behaviour tree's for any given character state (happy, ****** off, fear, aggression) to direct response.

                Idea being the AIML chatbot can act as interactive help system for the user (e.g ask where the base is from your current location, ask where the most active fighting area is on the map,) but also be as an AIML based XML AI engine set specific in engine AI behaviours based on the AIML chat bots responses.

                I would love to hear how you think the best way would be to have an interactive AI communication system within the engine, for example being able to talk to AI in everyday human speech and get responses in the same manner but also controlling AI behaviours.

                Cheers KB

                Comment


                  #83
                  Originally posted by KingBadger3D View Post
                  I would love to hear how you think the best way would be to have an interactive AI communication system within the engine, for example being able to talk to AI in everyday human speech and get responses in the same manner but also controlling AI behaviours.

                  Cheers KB

                  Can you be more specific about what functionality you need that you are not yet sure how to implement?



                  Rama
                  UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                  ♥ Rama

                  Comment


                    #84
                    AI Navigation Data Analysis

                    AI Navigation Data Analysis

                    I have found my way through the low level UE4 AI Navigation code so that I can retrieve all the individual nav mesh pieces at runtime, in C++, and figure out which one the character is in, and which one its goal is in!

                    I can use this analysis of all of the nav mesh pieces to handle dynamic calculation of paths that involve jumping or falling, ie, paths that regular AI navigation cannot complete.

                    In this video I demonstrate that I have all the data in my C++ code, retrieved at runtime, and can now analyze it to find additional paths that involve true 3D / Z values!

                    Enjoy!

                    Last edited by Rama; 09-01-2014, 04:14 AM.
                    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                    ♥ Rama

                    Comment


                      #85
                      Nice video Rama, your pathing is looking great.
                      W3 Studios

                      Comment


                        #86
                        New Video!

                        AI Jumping To Reach Specific Goal Across Nav Mesh Gaps


                        In this video I am showing how my C++ AI code is helping my AI units to get across gaps in nav mesh / different nav mesh sections to reach a specific goal!

                        My C++ code is enabling the AI to reach places they could never reach without some carefully calculated jumps!



                        In all of my videos all jumps are dynamically calculated, I am not using navlinks of any kind!

                        The only setup I did was to place the navigation mesh volume, the rest is done by me in C++ !

                        I use Navigation Mesh Point Projection to keep the cost of all my AI analysis very low


                        AI Jumping To Reach Goals

                        Last edited by Rama; 09-03-2014, 02:15 AM.
                        UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                        ♥ Rama

                        Comment


                          #87
                          Rama's Victory Jumping AI

                          When I saw my AI do this I was so happy!

                          All this is dynamically calculated by me via C++!

                          I do not have any nav links or other custom structures helping the AI!

                          All of what you are seeing is my C++ AI code at work!

                          I am calculating the correct jump angles and also intercepting the nav system whenever the AI would normally stop because there is no complete path to the goal location, and look at these test results!!!



                          ~~~

                          So Excited

                          I was so excited about these test results that I made a gif out of it!

                          Last edited by Rama; 09-03-2014, 03:14 AM.
                          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                          ♥ Rama

                          Comment


                            #88
                            AI Jumping Advanced ~ Edge Detection

                            In this video I am using Nav Mesh ray tracing to find the edge nav polys that are near the current chosen goal!

                            This enables me to give each AI unit better instructions about the best way to jump to reach their current goal, if gaps are detected!

                            I've already got my gap detection system working

                            ~~~

                            Nav Mesh Ray Tracing

                            Nav Mesh ray tracing is very efficient! It is much less expensive than 3D world tracing

                            It's the same concept as regular traces but only operates within the nav mesh polys.

                            ~~~

                            AI Performance

                            Notice how in my video my AI reaches me everywhere I go, including sequential isolated platforms!

                            ~~~

                            No Extra Helpers in Level

                            The only thing in this level is the basic nav mesh volume!

                            I have not provided any assistance to the AI in the level itself! No nav links!

                            The idea is that in my games I need support for runtime generated platforms and gaps, so the AI must figure everything out dynamically each time they wish to path, without any extra helpers.

                            ~~~

                            C++ Core, BP Accessibility and Control

                            Everything you see in the video is me doing C++ calculations to find the best jumping paths

                            I have exposed all the key variables of my algorithms to blueprints though, so that anyone can tweak the AI jumping, per creature!

                            That's right! Anyone using my system can adjust my algorithms per individual creature!

                            This is unit-level AI !

                            ~~~

                            Video



                            Enjoy!

                            Rama
                            Last edited by Rama; 09-06-2014, 11:55 PM.
                            UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                            ♥ Rama

                            Comment


                              #89
                              Rama!

                              This is simply Amazing!

                              I am new to UE4 but have a lot of experience coding AI in Neverwinter Nights 1 so the AI behaves more intelligently and huge performance increases. What you are doing with this is incredible!

                              This would be a great AI system base for both Enemy and Companions. Give players a few hundred things to think about.

                              I want/need something like this! haha!!

                              Krixa!

                              Comment


                                #90
                                Originally posted by Krixa View Post
                                Rama!

                                This is simply Amazing!

                                I am new to UE4 but have a lot of experience coding AI in Neverwinter Nights 1 so the AI behaves more intelligently and huge performance increases. What you are doing with this is incredible!

                                This would be a great AI system base for both Enemy and Companions. Give players a few hundred things to think about.

                                I want/need something like this! haha!!

                                Krixa!
                                Hee hee thanks Krixa!

                                (sorry I read your reply earlier but forgot to respond!)

                                Great to hear from you!

                                Rama
                                UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                                ♥ Rama

                                Comment

                                Working...
                                X