I noticed a couple questions here about pure functions and what their point is. I wanted to give an answer for anyone wondering the same question. For context, my day job is programming, but I’m not a gavedev, so this answer is based on my experience writing code for other stuff.
Take the blueprint at 5:30 in the video, there’s a pure function “Has Ammo?” and a non-pure function “Print String”. The non-pure function “Print String” can only execute after the “Branch” is done executing, in other words, the non-pure functions execute in order, one after the other, and the developer has to line up all the white lines to make that happen.
The pure function is the opposite, it executes when it’s needed and does not have to be ordered with the white event line. The output of “Has Ammo?” is used by the “Branch” when the branch executes. If, hypothetically, “Has Ammo?” was non-pure; the white event line would have to feed from “Space Bar” into “Has Ammo?”, then into “Branch”, then into “Print String”; making the blue print slightly more difficult to edit and understand (for a small example like this, it doesn’t make a big difference, but for large blue prints, reaching over a hundred functions, its value really starts to shine. Imagine the complexity of a single white event line feeding through a hundred function blocks).
Using pure functions simplifies the blue print, because you don’t need extra white event lines all over the place to trigger the execution of pure functions. It makes the blue print easier to read and easier to develop.
I hope this makes sense! I don’t have much experience teaching so sorry if it just makes things more confusing.
There’s probably a lot more nuance I don’t know about, but in the context of this warehouse wreckage game that’s what’s going on!