17 votes

Dev snapshot: Godot 4.1 beta 1

6 comments

  1. [4]
    Vapid
    Link
    Universal Summarizer: I've been trying out Godot since 4.0 coming from Unity. I'm not part of the Untiy hatewagon - I'm very fond of it. My problem with Unity the past few years have been...

    Universal Summarizer:

    • Godot 4.1 beta 1 has been released for testing, focusing on polishing the user experience and stabilizing features added in Godot 4.0.
    • Many bugs have been fixed related to CSG, GDScript, Voxel GI, and platform support.
    • The editor has received polish with improvements to various workflows.
    • C# now has support for global classes, making it more feature-parity with GDScript.
    • The code and shader editors can now be detached from the main editor window.
    • A system for assigning custom tags to projects has been added to improve project management.
    • The GDExtension system has received improvements to stabilize the API and expand functionality.
    • GDScript received internal clean-up and fixes to existing features. Static class variables are now supported.
    • Work has been done to improve multi-threading support and resource loading.
    • Improvements were made to navigation, particles, and shader built-ins.

    I've been trying out Godot since 4.0 coming from Unity. I'm not part of the Untiy hatewagon - I'm very fond of it. My problem with Unity the past few years have been worsening iteration times. The Editor takes a long time to open, recompiling after any code change takes a long time, the memory usage is pretty high. I don't have the best CPU or RAM anymore and it's definitely noticeable. Godot on the other hand is lightning fast. It opens super quick and its C# compilation times are blazing fast.

    So far I'm quite liking Godot with C#. It takes some getting used to but there's still smal things here and there that always makes me end up missing Unity. Right now though, Godot is great for my motivation. If I don't feel like working on my hobby project, I can tell myself "just do anything for 15 minutes" and because Godot and Rider open so quick, it mentally feels easier to just do some quick progress.

    Some random qualms I have with Godot

    • I probably just have to get used to it, but I miss multiple components on the same node (game-object). People say you should create child-objects and add the "component" script to them for composition but it still hasn't clicked with me yet
    • Spawning nodes (prefabs) isn't type safe in C#. You have to export a variable of type PackedScene and then call packedScene.Instantiate<MyScriptType>() which will throw at runtime if the wrong type has been assigned. When assigning a reference in the editor, the editor has no clue which types are expected so it lets you assign any node of any type. In Unity this is type-safe in the editor already, which I dearly miss.
    • The C# API isn't quite there yet. It's very noticeable in places that GDScript comes first and that a well designed and type-safe C# API isn't first class yet. There is a raycast method that returns a Dictionary of properties which you have to access by string key and cast to the correct type instead of returning C# class :/
    • The lack of an asset store hurts. I have no artistic abilities. I love being able to focus on the game design and programming and just buy art assets. I don't really care if the art isn't 100% original.
    • The community isn't big enough yet for large libraries and tools that are abundant in Unity. There's no advanced enough equivalent to Vehicle Physics Pro, for example

    Overall, I love Godot for the project I'm working. The increased development speed is my main advantage. For my little hobby project I'm working on now, Godot is exciting, fun, new, and fast! But if I were to start making something a bit bigger scale that I have planned for my next project, I fear I have to go back to Unity until Godot is more mature.

    Anyway, that's my Godot rant that somehow ended up in this topic about the upcoming 4.1 version! Exciting times for Godot :)

    5 votes
    1. [2]
      ra314
      Link Parent
      Replying here since it was mentioned in the summary you generated. I'm so glad we're getting static class variables. I'm tired of using autoloads to track stuff like instance count. Could you...

      Replying here since it was mentioned in the summary you generated. I'm so glad we're getting static class variables. I'm tired of using autoloads to track stuff like instance count.

      Could you explain why not having multiple components on the same node is an issue for you? Is it because you have to access the child node before you can access any functions it has? Also re the asset store, I feel this isn't a big issue for me because I can find free assets on itch.io.

      The release of godot 4 inspired me to start working again on a clone of this NDS game I really liked. Specifically the addition of first class functions made my life a lot easier!

      3 votes
      1. CaptainChillPill
        Link Parent
        The free stuff on itch.io is quite awesome. Especially if you're into 2D. Naturally, I make it hard on myself and I'm working on a 3D project. I'm mostly sticking to programmer art right now. I...

        The free stuff on itch.io is quite awesome. Especially if you're into 2D.

        Naturally, I make it hard on myself and I'm working on a 3D project. I'm mostly sticking to programmer art right now. I would embark on a dark ritual for a clone of myself that has spent the last decade making art and animations instead of programming.

        2 votes
    2. CaptainChillPill
      Link Parent
      I'm very excited for the [GlobalClass] attribute. The old way was super obnoxious. I feel you with the raycast and other API issues. I've just started making my own tweaks with extension methods....

      I'm very excited for the [GlobalClass] attribute. The old way was super obnoxious.

      I feel you with the raycast and other API issues. I've just started making my own tweaks with extension methods. Do you think that would be something that I should share?

      2 votes
  2. [2]
    lou
    Link
    Maybe this should go in ~games.game_design?

    Maybe this should go in ~games.game_design?

    1 vote
    1. Vapid
      Link Parent
      Possibly, I wasn't sure. This isn't about game design explicitly, more so development in general. I have no strong opinion about it though. Initially I posted this in ~tech but someone moved it to...

      Possibly, I wasn't sure. This isn't about game design explicitly, more so development in general. I have no strong opinion about it though. Initially I posted this in ~tech but someone moved it to ~comp 🤷