6 ms·
It seems like some of you have some real love for Godot. How come you decided to use/recommend Godot over Unity when it was less mature? Was it much better alon
by iamwil 7y ago
It seems like some of you have some real love for Godot. How come you decided to use/recommend Godot over Unity when it was less mature? Was it much better along some axis that Unity didn't provide? What makes it better along that axis?
Usually happens when something is 10x better at something new that people care about that the incumbent is blind to or is structurally incapable of addressing. I'm just wondering what it is in this specific case.
Ease of use? Beginner friendly? Open source so you don't have to pay? The node system makes it easier to do X?
- MattRix 7y agoI'm not a Godot user, I'm a Unity user, but the fact that you don't have to pay is one of the big draws of Godot. Unity Pro is $150/month per seat. The fact that it's open source is also big, because there are often bugs in the Unity engine that I can't fix since I don't have source access. A lot of devs also like jumping on new technology because it feels good to learn new things. Oh and then because it's open source, you can improve the engine and it gives you the "Ikea effect" where you like something more because you helped to create it.
- vanderZwan 7y agoI know quite a few game devs (side-effect of both living in Malmö and being active on the TiGsource forums) and if there is one common thing I hear about Unity it's how it does not seem to care at all about backwards compatibility, and how upgrades can completely screw over projects. I don't know what the story is with Godot (beyond the breaking changes between 2.0 and 3.0 that was mentioned in the linked blog post) but if that is a lot better then I can imagine that some game devs might be more interested in Godot for that reason too.
- dleslie 7y agoEvery version change, even minor revisions, come with a real risk of breaking your compiled asset bundles. From shaders to light maps to referenced classes. It's a huge amount of effort to keep a project tracking Unity version upgrades.
- iamwil 7y agoWhat do people do to deal with it? Are there services / libs that help you do the conversion? Or is it that you can't fully trust them, and you'll need to do that by hand anyway, because you might be one of the exceptional cases?
- ngold 7y agoFrom my limited experience, download the version that it was made with. Unity has a list of older versions right in it's hub.
- iamwil 7y agoYikes. Does Unity do forced paid upgrades, so you'd have to deal with the incompatibilities? Do they have a culture of incompatibilities so they can simplify their development and keep the best features and discard the worst?
- dagmx 7y agoUnity is both free and subscription based. They make older versions of the engine available in their management app, and projects are linked to a specific version unless you explicitly upgrade.
- grogenaut 7y agoWhat's funny is I think all of the major game studios that I know of essentially lock game engine per project once they're coding along. It's just expected that you stick with it for the rest of the project. Maybe 1 upgrade mid project. I had heard bungie used to, in the halo days, lock the engine 8-11 months out and the core tech team started working on the next game. The AAA studio I worked for essentially did that 3-6 months out. But those were 2-3 year game cycles. Maintaining a project would be less fun. But it'd be like choosing to do a rails or react upgrade.
- dleslie 7y ago> The fact that it's open source is also big, because there are often bugs in the Unity engine that I can't fix since I don't have source access. And very bad ones, at that; which will persist for years and several major versions. For instance: let's say you have a game that supports user generated content via loading asset bundles. This being the lowest barrier to entry for games to leverage the unity editor for UGC, it's quite common. Well, now and always, and known and reported since at least 5.2, any asset bundle that references a class not found in the compiled game client will crash the client on load. The only work around is to write your own asset bundle inspector and pre-analyse on load.
- deleted 7y ago[deleted]
- nineteen999 7y agoI wonder why this discussion always falls to Unity and Godot; Unity source is not available, while Unreal Engine source is. Unreal also has more features available than both engines out of the box, as far as I am aware. I don't want to sound like an advert, but the shading and Blueprint systems in UE4 are extremely intuitive and easy to work with, and the C++ is definitely managable. I've never used Godot, but the last time I compared Unity to UE4 it felt extremely clunky. Lastly, prototyping stuff in UE4 is fun, once you get used to it and develop your own workflow.
- michaelbrave 7y agoThe core benefit of unity over unreal is that it has community momentum. There are more tutorials, documentation and things available in their store. I prefer unreal myself, but those are things that are hard to combat against without epic making a more conscious effort.
- acfaruk 7y agoLast time I checked, the 2D features of Unreal were abandoned. Godot and Unity have both very nice 2D features and I would say that 2D is simply more manageable for a small indie game by a single developer.
- SiempreViernes 7y agoHistory I expect, Unreal was a expensive closed engine for AAA games for something like 15 years before moving to a source provided model where you paid with revenue. Unity had a free tier for something like 10 out of those 15 years.
- bkanber 7y agoI've been a Godot hobbyist for years. Big factors for me at first were that it's open source and that it's lightweight. I started using it for those reasons, and then I found that the node system "clicks" much faster than Unity's model. Once you "get it", Godot is both very easy to work in and program for, and while it's not as polished as Unity, it's basically the perfect tool for solo hobby projects.
- Buttons840 7y agoI use Linux and Godot is easy to install and use on Linux, and fits with the open-source philosophy. I have not made professional games, but I had a good enough time playing around with Godot for a few hours here and there that I recommend it when I can. It also works well with Git, which as a coder first, game creator second, I appreciate. I don't think this is the case with Unity, but I am not sure.
- Thaxll 7y agoGodot is not even close to Unity, it's a toy engine for garage project.
- iamwil 7y agoAnd that's exactly it! Why do people adopt seemingly less mature technologies? If they never did, we'd never have new stuff, and startups would never win! But they do, and the question is, how does it happen? The canonical story is described by Clay Christensen in the Innovator's Dilemma, where the new toy X is inferior to the mature Y along most dimensions. However, something changed in the world, and people are starting to value a dimension where the new toy X is 10x better than the mature Y along a single dimension. And that allows the new toy X to gain a foothold. I'm super curious as to how Godot managed it, even if it has been a long time in the making. Of course, not all toys end up replacing the incumbent. But by dismissing everything as a toy, you're shutting off a line of inquiry to see how this process happens. If you're on HN, it's a good chance you're a programmer and by definition a creator. And if you're at all ever wanting to bring something new into the world, it'd behoove you to understand how new creations are accepted.
- rozab 7y agohttps://www.reddit.com/r/Unity3D/comments/ef8jrh/unity_in_2016_vs_2019/ https://www.reddit.com/r/Unity3D/comments/ef8jrh/unity_in_20... Here's a meme which is actually very illuminating. Someone in the comments mentions checklist-driven development, which seems about right. Unity doesn't feel like a complete product right now, it's full of systems which are either incomplete and badly documented or outdated and buggy.
- iamwil 7y agoI often wondered if that's the curse of building a horizontal product where you're trying to satisfy multiple types of users with different jobs to do (typical in enterprise products) Or if it's just an inherent complexity in the actual job. Or if it's an issue with management and product managers that can't decide which users to service, so they do the easy, but wrong thing and try to service them all.
- vanderZwan 7y agoConway's Law (which of course is not really "law") would suggest the last option is the most likely. Given that other game engines don't really have this issue the other two options seem less likely to me too. [0] https://en.wikipedia.org/wiki/Conway's_law https://en.wikipedia.org/wiki/Conway's_law
- FartyMcFarter 7y agoUnity does have a lot of offices in different cities, maybe you're on to something.
- vanderZwan 7y agoOh, really? That can't be good for development. Other companies at least have different projects for different teams but since Unity is really one big umbrella project that is bound to get messy with that set-up
- blensor 7y agoI have been looking into godot every once in a while when it came up on HN and liked what you could do but was not convinced that I want to use it. Recently I wanted to write a workout game for the Oculus Quest for my own use and I am really impressed how well VR development works in Godot. I have never made a godot game before and never made a VR game before and it is really progressing nicely. An added benefit is that one of the devs has already added experimental hand tracking support. So even if the big game studios do not support it yet godot games can already support it, which is a real benefit for a workout game where you also have to do pushups (unsing the controller is a bit unwielding there) For those who are interested what a first game looks in godot https://github.com/mgschwan/VRWorkout https://github.com/mgschwan/VRWorkout
- iamwil 7y agoWhat convinced you to pull the trigger and use the Godot on the new project? Was it the VR development smoothness?
- blensor 7y agoMostly that it runs super smooth on linux and I do not have a high end laptop, so I wanted something on the lightweight end of the spectrum. I then came along a youtube tutorial about getting started with VR development on Godot by the main Godot dev. So I'd say all the stars aligned and I had a reason to try it out. The Godot discord is also a very nice place, as I got in contact with the developer who works on the hand tracking support. It's really very much like the Blender developer community, from the people hanging out there.
- mosfetarium 7y agoI used Unity in a work environment for about a year and a half, so I feel like I have a reasonably informed, if potentially a little outdated opinion, since that experience was some years ago. Whilst Unity is generally more mature there definitely are areas where I strongly prefer Godot. (Disclaimer: I am a FOSS nerd) First up the added Unity maturity isn't always as helpful as you'd expect. There were many areas that felt very incomplete, requiring us to write our own solutions, or find third party ones often at cost. An example was I believe we encountered strong limitations with the built-in AI Navigation system that made it pretty useless to us. There were third-party navigation solutions, but this sort of summarizes part of the problem with Unity: there is a lot of third party addons, but a lot of them felt like things that just overcome the often confusing limitations of the original product that I already paid money for. Lots of game engines can suffer from being particularly suited for certain genres and not others, even supposedly generic ones like Unity. So if you were making something that was kinda weird and would require a lot of bespoke special work, using Unity didn't really get you any wins. Godot plays better with VCS systems using a nice human-readable scene format called tscn, that is swapped for a binary format on project export. I find this format is usually readable enough to review scene file changes in PRs, with the usual exception being a scene that was primarily imported geometry data. To get around that we'd import geometry data into bespoke geometry scenes, and they'd be nested by reference into the scenes that you'd like to be able to review diffs on. Additionally this scene format merges nicely in git, and has allowed me to work on team projects and have people edit scene files in their own branches without fear. Unity (and Unreal) at least at the time, had nothing approaching this. There was a Unity text-scene format, but it was a merge nightmare regularly. In practice we ended up using a VCS product (I believe perforce) that allows you to exclusively check out a scene file. Which at least stops people stepping on each others toes too much but hinders productivity. Unity as of last I heard still does not have an out-of-the-box solution for nested prefabs, with many opting to use a commercial add-on to supplement the short-coming. This feels like it has been the single most complained about Unity pain point, so it was very confusing that nothing really seemed to be happening. Godot uses an approach that I find much more elegant. There's no distinction between a scene file and a prefab, which allows for some nice refactoring where something becomes a prefab after not initially being conceived as one. You simply have the ability to make a scene graph node that is a instanced reference to an external scene, and this nests nicely with no limit that I've ever encountered. The Unity Editor was a bit of a dog. It regularly crashed and experienced general slowness. I find Godot much more stable snappy, and don't experience anywhere near the amount of tool frustration. But I have heard that it has been quite a bit more stable in the past year or so. I encountered a lot more weird rigid design in Unity. IIRC if you wanted to runtime load content such as textures or models, they had to be inside of one specific subdirectory of the project. In general Unity seemed to force its philosophy of project organization onto you, while Godot will happily go along with whatever approach you want. I still think there are reasons to use Unity. It is more mature, companies generally want access to an existing talent pool, and let's not forget that often it is worth sticking to the tool you know. But I definitely have found that I enjoy working in Godot more than I did Unity, and as a fairly experienced programmer I don't mind not having as big of a community to rely on for assistance. I don't work as a game programmer anymore, but I continue to do hobby projects near exclusively in Godot.
- blondin 7y agothe real reason is that godot feels lightweight to devigners and they want to use it. there were tons of other html5/js game engines, some who have been there longer, but none have had support from mozilla!!
- iamwil 7y agoHow come it feels lightweight? Would you be able to articulate it?
- pontoffel 7y agoGodot doesn’t just feel lightweight, it is lightweight: the entire program is a single modestly sized executable, it takes very little time to go from startup to making something, and it runs well even on lower spec computers. It’s also not very mentally imposing: once you get the hang of nodes, the scene tree and signals, you’re pretty much set.
- michaelbrave 7y agoIn a lot of ways godot handles 2D sprite based games better. The easiest way to explain it is that in unity it's a 3D game acting like a 2D game, in godot it really is 2D. I've made a few game jam games in both, and got up and going much faster with godot, but the tutorials and documentation were lacking. But it installs right away, takes up very little space and we managed to get sprite based games up and running in less than a day. There were quirks and things that need to change, but on the whole I'm very hopeful for what godot becomes.
- grawprog 7y agoFor me the first reason was the open source nature of the project. But the more i've used it, the more i've really started to love the node system and editor workflow. I have to be honest, i've never used unity and don't have much interest in it, so I cant compare. The choice to move the projects i've been working on to godot though was after setting up some sprite animations I'd set up previously manually using Sfml. What took me almost two weeks originally took me 30 minutes to redo and improve upon using godot. Also, sort of insiginificant but, I really enjoy the way you can enter equations into any input box that accepts a number and it'll solve it for you automatically. The only other software I've used that does this is alphacam and it's such a handy feature I really miss it when it's not there.
- wastedhours 7y agoI like Godot to play around with because there's no mental effort attached to "but what if I release this eventually". 99% of everything I've ever built is just quick little play projects, but taking on a commercial engine (even if the license is free) ties my brain to different concepts. Godot just frees your mind from that side of things, and so in that case, it's a 10x experience if that long-range commercial element taxes your mind.