[HN Gopher] Godot 4.0 Released
       ___________________________________________________________________
        
       Godot 4.0 Released
        
       Author : coppolaemilio
       Score  : 380 points
       Date   : 2023-03-01 16:46 UTC (6 hours ago)
        
 (HTM) web link (godotengine.org)
 (TXT) w3m dump (godotengine.org)
        
       | sarah_eu wrote:
       | I've been working with it for a few weeks. Developer but no
       | gamedev background. I love it. Very easy, documentation is
       | extensive, good support on the forums. I will agree with others
       | in this thread who've said they don't like GDScript. For me it's
       | not necessarily a problem with the language (although it's not
       | immediately clear how script execution works - each script is
       | attached to a tree node), but rather that it's another thing to
       | learn. Given that, I've used custom modules (module compiled into
       | engine) and GDExtension (module compiled as a shared library).
       | GDExtension is what I wanted, and I can write a game in C++, and
       | have it build quickly.
        
       | panza wrote:
       | Unity-based dev here. This is looking really strong. Impressed
       | with their focus and speed of development.
       | 
       | If I were putting together a small-ish team with 1-3 people
       | today, I'd be more likely to consider jumping onto Godot vs
       | Unity. Godot is closing the gap.
        
       | sirodoht wrote:
       | Any experiences with Godot + M1 macOS?
        
         | mos_6502 wrote:
         | I'm on a team that's currently shipping a Godot 3.5.1 game
         | across Linux, macOS (universal), and Windows.
         | 
         | After sorting out a couple minor snags in the build process
         | (particularly around getting cross-compilation to work on Linux
         | in GitHub Actions, and library validation entitlements for code
         | signing), the finished builds work wonderfully on the M1
         | machines we've tested with.
        
         | poisonarena wrote:
         | works great, I haven't switched to 4 though.
        
         | cridenour wrote:
         | Been using 4 on my M1 with no issues at all.
        
       | EamonnMR wrote:
       | Been using the Godot 4 beta and RC for my latest project. The new
       | features (especially lambdas) in GDscript have been killer.
       | Congratulations to the Godot team.
        
       | derhuerst wrote:
       | see also https://news.ycombinator.com/item?id=34982889
        
         | hummus_bae wrote:
         | Last time I checked godot did not support web assembly yet.
         | EDIT: it does now. WIll take another look.
         | 
         | https://docs.godotengine.org/en/stable-3.3/web/fundam...
        
           | runevault wrote:
           | Note you can't use the c# support for web currently, though I
           | believe they are working on that, I wanna say for 4.1. Same
           | for mobile.
        
       | alphanullmeric wrote:
       | Why isn't c++ a first class citizen in a game engine written in
       | c++?
        
         | MapsSlaps wrote:
         | In my experience, most devs dislike working in C++. (I'm an
         | industry engineer in games. Even the people who like C++ hate
         | C++.)
         | 
         | Maintaining C++ support is expensive for an engine, just like
         | maintaining any language binding. IMO, they should optimize for
         | the most approachable/developer ergonomic language, which C++
         | definitely is not.
         | 
         | That said, I strongly disagree with their decision to simply
         | build their own language. I think there are many languages that
         | already exist that make better candidates for game development
         | either because they are well known, well supported, or easily
         | portable.
        
           | detrites wrote:
           | Do you have any specific criticisms of GDScript you'd like to
           | share?
        
             | j_4 wrote:
             | Not GP but I'm a full time solo indie dev.
             | 
             | In my case the main issue with GDScript is the tooling, or
             | lack of thereof. No symbol aware rename, no go to
             | definition/usages, poor autocomplete, cryptic errors. Also
             | static typing that's kinda but not entirely there, which
             | exacerbates the tooling issues.
             | 
             | Good tooling is an enormous undertaking, so the way I see
             | it, GDScript is forever doomed to feel like someone's
             | impressive hobby project.
        
               | pacifika wrote:
               | There's a gdscript plug-in for IntelliJ IDE's then you
               | have all that.
        
               | j_4 wrote:
               | There's a very barebones plugin that does simple syntax
               | highlighting and code completion, more basic than the
               | built-in Godot editor.
        
             | fb03 wrote:
             | Not the OP but I can pitch in that, for me, it is important
             | (and I'd add: efficient) to invest my scarce time in a
             | language that can be used in several contexts
             | 
             | e.g.: Using python, I can do games, scientific/bio work,
             | math, web backends etc. The same time investment in
             | GDScript will only net me experience with GDScript which
             | right now only exists in Godot.
        
               | ignaloidas wrote:
               | From my experience it's a lot easier to learn another
               | language than to learn a new model of operation or new
               | concepts entirely. And if you'll want to work with Godot,
               | that will likely be the main barrier, and the main thing
               | that will not be transferable to other contexts. The
               | language however, can only make working with the concepts
               | easier or harder. Godot team has decided that having
               | their own language designed for dealing with the concepts
               | of the engine makes it easier to use and results in less
               | work than trying to adapt some existing language to the
               | concepts of the engine. I've dealt with this a couple
               | times, where a language was transformed so much by the
               | context it was used in, it felt like an entirely
               | different language.
        
             | hesdeadjim wrote:
             | It's a toy language with almost zero open source library
             | support. And trying to hire someone to work in it and
             | implicitly agree that they don't care about their CV and
             | future hireability is a tough sell.
        
             | MapsSlaps wrote:
             | I don't doubt that I can learn it. Learning a language is
             | pretty easy.
             | 
             | I doubt that I'll have rich tooling and libraries to draw
             | from when I need them.
             | 
             | If I build a game in C#, for instance, I have editors that
             | can lint my code, perform intellisense, automate test
             | generation, and a rich set of libraries I can draw from. If
             | I don't want to write my own Hierarchical Task Network
             | planner, I can use FluidHTN. Likewise, I can pull out my
             | code from my project and modularize it for other
             | engines/games -- maybe I've got a great state machine
             | implementation or something I want to share. GDScript
             | limits my reach.
             | 
             | The knowledge is also not particularly useful outside of
             | working with Godot. Picking up C# from working with Unity,
             | for example, translates to other domains easily if I want
             | to change careers.
             | 
             | I also can't write my backends and supporting services in
             | GDScript. If I wanted to , I could make my entire codebase
             | in C# for both front end and back end code, simplifying my
             | tooling and knowledge needs.
             | 
             | I don't want to be too down on it. I'm sure there are ways
             | that it would save time. My use cases are much more about
             | setting a high bar for ergonomics and engineering
             | excellence for larger projects. I think that in my case,
             | they've provided the Extensions and C# support route.
             | (Though it sounds like getting those to work on all
             | platforms is non-trivial today.)
        
               | HideousKojima wrote:
               | >I also can't write my backends and supporting services
               | in GDScript.
               | 
               | I mean technically you can. Godot has a headless mode for
               | servers, etc. I certainly wouldn't pick it as my first
               | choice for all the other reasons you listed though.
        
             | jay_kyburz wrote:
             | OMG cyclic dependency hell for a start.
        
               | polytely wrote:
               | fixed with this new release btw
        
               | jay_kyburz wrote:
               | I figured, every time I try Godot there is some annoying
               | problem that will be fixed in the next release.
        
           | optymizer wrote:
           | GDScript is basically Python syntax with some sugar.
           | 
           | * Well known: Python is well known. GDScript is thus
           | familiar. * Well supported: it's a first class citizen in
           | Godot, that's all that matters * Easily portable: portable to
           | what? it runs on the Godot engine. That's all the portability
           | it needs.
           | 
           | I think they built their own language because of the
           | integration with their Editor. It's not Lua or JavaScript or
           | Python, but it works well enough for Godot in my experience.
        
         | ehutch79 wrote:
         | Not familiar with the codebase, so grain of salt.
         | 
         | It's likely due to being cross platform. What's happening is
         | they're bundling the scripts and assets with a pre-built
         | binary. If you're writing all c++ you're likely going to link
         | in the engine instead, not the paradigm they support. That said
         | I know you can extend the game engine, and there is some kind
         | of plugin support for building native code, but you've got to
         | do compile time support yourself? It even supports Rust now
         | apparently?
        
           | ehutch79 wrote:
           | https://godotengine.org/article/introducing-gd-extensions/
           | 
           | https://docs.godotengine.org/en/4.0/tutorials/scripting/gdex.
           | ..
           | 
           | https://github.com/godot-rust/gdextension
        
         | EamonnMR wrote:
         | It is inasmuch as you can modify the engine source if you would
         | like to program your game like that. Most engines maintain a
         | distinction between the engine implementation language (usually
         | C++) and scripting (game implementation) language, and Godot is
         | no different.
        
         | jeremyjh wrote:
         | Godot has always had native module support; the reason it is
         | not more popular is because it is more or less impossible to
         | support a stable C++ ABI across compilers and operating
         | systems. So you have to build Godot yourself for your dev
         | platform and every platform you ship to. That is what
         | GDExtension and the official C++ bindings solve. Once you set
         | up your builds native modules are totally decent, but
         | personally I find it saps productivity compared to GDScsript,
         | and if you only need it for performance critical code then
         | GDExtension is probably fine (I haven't used it or GDNative,
         | but I did write native modules before those other options
         | existed).
        
       | wilg wrote:
       | Looking good. Hoping in a couple of years it will be a no-brainer
       | to use instead of Unity.
        
         | hesdeadjim wrote:
         | They have a looooooong way to go to make it an appropriate tool
         | for large teams, but they are taking all the right steps to
         | reach that hopeful future.
         | 
         | The founders creating a commercial arm of the engine is
         | critical. As a real studio, you need to be able to support
         | consoles and you need to be able to pay someone money to fix
         | broken shit in the engine when you have a scary deadline
         | looming.
        
         | Geste wrote:
         | To me, as a hobbyist, it already is a no-brainer.
        
           | wilg wrote:
           | I'm sure it's great for a lot of things. I've just been using
           | Unity for a super long time and it still has a lot more
           | "batteries included" features. But I'm jealous AF about
           | realtime global illumination.
        
             | TulliusCicero wrote:
             | > But I'm jealous AF about realtime global illumination.
             | 
             | Does Unity not have this? I thought Unity was much more
             | advanced in graphics than Godot, even accounting for the
             | 4.0 release.
        
               | Rapzid wrote:
               | I could be wrong but I vaguely recall that perhaps the
               | engineer that pioneered the technique for Unreal Engine
               | developed the POC in Godot.
        
       | projectramo wrote:
       | I assume someone cracks a "waiting for" joke every time there are
       | is any update from them.
        
         | giancarlostoro wrote:
         | Are you waiting for someone to? :)
        
       | zuluonezero wrote:
       | Best engine I have used for years - thanks Godot community and
       | tech leads.
        
       | camdenlock wrote:
       | Huge quantity of work here. Really stunning.
       | 
       | How is this sustainable through donations alone?
        
         | ignaloidas wrote:
         | Because people make money using it.
        
           | einpoklum wrote:
           | A bit like LibreOffice, actually - donation-sustained,
           | ecosystem includes commercial companies which use the tech
           | with modifications/extensions, who donate money, new
           | features, bug fixes etc.
        
         | TulliusCicero wrote:
         | Probably helps that the core devs are in Argentina IIRC. They
         | don't need to pay themselves as much as developers in the
         | states or western Europe (though hopefully their compensation
         | is still more than adequate).
         | 
         | https://www.numbeo.com/cost-of-living/country_result.jsp?cou...
        
       | galleywest200 wrote:
       | This is excellent news! I have been waiting for Godot (hehe) to
       | release this.
       | 
       | The new Vulkan backend is exciting for 3D projects and I am
       | excited to try to dig into the new 2d tilemapping after work.
       | 
       | As well, gotta love experimental Rust support:
       | 
       | > With Godot 4, we introduce a new system called GDExtension. By
       | design, it takes the best parts of creating GDNative extensions
       | and writing custom engine modules using high performance
       | languages such as C, C++ or Rust.
        
         | Buttons840 wrote:
         | What do you mean about Rust? I don't see any special Rust
         | support other than GDExtensions which can be utilized by almost
         | any language.
        
           | runevault wrote:
           | Yeah it is via GDExtension, note most languages do need to
           | build some level of interface to take advantage of it. Rust
           | already has one though I dunno just how clean the 4.0 version
           | is yet (last looked months ago when they openly said it was a
           | work in progress).
        
         | danjoredd wrote:
         | Love that cultured pun
        
           | faisal_ksa wrote:
           | It might not be relevant to HN. But could you please explain
           | the reference? Why is Godot a joke? I'm familiar with the
           | reference
        
             | MapsSlaps wrote:
             | https://en.wikipedia.org/wiki/Waiting_for_Godot is the pun
        
               | faisal_ksa wrote:
               | Thank you so much
        
         | [deleted]
        
       | schaefer wrote:
       | Does anyone recommend a good resource for diving into Godot 4.0
       | as a complete beginner?
       | 
       | I'm talking introductory materials and an overview of the bigger
       | ideas, not (yet) the nuanced details.
        
         | runevault wrote:
         | If you just want the basics they have a tutorial on site[0],
         | this covers 2d and 3d. The 4.0 Tutorial scene is still pretty
         | barren on youtube, and some of the existing ones may be invalid
         | because of changes that happened over the alphas and betas.
         | 
         | GDQuest is working on updating his content to 4.0 but even with
         | the half off discount that stuff may be a bit pricey if you
         | aren't sure you want to dive into the Godot world (his full
         | compilation of Tutorials was like $379 before discount and
         | individual ones are like $150 before discount).
         | 
         | [0] https://docs.godotengine.org/en/stable/
        
       | TulliusCicero wrote:
       | This is awesome, though I'm unsure whether I should port over my
       | small 3.x C# project right now, or wait for 4.1.
        
       | astlouis44 wrote:
       | Excited for eventual WebGPU support for Godot!
        
       | anderspitman wrote:
       | Been using Godot the past couple months. It's simply a joy to
       | work with. From the single (relatively) lightweight executable
       | model, to the dogfooding of implementing the UI with the engine
       | itself, to the design of GDScript, etc etc. They definitely
       | implement a lot in-house, but reuse existing software where it
       | makes sense.
       | 
       | Every once in a while I use a program where I just feel the
       | authors think about software similarly to the way I do. Godot is
       | one of those.
        
         | mixmastamyk wrote:
         | Does it share widgets with blender or is this another graphics
         | app reinventing the wheel?
        
           | DiggyJohnson wrote:
           | How does sharing or not sharing widgets with blender make
           | this "another graphics app reinventing the wheel"? Godot is a
           | game engine, not [just] a graphics app.
           | 
           | But yes, Godot 4 directly translates interfaces with .blend
           | files.
        
             | mixmastamyk wrote:
             | * * *
        
         | Thaxll wrote:
         | GDScript sucks big time. It has not place in an engine, why
         | would anyone ever invent a very inferior language to what
         | already exists.
         | 
         | They should have used C#.
        
           | blensor wrote:
           | Well nobody forces you to use it. You can mix it with other
           | languages, even more so in Godot 4 where languages can be
           | GDExtensions. You can write one script in GDScript and
           | another in C# if you want.
           | 
           | I personally like to use it. It's not perfect but it's a
           | language that's tailored for the task it's doing, namely
           | driving the high level logic of a game engine.
           | 
           | And most importantly it's beginner friendly, so it's pretty
           | nice for people who want to get into programming.
        
           | tom9729 wrote:
           | Personally as a beginner it's nice to have GDScript built-in.
           | You can literally install Godot as a single executable and
           | everything is self contained which vastly simplifies getting
           | started versus Unreal where you have to install Visual
           | Studio. (I have no experience with Unity but I'm assuming you
           | similarly have to install some C# dependencies.)
           | 
           | Their motivations in creating GDScript are explained here: ht
           | tps://docs.godotengine.org/en/stable/about/faq.html#what-w...
           | 
           | As a programming language it's pretty reasonable. The built-
           | in editor has auto completion and documentation, you can
           | resume from errors. The syntax is basically Python with
           | optional type annotations. Comparing the Godot vs C# examples
           | in the documentation makes me shudder at how much more
           | verbose C# is in comparison.
           | 
           | As others have pointed out you can use C# if you want to.
           | They provide a separate download for it.
        
           | johnfn wrote:
           | > They should have used C#.
           | 
           | They did...
        
           | danbolt wrote:
           | Can you elaborate? I've mentioned this in another comment,
           | but I think it's well suited to the engine's model.
        
       ___________________________________________________________________
       (page generated 2023-03-01 23:01 UTC)