[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)