3 ms·
Just because Unreal does it doesn’t mean it’s “popular”. I’m not familiar with any other game engine that has something like this as a first class feature. The
by bogwog 5y ago
Just because Unreal does it doesn’t mean it’s “popular”. I’m not familiar with any other game engine that has something like this as a first class feature.
The reason blueprints exist in UE is because they needed a way to allow non-expert programmers on the team to write code that isn’t C++, but they didn’t want to use a high level scripting language like Lua.
IIRC, Sweeney said (on Twitter) that in the past, it was a burden to constantly be designing and maintaining language bindings for scripts, especially with a rapidly changing engine.
Also, (I’m guessing here), blueprints result in less bugs since it provides static typing and makes it possible to do some advanced visual debugging. These are things that, even if they were available in a language like Lua, they would be intimidating and/or uncomfortable for the artists/non-programmers on a team. Plus I’d imagine that it’s relatively easy to produce some highly optimized code from blueprints, maybe even compile it to native instructions.
It’s also probably no coincidence that the visual node-based concept is used a lot in other tools used primarily by artists, like for material creation.
- vvanders 5y agoNot many game engines are well documented so there's more than a few out there that do this. One that I worked on used Maya DAG extensively for similar features(although it made it fun to fight over the floating licenses sometimes).
- smaudet 5y ago> "IIRC, Sweeney said (on Twitter) that in the past, it was a burden to constantly be designing and maintaining language bindings for scripts, especially with a rapidly changing engine." Why do you think that is? I mean essentially these are specialized DSLs which you have to maintain bindings for...I can't imagine its easier to test you haven't broken your visual language. > "These are things that, even if they were available in a language like Lua, they would be intimidating and/or uncomfortable for the artists/non-programmers on a team. " Ok I can agree that languages don't always provide for the easiest mental translations, but I will say if you are not an artist, i.e. you are a verbal not visual thinker, blocks with lines probably are more intimidating, not less... In that same vein you probably shouldn't presume a non-programmer prefers visual metaphors - a lawyer or an accoutant probably finds a high level textual description more helpful (dsl, or config file). There is probably a better middle ground, i.e. lua text blocks which can be visually represented as boxes or as code unit files. The other supposed benefits you mention are more easily handled by a smart compiler - you can optimize what is inside the block but this will prove difficult to optimize across blocks - whereas code is arguably already broken down to its simplest form, so the whole thing can be optimized (plus, interpreters can do nifty runtime optimizations compiled languages just don't get)
- hjkl0 5y agoFWIW, it’s heavily used in Blender as well.