BPVM Snack Pack #13 - The DAG Scheduler: Ordering Chaos
Your Blueprint nodes can connect in complex ways, but they must execute in order. The DAG Scheduler turns your web of nodes into a linear execution list.
Your Blueprint nodes can connect in complex ways, but they must execute in order. The DAG Scheduler turns your web of nodes into a linear execution list.
Before your nodes become bytecode, they become statements. Think of them as the intermediate language between visual nodes and machine code.
After creating properties and functions, they're just loose parts. Linking and Binding connects everything together into a working class. Here's the final assembly line.
Your Event Graph isn't really a graph when it runs. It's transformed into a giant function called the Ubergraph. Here's how the function factory works its magic.
When you create a variable in Blueprint, it's not really a variable yet. It's just a description waiting to become a real property. Here's the metamorphosis.
Blueprint classes don't get deleted and recreated during compilation. They get cleaned and reused like a whiteboard. Here's the clever trick that makes hot reload possible.
Every node in your Blueprint needs a translator. Meet the Node Handlers - the unsung heroes that turn your visual nodes into executable code.
Every Blueprint class has a hidden template object that nobody talks about. Meet the CDO - the mysterious instance that defines what 'default' really means.
Blueprint classes don't use C++ inheritance. They use a pointer-based system through SuperStruct. Here's why that design matters.
How does Blueprint A reference Blueprint B when B isn't compiled yet? The skeleton class - Blueprint's version of forward declarations.