Announcement

Collapse
No announcement yet.

MGC 'Magic Nodes'

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

  • started a topic [PLUGIN] MGC 'Magic Nodes'

    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.

  • replied
    Originally posted by BrUnO XaVIeR View Post
    Hehe.. I have no luck with that kind of stuff.
    Dev Grants, lottery, etc.

    I just don't even try
    It might not be my place to say this but in case you really didn't, you should DEFINITELY submit for Dev Grants (there is no luck involved), they even have a check-box for "Tool/Plugin" in submission form. I just hope you get rewarded for this awesome tool materialistically as well! Wish I could do it myself .

    Leave a comment:


  • replied
    At this moment I consumed all the time I was allowed to invest into this plugin.
    I wanted to implement all the algorithms in the custom toolkit just like the ones that is implemented on the Node editor; I just couldn't deliver for now, ran out of time.

    Auto indent I was also unable to implement at this time, Slate got in the way (I failed in that function and scrapped it).

    But all these things already noted, I also want them lol
    I'm not too worried about it, because I want to keep working on it for many years. I just can't rush it or prioritize it above my job tasks :s

    Leave a comment:


  • replied
    Edit: Seems it wont generate code because it was open in visual studio.

    I would like to see it auto indent code and needs a complile/generate button in the MagicNode editor. (Not just on the node itself.)
    Last edited by ArxMods; 02-03-2019, 06:54 PM.

    Leave a comment:


  • replied
    This plugin is now released



    MARKETPLACE
    GITHUB

    Leave a comment:


  • replied
    Subscribed, bookmarked, noted and thousand thanks for this plugin!

    Leave a comment:


  • replied
    This is brilliant. Please update this thread when it arrives on GitHub (or other site like it).

    Leave a comment:


  • replied
    Originally posted by Mootjuh View Post
    Does it make separate files for each function? Or are all magic nodes put inside one big function library?
    The first iteration I was compiling them to a library.
    But then I noticed that hot-reloading time was increasing the more nodes I create.

    Now what I do is create source files for each node class, hot reload became way faster and will remain the same time always, when I recompile just one node.

    Now instead of packing them within a library, I pack their source files inside the Source/MagicNodes/ folder. You will be able to see each generated class within Content Browser's C++ directory.

    The good thing is, if desired, you can remove all Magic Nodes from your Blueprints later and destroy the "Script" asset once the C++ class is generated and compiled. Then you include and use the C++ code directly. So the nodes in this case would be just a testing environment before moving your algorithms to full C++ in Visual Studio environment...
    I've been doing that. Once a node works the way I want, and I know I will never change it again, I delete the node asset and call the native functions directly from my Character.cpp.
    Only nodes that are really self-contained I leave them running as is, when the functionality doesn't fit any of my native classes.

    Oh I think I forgot to mention in the blog post to include "MagicNodeRuntime" module to Build.cs file for that, to make those sources usable by native project classes, otherwise project classes might cause error when calling magic node functions directly.

    Leave a comment:


  • replied
    Does it make separate files for each function? Or are all magic nodes put inside one big function library?

    Leave a comment:


  • replied
    Everything should be set now for Marketplace release.
    Later on I will setup a GitHub public repo as well, but before that, I want to collect feedback from both users without coding experience and C++ veterans.

    For now, I've written a little bit about the ins and outs of this system and how it is meant to work for you, here:

    https://brunoxavierleite.com/2019/01...s-programming/

    Leave a comment:


  • replied
    Hehe.. I have no luck with that kind of stuff.
    Dev Grants, lottery, etc.

    I just don't even try

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    This looks to be really cool. I would imagine your plugin would be accepted.

    Leave a comment:


  • replied
    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.

    Leave a comment:


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

    Leave a comment:

Working...
X