Announcement

Collapse
No announcement yet.

MGC 'Magic Nodes'

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

  • 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.wordpress.c...s-programming/
    Last edited by BrUnO XaVIeR; 11-13-2019, 10:48 AM.

    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:


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

    Leave a comment:


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

    Leave a comment:


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

    Leave a comment:


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

    Leave a comment:

Working...
X