Announcement

Collapse
No announcement yet.

MGC 'Magic Nodes'

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

    [PLUGIN] MGC 'Magic Nodes'

    Hello!
    I have been using this for a while now and, even though I didn't have the time to put together extensive learning resources, I believe it's ready to be shared with you guys

    I've put together a system which I call "Magic Nodes" (lol) where we can write some C++ functions in-place on any Blueprint Graph and that node will "morph" to match the input and output parameters of the function you wrote within the node itself. Some people might be confused of why we would need this, but instead of trying to advocate the tool I'd rather let your own experience speak for itself; there's numerous tasks where dragging wires on Blueprint Editor slows down productivity and this tool could be useful to address that, sometimes it's simply faster to type a few lines of code instead of dealing with wire spaghetti!

    With this I also hope, with time, Blueprint developers have a first contact with C++ code and slowly become comfortable moving to Visual Studio workflow later on, if wanted


    So, what is this... A few super simple simple examples:








    We can type some code, compile (hot-reload), and the node will "morph" its pins to accommodate and execute the function we wrote inside of it.
    This can be very handy for developers missing something in-between Blueprints and pure C++ code...
    Also it's very useful to actually "read" right there what exactly that one node is doing.



    While coding our functions in this node, we can have some basic auto-complete functionality as well.
    However keep in mind that I have no previous experience with any of this, turns out making an auto-complete feature is a beast of a complex task and I've implemented only the very basics!
    For example, in this screenshot the node detected I am trying to invoke a function from a ACharacter class, so while I was typing it will show me functions and properties members of ACharacter class:





    Now released:


    MARKETPLACE
    GITHUB


    Last edited by BrUnO XaVIeR; 01-28-2019, 10:35 PM.
    | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

    #2
    Due to forum limits for screenshots, videos, etc... I have a little deeper explanation of this plugin in a blog post here:

    https://brunoxavierleite.com/2019/01...s-programming/
    Last edited by BrUnO XaVIeR; 01-28-2019, 10:37 PM.
    | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

    Comment


      #3
      Reserved for FAQs...
      | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

      Comment


        #4
        If it's free why not just open source it and let us download it on github while waiting for epic's approval? It looks very interesting btw
        YouTube channel: https://m.youtube.com/channel/UC1qaQM1VnY441J5lCLCPMwg

        Comment


          #5
          Originally posted by Ispheria View Post
          If it's free why not just open source it and let us download it on github while waiting for epic's approval? It looks very interesting btw
          The source is fully open.
          However, not everybody know how to setup plugins from outside Marketplace.

          GitHub source I will release later, for now I'm busy coding things not related to any of this (work stuff).
          | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

          Comment


            #6
            amazing tool!

            Comment


              #7
              Yes,this will definitely help in moving over to C++, allow learning and replacing incrementally without fear of destroying existing projects.

              Just curious, any added bonuses like performance in packaged builds using these nodes over blueprint nodes? or nativization issues or benefits, regardless this is brilliant, cheers.

              Comment


                #8
                Originally posted by Basement Bob View Post
                Just curious, any added bonuses like performance in packaged builds using these nodes over blueprint nodes? or nativization issues or benefits, regardless this is brilliant, cheers.
                Hot-reload times are much faster than when you change a whole character class in C++ for example.

                This plugin only work on C++ projects, because it generates C++ classes for your nodes.
                It self-nativize by default.

                The cost of calling one node is the same of calling a C++ function. You can have multiple functions in your node code, they will be all native C++ functions (no VM cost).

                There's only 1 VM cost per node, just like any functions created in pure C++.
                You can create and call hundreds of internal functions within your node code and call them, the VM cost ia still going to be just one.

                If you call Blueprint Function on the other hand, the VM cost is the function * nodes it contains, each one is a VM cost...

                So in this system's case, your runtime cost is just the same as if you were coding everything from pure C++ in Visual Studio. 1 VM cost per node executed

                In fact this plugin generates its own C++ code from the nodes you create, you don't even need to nativize anything, it's native code by default!
                The generated C++ classes are stored inside your project's Source/MagicNodes folder (automatically).

                Those generated native classes are what is executed in your packaged game, the nodes are just "hosts".
                | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

                Comment


                  #9
                  Fantastic,
                  hopefully someone at epic sees the value of this and moves a bit of that dev-grant money your way for your ongoing support of the community.

                  Comment


                    #10
                    Even Visual Studio with VAX doesnt have a List of inherited functions
                    I'll take a look at this.

                    Comment


                      #11
                      This looks terrific! I'll be weening myself over to c++ using this - great work as usual Bruno.

                      Comment


                        #12
                        Would it be possible to maybe to something similar to existing BP nodes/C++ code in your project source folder? View, edit & recompile?

                        Comment


                          #13
                          Originally posted by Dannington View Post
                          This looks terrific! I'll be weening myself over to c++ using this - great work as usual Bruno.
                          Thanks!

                          Originally posted by Mootjuh View Post
                          Would it be possible to maybe to something similar to existing BP nodes/C++ code in your project source folder? View, edit & recompile?
                          lol no, the whole blueprint system would need a rework for that.
                          | Finite State Machine | Auto-Save Plugin | USQLite Plugin | Object-Pool | Sound-Occlusion | Anti-Cheat Plugin | Property Transfer Tool | Magic Nodes |

                          Comment


                            #14
                            This looks to be really cool. I would imagine your plugin would be accepted.

                            Comment


                              #15
                              I would be more than happy to help Bruno at repository level to maintain the code, thou I might not have time to add functionality to it besides just maintain new engine releases

                              Fantastic job as always BrUnO XaVIeR !

                              PS: apply this to Unreal Dev Grants if not already!!
                              Last edited by NilsonLima; 01-22-2019, 12:36 PM.
                              Nilson Lima
                              Technical Director @ Rigel Studios Ltda - twitter: @RigelStudios
                              Join us at Discord: https://discord.gg/uFFSEXY

                              UE4 Marketplace: Cloudscape Seasons
                              supporting: Community FREE Ocean plugin

                              Comment

                              Working...
                              X