4 ms·
Would love to see Godot become the Blender of game engines: a genuinely professional-grade tool despite being free and open-source Unity, its closest peer, is
by brundolf 5y ago
Would love to see Godot become the Blender of game engines: a genuinely professional-grade tool despite being free and open-source
Unity, its closest peer, is a piece of crap in a lot of ways. But it's a piece of crap that has a lot of important features. I look forward to the day nobody ever has to reach for Unity again.
- penetrarthur 5y agoIt might have been true about Unity some 5 years ago, but during last couple of years Unity has been improved significantly.
- DynamicStatic 5y agoIsn't it still in deprecation hell? Do they even have a recommended proper own network solution? Everytime I use unreal I'm blown away by how smooth it is (as long as I find what I'm looking for in their insanely huge toolbox), unity meanwhile just feels like constant roadwork.
- brundolf 5y agoWhat I hear from people who use it professionally is that it's constantly having features get deprecated, sometimes before they have a full replacement, that it constantly crashes and has various undocumented SDK behaviors (which sometimes change without warning), etc Over the last five years it went from "not a professional game engine" to "a professional game engine". That doesn't mean it's a good one.
- KronisLV 5y agoI feel like i share your positive view of Godot, yet i'm afraid that it might take somewhere close to a decade for it to become a viable alternative to Unity, since a lot of engineering effort has gone into it. Currently, in comparison to Godot, Unity is better in regards to: - C# as a first class citizen, really good performance, especially with DOTS - extremely wide platform support, especially in regards to consoles - many optimizations and functionality such as occlusion culling and LODs out of the box - modern render pipelines that are geared towards lower end devices (URP), while others that are suited for more visually stunning projects (HDRP and i'd argue that also the default pipeline) - a huge amount of tutorials, articles and examples of how to do something - the biggest asset store of any game engine out there, providing everything from AI plugins, character controllers, inventory systems, real time occlusion culling solutions, billboarding solutions, model LOD generation solutions, dialogue systems and anything else that you could think of, really; it's an excellent source for throwing together prototypes and yoinking a few ideas of other developers after looking at their code - really big share of the market is taken up by Unity, so professionally it makes sense to use it and learn it - this also means that most of the external tools that one might want to use also integrate really well with Unity However, Unity is also a lot worse in other aspects: - there is no networking solution that's actively supported - DOTS and URP/HDRP were both haphazardly thrown together and feel broken - frankly, in the past 3-5 years, it seems like Unity doesn't know what it wants to be and as a consequence feels inconsistent - the closed source nature of it is also a pretty big problem for many projects Who knows where the industry will be in 10 years, but personally i hope that Godot succeeds where jMonkeyEngine, Xenko/Stride, NeoAxis and many others have failed.
- zamalek 5y ago> C# as a first class citizen, really good performance I've been doing C# since .Net 1.0, have netcore contributions, and have to conclude that this is "pro" extremely subjective. - Unity forces you to use ugly non-idiomatic C#. - GScript is a language built for game engine scripting. It has deep knowledge of game concepts, as well as the scene graph. - Rust/other via GDNative are just as good as DOTS. - There is a GD build with first-class C#.
- kaibee 5y ago> - Unity forces you to use ugly non-idiomatic C#. Can you elaborate on this?
- zamalek 5y agoE.g. their own API https://docs.unity3d.com/ScriptReference/Behaviour-enabled.html https://docs.unity3d.com/ScriptReference/Behaviour-enabled.h.... Idiomatic C# is PascalCase public members. Look at the BCL. Yes, the capitalization of fields in Unity determines the flavor of property, buy that's exactly what attributes were designed to do.
- KronisLV 5y ago> GDScript is a language built for game engine scripting. It has deep knowledge of game concepts, as well as the scene graph. Agreed, however it also being purpose built not only makes it so that your skills will be non transferable, but also that learning resources for it will be more limited in comparison as will code libraries. For example, last i checked the language also has some interesting restrictions, like no Singleton design pattern for example; that alone makes managing global background services in games harder. Edit: seems like you can sort of have Singletons now, though having some that are completely separate from the scene graph would be even better: https://docs.godotengine.org/en/stable/getting_started/step_by_step/singletons_autoload.html https://docs.godotengine.org/en/stable/getting_started/step_... There are some really lovely people making plugins for Godot as we speak (the terrain one is especially cool), however it will take years for an ecosystem to be built around Godot. Historically, it has worked out for some languages nicely, like Lua, but less so for others, like ActionScript. For some people a purpose built language is a boon, for others it's a drawback. > There is a GD build with first-class C# I think our definitions of "first class" differ. In Unity, you don't use anything else apart from C# and even when there also was Boo or their version of ECMAScript, C# got a really large amount of love in regards to documentation, examples and tutorials. Since C# support is so new in Godot, that's not exactly the case and for example, as of now i cannot yet open a project in JetBrains Rider and get information about which API methods are slow and should be used with caution, or common code suggestions like i can for Unity. Now, personally i believe that C# being supported is a good thing and even Godot having separate builds for versions with/without is an idea that makes sense, but there's still a lot of refinement to be had before it is truly usable enough so that you can breeze through projects with it and be sure that both your code will be performant enough (without having to go down to a lower level) and that you won't hit snags along the way. The efforts of Unity to have their .NET workflow be smooth and comfortable cannot be praised enough - if they gave as much attention and consideration to the actual editor and plugin ecosystem (as opposed to deprecating features with no replacement, or releasing features before they're stable), they'd really be in a stable spot! Oh, and you can also look at Xenko/Stride engine to see what another engine that uses C# and has had a bit more attention given to it looks like (even though the engine itself is somewhat half baked and doesn't have terrain support out of the box, much like Godot). That said, i'm sure that the situation will only improve in the coming years!
- 41209 5y agoUnity taught me how to program, and even today it's just the easiest way to get something done fast. For example if I want to build a platformer, with tons of special effects, I can do this in about 2 days with Unity. The asset store itself is Unity's biggest advantage. Want to make a game about finding Easter eggs in the woods, buy Gaia and you have your forest. From a technical point of view , Unity is amazing. My one concern is the business seems to want to extract more and more from users. You went from being able to buy Unity to needing to subscribe, and subscribe to a bunch of other auxiliary services. That said, C# is C# so your skills are easily transferable. I'd love to see another commerical C# driven option. I'm not a big fan of how Godot tries to support 3 or 4 programing languages. This fractures your userbase and makes finding tutorials much harder. Although I will admit my very first programing language was Unity's JavaScript implementation.