<story><title>Ask HN: Why is visual programming so popular for game programming?</title><text>Why is visual programming so popular for game programming compared to other domains?&lt;p&gt;For example Unreal Blueprints&lt;p&gt;What is it about them that makes it so popular?</text></story><parent_chain><item><author>jay_kyburz</author><text>I think you are only a huge fan of blueprints because they is no alternatives in Unreal. I think if you could compare an Unreal Lua integration to Blueprints you would reach for Lua every time.&lt;p&gt;Everything you wrote is just as true for a well written text program, and untrue for badly written blueprint spaghetti!</text></item><item><author>oneoff786</author><text>I’m a huge fan of blueprints. A few things it does well:&lt;p&gt;* makes the engine api very discoverable, which is huge. It’s a step above intellisense and auto complete. The api is likely the reason it’s so dominate in games. It’s the bulk of game programming. Visual programming isn’t very good for coding new things from scratch.&lt;p&gt;* let’s you read code and clearly follow execution from start to finish.&lt;p&gt;* let’s you visually document concepts with collapsed nodes, and colored containers and what not. Good blueprints are literally written as long form pseudo code, with double clicks to see actual implementation.&lt;p&gt;* concepts like const functions are just conceptually clearer. Const functions have no execution pin. They (should) have no side effects. Just a calculation. The engine doesn’t enforce this I don’t think but it’s close…&lt;p&gt;What it explicitly does not do is allow you to code games without knowing how to code. Countless beginners just die on the first steps. You still need to understand object oriented design and basic coding concepts to do well.</text></item></parent_chain><comment><author>vvanders</author><text>We used to have UnrealScript and 9&amp;#x2F;10 our designers still reached for Kismet instead.&lt;p&gt;Lua is great and I&amp;#x27;m a huge proponent of it but different tools are meant for different use cases.</text></comment>
<story><title>Ask HN: Why is visual programming so popular for game programming?</title><text>Why is visual programming so popular for game programming compared to other domains?&lt;p&gt;For example Unreal Blueprints&lt;p&gt;What is it about them that makes it so popular?</text></story><parent_chain><item><author>jay_kyburz</author><text>I think you are only a huge fan of blueprints because they is no alternatives in Unreal. I think if you could compare an Unreal Lua integration to Blueprints you would reach for Lua every time.&lt;p&gt;Everything you wrote is just as true for a well written text program, and untrue for badly written blueprint spaghetti!</text></item><item><author>oneoff786</author><text>I’m a huge fan of blueprints. A few things it does well:&lt;p&gt;* makes the engine api very discoverable, which is huge. It’s a step above intellisense and auto complete. The api is likely the reason it’s so dominate in games. It’s the bulk of game programming. Visual programming isn’t very good for coding new things from scratch.&lt;p&gt;* let’s you read code and clearly follow execution from start to finish.&lt;p&gt;* let’s you visually document concepts with collapsed nodes, and colored containers and what not. Good blueprints are literally written as long form pseudo code, with double clicks to see actual implementation.&lt;p&gt;* concepts like const functions are just conceptually clearer. Const functions have no execution pin. They (should) have no side effects. Just a calculation. The engine doesn’t enforce this I don’t think but it’s close…&lt;p&gt;What it explicitly does not do is allow you to code games without knowing how to code. Countless beginners just die on the first steps. You still need to understand object oriented design and basic coding concepts to do well.</text></item></parent_chain><comment><author>beebmam</author><text>There certainly are alternatives in Unreal. You can implement everything (and far more) in C++ without ever needing to use blueprints.</text></comment>