TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Godot 4.0 will discontinue visual scripting

303 pointsby arduinomancerover 2 years ago

24 comments

weinzierlover 2 years ago
&gt; Godot ended up allowing a lot of its users to be a tool to learn programming instead.<p>This, so much. After careful deliberation I chose Godot and GDScript as a follow-up after Scratch for my kid to learn programming.<p>Godot and GDScript are great, because:<p>- Easy enough to pick up after Scratch. GDScript is easy to learn yet powerful enough to teach most relevant programming concepts and it even is able to make real world applications.<p>- Graphics and Sound! Nothing is more motivating for children than something that moves, blinks and makes noise. That&#x27;s how I got into programming in the 80s and it still works the same - technology changed a lot but humans are still humans.<p>- With Godot it is easy to make a mobil app. I cannot stress enough how important that is. The primary computing device for kids today is the mobile phone. If the thing you make isn&#x27;t there it doesn&#x27;t exist.<p>- GDScript is quite similar to Python - in syntax and spirit. It will make learning Python as the next language a lot easier.<p>- GDScript just makes sense and is free from legacy cruft. You don&#x27;t have to constantly hand-wave away things you can only explain with a lot of historical context, which children totally lack.<p>- Games! The only thing more fun than playing games is making your own.<p>- Godot is not a toy (like Scratch) but is used for real world apps! Not even games only but also serious apps with 10k+ users, like the Tesla app for example. Kids love to do serious grown-ups stuff.<p>Funnily, even after spending quite some time with Godot recently, this article is the first time I heard about Godot&#x27;s visual scripting. If I had known about it, I might have used it to ease the transition from Scratch.
评论 #32577795 未加载
评论 #32578137 未加载
zubspaceover 2 years ago
I am really looking forward to Godot 4. GDScript improved a lot.<p>I&#x27;m mostly excited about callables (function pointers), easier signal handling in combination with await (former yields) and an improved tweening system. The scripting environment inside of the editor with inbuilt documentation, code completion and debugger is really an achievement.<p>The only thing I miss are static typing and refactoring tools. You can use type hints, but you need to fall back to dynamic typing at some places for example because there are no generic collections.<p>Therefore I&#x27;m quite excited about the dotnet6 branch being merged into main a few days ago [1]. This is a huge step and will probably make some unity developers consider Godot for their next game.<p>Also there&#x27;s GDExtension, the successor of GDNative, which will make it easier to integrate C++ code [2].<p>I could never imagine myself using Visual Scripting, because you can express yourself so much easier in Code.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;godotengine&#x2F;godot&#x2F;pull&#x2F;64089" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;godotengine&#x2F;godot&#x2F;pull&#x2F;64089</a><p>[2] <a href="https:&#x2F;&#x2F;godotengine.org&#x2F;article&#x2F;introducing-gd-extensions" rel="nofollow">https:&#x2F;&#x2F;godotengine.org&#x2F;article&#x2F;introducing-gd-extensions</a>
评论 #32575606 未加载
评论 #32576104 未加载
评论 #32586784 未加载
hresvelgrover 2 years ago
I am not surprised by this and I&#x27;m glad they chose to discontinue it. It was never very good and even to a complete beginner it&#x27;s nowhere near as easy to use as GDScript. This should free up some development budget for more important features.<p>Visual scripting has never been very good for general purpose programming in my opinion. They don&#x27;t really represent continuity in an intuitive way and it gets worse when you&#x27;re dealing with function with many parameters. Shader graphs are probably the one exception to this because they provide a pseudo debugging facility where you get to see how materials change after different operations.
评论 #32576163 未加载
评论 #32575225 未加载
评论 #32576141 未加载
spywaregorillaover 2 years ago
Most people are missing the big point I think which is their point 2<p>&gt; Even though the visual scripting part was good enough, Godot lacked high level components to make use of it. Engines like Unreal, Game Maker or Construct offer high level game features packaged together with the visual scripting solution. This is what makes it useful. Godot is an extremely general purpose game engine where it&#x27;s easy to make those features yourself, but they don&#x27;t come packaged out of the box. As such, visual scripting by itself was of little use.<p>This is it. what makes unreal blueprints great is that it&#x27;s mostly just engine API calls. This is pleasant to do and generally helps you learn the engine in a discoverable way. Want to walk around? Character movement component. Want to play with audio? Audio component. etc. etc.<p>My current project is about 90&#x2F;10 bp&#x2F;cpp. It&#x27;s not right to think of it as no code. You&#x27;re going to need to think an awful lot about class inheritance, interfaces, event replication, etc. It&#x27;s very much code and the swarms of noobies that want to try it without understanding code fundamentals all give up pretty quick.
phireover 2 years ago
Reading between the lines:<p>It seems like one of the primary reasons why Blueprints are well-loved in Unreal Engine, is that the only mainstream alternative is full-on c++ (and it&#x27;s not an easy c++ codebase to work with).<p>But without that pressure of limited choice, blueprint visual scripting seems to have a hard time gaining ground in godot.<p>I do wonder how much of this is because godot&#x27;s visual scripting never got the polish it needed, and how much is because gdscript is a superior approach.
评论 #32574338 未加载
评论 #32574858 未加载
评论 #32574630 未加载
评论 #32574489 未加载
bodge5000over 2 years ago
A little off topic, and I know it&#x27;ll never happen (though it is a common, if very minor, issue people have with Godot), but in that header image it looks like they accidentally found a better logo for Godot. It&#x27;s still got the classic shape, and the centre circle looks less like the centre of a cog and more like an eye, but its also a lot cleaner than we&#x27;ve currently got.<p>Anyway, back on topic, yeh I think this is for the best. I never really saw it used, and the few times I tried myself it seemed less intuative than just programming. Also much harder to express in documentation. Also for beginners, its not a great lesson to learn, visual scripting is uncommon in the wider industry outside of game dev, and where it does exist is very specific to its own software
评论 #32577796 未加载
cm2187over 2 years ago
There are lots of initiatives for &quot;no code&quot;, Microsoft&#x27;s power suite, Alteryx, Office&#x27;s power pivot, etc. I love the idea that non technical users could do more and create active programs.<p>But my experience is that the population who will not learn code (and I am not talking about learning c++, more like SQL and python&#x2F;VBA) is also the population who will not want to learn a complex software with its internal logic and create complex workflows.<p>Whereas the population who would be happy to do so, is also the population who would pick up a scripting language easily.<p>So in the end the user base for those tools is pretty narrow.
评论 #32590306 未加载
评论 #32583931 未加载
viraptorover 2 years ago
Refreshingly clear upfront explanation with data backing it and with alternative paths explained. (even if you can dispute the self-selection in the poll) I like their communication.
mateszover 2 years ago
For newcommers to this subject, I really recommend watching this video [1]. It compares C++ vs Blueprints in UE. The author behind it has lot of game programming overview videos. I&#x27;m not that much into video watching since it&#x27;s much harder to jump between sections than in textual content, but still these are really really good.<p>Also, maybe in a little bit different space is enso.org - visual real time etl. People behind it have just received series A funding. You can design pipeline using visual editor (built in rust btw., however it doesn&#x27;t work that well yet imo) and custom built programming language [2]. I think you can even go from textual representation to visual and back, not 100% on that one though.<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VMZftEVDuCE" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VMZftEVDuCE</a> [2] <a href="https:&#x2F;&#x2F;enso.org&#x2F;docs&#x2F;syntax" rel="nofollow">https:&#x2F;&#x2F;enso.org&#x2F;docs&#x2F;syntax</a>
scrameover 2 years ago
Seems like implicitly it&#x27;s better to take notes from current users than actual users, since your first effort might not be what the potential users expect.<p>Ive only poked at godot, is there a reason that GDscript is so dominant?<p>ETA: is the IDE based around it, or other things aren&#x27;t well supported, or is visual scripting something that just doesn&#x27;t fit godot&#x27;s model
评论 #32574143 未加载
评论 #32575548 未加载
sirwhinesalotover 2 years ago
The sort of graph based editing they used sucks for coding anything beyond a pile of data transformations (which is why it works well in Enso or for Blender pipelines).<p>If they want visual editing they should look into old Game Maker or Construct 3 for how to do newbie friendly visual scripting.
评论 #32575856 未加载
meltynessover 2 years ago
Huge Godot fan! Built a prototype of a VR app, myself, ran it wirelessly -- and the whole process was very, very smooth. Love it!<p>Isn&#x27;t this a bit of a problem for people with dyslexia? I&#x27;m sure a compatibility layer could be built -- or since you can script Godot with C++ or Python, that some workaround could be found. I feel like asking here would jilt my response, but I know someone who has dyslexia, and it greatly hampers, at the very least, their motivation to deal with any type of software.<p>Furthermore, it looks like their motivation for removing it is simply usage-rate... wouldn&#x27;t that suggest maybe that the problem isn&#x27;t Visual Script, but possibly that the market demanding it couldn&#x27;t figure it out? To that, there is an explanation of how to use NativeScript at <a href="https:&#x2F;&#x2F;docs.godotengine.org" rel="nofollow">https:&#x2F;&#x2F;docs.godotengine.org</a> but there&#x27;s a barrier that you have to take the 3-hour tutorial geared towards GDScript (not VisualScript) in order to get an introduction to the Godot Engine state machine hierarchy, so there&#x27;s no real pathway to using it for the target market without the barrier of regular coding.
评论 #32586879 未加载
KronisLVover 2 years ago
Moving it to an extension seems like the sane thing to do!<p>That way:<p><pre><code> 1.) the functionality wouldn&#x27;t be gone forever with no way for anyone to use it 2.) the community could maintain it and fix and eventual incompatibilities with the main engine 3.) the engine developers could focus their efforts elsewhere, better spending their limited resources 4.) the quality of the plugin would be proportional to the size of the community; if people care, it&#x27;d survive; if not, then no effort wasted </code></pre> Of course, personally I&#x27;m in the camp of people who want to use a general purpose language like C# for game programming due to its wider ecosystem, about which I&#x27;ve written here: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32274504" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32274504</a><p>That said, it most definitely takes effort to support it as well, so if it was to be dropped in the future eventually, in favor of only supporting C++ or GDScript as first party languages, I&#x27;d be understanding, similarly to how one might want to have 3rd party bindings for Rust or Lua or Python or whatever without the engine developers having to care about it too much.<p>I think something like that actually happened to Boo in Unity: <a href="https:&#x2F;&#x2F;blog.unity.com&#x2F;technology&#x2F;documentation-unity-scripting-languages-and-you" rel="nofollow">https:&#x2F;&#x2F;blog.unity.com&#x2F;technology&#x2F;documentation-unity-script...</a><p>That said, having any visual scripting capabilities is pretty cool, like for use cases such as dialogue trees, state machines, shader graphs etc. People generally seemed to think rather highly of plugins like Dialogic for Godot: <a href="https:&#x2F;&#x2F;github.com&#x2F;coppolaemilio&#x2F;dialogic&#x2F;blob&#x2F;main&#x2F;addons&#x2F;dialogic&#x2F;Documentation&#x2F;Content&#x2F;Welcome.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;coppolaemilio&#x2F;dialogic&#x2F;blob&#x2F;main&#x2F;addons&#x2F;d...</a>
cpetersoover 2 years ago
How do visual scripting systems like Unreal Blueprints handle version control and merging of changes from multiple people?
评论 #32574502 未加载
评论 #32586918 未加载
crispyalmondover 2 years ago
Does this mean they are also removing the VisualShader as well? Or purely the scripting part?
评论 #32573958 未加载
评论 #32579060 未加载
oifjsidjfover 2 years ago
One of the reason why I used Blueprints a lot in UE4 (despite being totaly at home and liking C++) is that iteration was much faster.<p>Recompiling C++ was ok-ish with hot-reload, but each time I changed&#x2F;added some header file or class&#x2F;struct member I had to recompile the entire thing which meant restarting the entire Unreal Editor.<p>During this wait time I often went online which broke my flow or productivity.
qikInNdOutReplyover 2 years ago
Visual scripting is a dead end.<p>Much preferable would be to have a IDE to display code visually in metaphors. Like i create a input set, and then can watch the input traverse the state-pachinko machine until it comes to rest again. Make it easier to see cause and effect of a single moment, visually displayed, without loosing the underlying code and class structure.
评论 #32576938 未加载
评论 #32578121 未加载
Hfmwodbover 2 years ago
Context: I’ve used Godot 3 and I have a fair bit of experience in several programming languages.<p>I think this is a terrible idea, even though understand why they would want to drop support for it. I personally prefer typing out the logic, but I’ve seen some of these “let’s make a video game without writing code” videos, and it makes me sad that they don’t think it’s worth focusing on. I think this is going to make budding game developers choose some other engine (where they will become more comfortable and they’ll mostly stick to).
dkerstenover 2 years ago
Godot’s visual scripting was very much an afterthought anyway. It was an alternative syntax for GDScript really, rather than something designed with a use case in mind. Visual scripting can be great, if it’s specifically designed to tackle certain tasks (eg why visual shaders tend to work great, or high level visual scripting). As an alternative to textual syntax, it’s not very good.
slipwalkerover 2 years ago
<a href="https:&#x2F;&#x2F;youtu.be&#x2F;jAAkD827ubc?t=379" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;jAAkD827ubc?t=379</a><p>this is a fair comparison of GDScript, C# and Visual Script, and the conclusion was &quot;visual script is good for no one&quot;
sylwareover 2 years ago
godot has a c++ toxicity issue to solve for elf&#x2F;linux game binaries, I did report to them the issue, and indeed, they reasonably cannot do anything, only the gcc devs (glibc devs should be safe now) can do something (or godot would have to move to good and plain C, or similar).<p>Game binaries should be a set of elf binaries statically loading (elf dt_needed) only libdl, namely with only dlopen&#x2F;dlsym(tls safe)&#x2F;dlclose symbols (with the oldest version as possible, probably 2.2.5) in the elf dynsym section except the other symbols from those very distributed binaries.<p>The pb is the static gcc libstdc++ (and to a lesser extent the gcc static libgcc) does not libdl anything from the C runtime, or even worse could link to glibc internal symbols. All those very symbols, will end up in the elf dynsym section of the distributed binaries with the versions from the glibc used at link time. Namely, if a user wants to run on a older glibc distro those binaries, since glibc devs have a versioning frenzy, it won&#x27;t even load (and the reasons are often more planned obsolescence than anything else).<p>Some must not forget that static linking won&#x27;t do unless a full elf loader is in linked in, since xcb&#x2F;(wayland is static)&#x2F;libasound(pulseaudio,pipewire,jack,whatever is hidden behind the alsa api)&#x2F;libxkbcommon(-x11)&#x2F;vulkan&#x2F;(GL) libs will have to be loaded from system.<p>Godot, as mitigation, pushes the devs to link with a very, VERY old, glibc (a decade?). It provides &quot;containers&quot; for &quot;building&quot; with an old glibc, and for the devs not using those containers, the documentation is clear about the age of the glibc to link with.<p>The reality is gcc c++ was never meant for binary-only distribution, just never.
评论 #32579436 未加载
born-jreover 2 years ago
huh, i wonder it is possible to just do visual editor on top of gdscript instead similar to <a href="https:&#x2F;&#x2F;developers.google.com&#x2F;blockly&#x2F;" rel="nofollow">https:&#x2F;&#x2F;developers.google.com&#x2F;blockly&#x2F;</a>
评论 #32579681 未加载
alexalx666over 2 years ago
its a shame they don&#x27;t have more support for quickly building non-game UIs in their wonderful editor. Last time trying to create a simple app felt like dragging IB connects in XCode 5 years ago but less intuitive
评论 #32589036 未加载
dunno7456over 2 years ago
Well written! Thanks for the team!