News for hackers. Stuff that matters.
Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @02:17PM (#21929881)
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?

Re:Godot Engine – A decade in retrospective and future by MattRix on Wednesday January 01, 2020 @02:29PM (#21929953)
I'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.

Re:Godot Engine – A decade in retrospective and future by dleslie on Wednesday January 01, 2020 @02:45PM (#21930075)
> 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.

Re:Godot Engine – A decade in retrospective and future by vanderZwan on Wednesday January 01, 2020 @02:44PM (#21930059)
I 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.

Re:Godot Engine – A decade in retrospective and future by dleslie on Wednesday January 01, 2020 @02:47PM (#21930089)
Every 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.
Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @03:13PM (#21930262)
What 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?

Re:Godot Engine – A decade in retrospective and future by ngold on Wednesday January 01, 2020 @04:29PM (#21930796)
From my limited experience, download the version that it was made with. Unity has a list of older versions right in it's hub.
Re:Godot Engine – A decade in retrospective and future by grogenaut on Thursday January 02, 2020 @02:59AM (#21933684)
What'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.

Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @03:12PM (#21930260)
Yikes. 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?

Re:Godot Engine – A decade in retrospective and future by dagmx on Wednesday January 01, 2020 @04:01PM (#21930605)
Unity 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.

Re:Godot Engine – A decade in retrospective and future by nineteen999 on Wednesday January 01, 2020 @04:42PM (#21930891)
I 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.

Re:Godot Engine – A decade in retrospective and future by acfaruk on Wednesday January 01, 2020 @06:12PM (#21931436)
Last 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.
Re:Godot Engine – A decade in retrospective and future by michaelbrave on Wednesday January 01, 2020 @05:38PM (#21931227)
The 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.
Re:Godot Engine – A decade in retrospective and future by SiempreViernes on Sunday January 05, 2020 @01:05AM (#21959963)
History 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.
Re:Godot Engine – A decade in retrospective and future by blensor on Wednesday January 01, 2020 @03:02PM (#21930196)
I 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

Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @03:15PM (#21930278)
What convinced you to pull the trigger and use the Godot on the new project? Was it the VR development smoothness?
Re:Godot Engine – A decade in retrospective and future by blensor on Wednesday January 01, 2020 @03:27PM (#21930376)
Mostly 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.
Re:Godot Engine – A decade in retrospective and future by michaelbrave on Wednesday January 01, 2020 @05:41PM (#21931243)
In 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.
Re:Godot Engine – A decade in retrospective and future by rozab on Wednesday January 01, 2020 @03:00PM (#21930172)
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.

Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @03:17PM (#21930296)
I 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.

Re:Godot Engine – A decade in retrospective and future by vanderZwan on Wednesday January 01, 2020 @03:59PM (#21930593)
Conway'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

Re:Godot Engine – A decade in retrospective and future by FartyMcFarter on Wednesday January 01, 2020 @06:07PM (#21931398)
Unity does have a lot of offices in different cities, maybe you're on to something.
Re:Godot Engine – A decade in retrospective and future by vanderZwan on Thursday January 02, 2020 @03:21PM (#21939377)
Oh, 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
Re:Godot Engine – A decade in retrospective and future by Buttons840 on Wednesday January 01, 2020 @03:00PM (#21930179)
I 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.

Re:Godot Engine – A decade in retrospective and future by bkanber on Wednesday January 01, 2020 @02:32PM (#21929971)
I'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.
Re:Godot Engine – A decade in retrospective and future by grawprog on Wednesday January 01, 2020 @06:21PM (#21931490)
For 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.

Re:Godot Engine – A decade in retrospective and future by wastedhours on Thursday January 02, 2020 @08:14AM (#21935069)
I 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.

Re:Godot Engine – A decade in retrospective and future by mosfetarium on Wednesday January 01, 2020 @04:11PM (#21930672)
I 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.

Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @06:13PM (#21931443)
Thanks for the insights. You comment about VCS resonates with the workflow experience in data science. Jupyter notebooks aren't conducive to collaboration.

I'll have to check out Godot's note system, and it seems like when everything can be represented with the same thing, you have the ability to refactor your code as it resizes and scales.

Re:Godot Engine – A decade in retrospective and future by flafla2 on Wednesday January 01, 2020 @10:19PM (#21932735)
Unity has had nested prefabs for over a year.

https://docs.unity3d.com/Manual/NestedPrefabs.html

Re:Godot Engine – A decade in retrospective and future by mosfetarium on Thursday January 02, 2020 @04:29AM (#21934000)
Sweet. Thanks for the correction there because, as I mentioned in the comment, there was room for my opinion to be outdated.
Re:Godot Engine – A decade in retrospective and future by blondin on Wednesday January 01, 2020 @04:16PM (#21930711)
the 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!!
Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @08:55PM (#21932341)
How come it feels lightweight? Would you be able to articulate it?
Re:Godot Engine – A decade in retrospective and future by pontoffel on Wednesday January 01, 2020 @09:52PM (#21932595)
Godot 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.
Re:Godot Engine – A decade in retrospective and future by Thaxll on Wednesday January 01, 2020 @02:41PM (#21930034)
Godot is not even close to Unity, it's a toy engine for garage project.
Re:Godot Engine – A decade in retrospective and future by iamwil on Wednesday January 01, 2020 @03:09PM (#21930246)
And 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.