Hacker News new | past | comments | ask | show | jobs | submit login

Godot is a nice engine. I did a 3D project in it during the 3.0.x era and it was by far the friendliest and easiest engine I have used to-date. I think it gets a lot of love from people (myself included) because of that. The node system is absolutely wonderful to work with and GDScript is not bad as well. It's the most productive I've been in a game engine and I regularly contemplate going all-in on Godot for the future.

However, ultimately I abandoned that project because there were too many papercuts in Godot for me to be satisfied. Godot felt like it was a sort of "jack of all trades master of none". Everything worked pretty well but not one thing was fully polished for real world usage. There were ultimately at least one or two shortcomings in every system that just made the experience frustrating when trying to deliver a real project. For example, the asset import system is great but it fell down once I imported by 40,000+ assets or there were limited controls for navigating around the 3D viewport or odd behavior in physics functionality like slide and move that basically meant I needed to write my own equivalent. I am more than willing and able to work around limited features or fix bugs but there's something about "almost does what I need but it's not done yet" that is a real motivation drain. Maybe it's unfair of me, the retort is always "it's open source, contribute back!" but alas that is how I felt as a USER before I considered being a CONTRIBUTOR.

I've been tracking Godot since then and there have been HUGE amounts of work in lots of different systems, it's been quite amazing to watch. However, these decisions were quite ambitious as outlined in this blog (rewrite physics, rewrite renderer, massive upgrades to scripting language, etc.) that now the "polished" experience I've been waiting for has been postponed again. I'm optimistic the day will come where Godot becomes "good ole reliable" but until then I will keep waiting and begrudgingly use something else.




> Maybe it's unfair of me, the retort is always "it's open source, contribute back!" but alas that is how I felt as a USER before I considered being a CONTRIBUTOR.

Even as a contributor I've found it very frustrating to contribute to Godot.

I've found lots and lots of bugs while working on my own projects using Godot. I spent a lot of time digging in the engine code to figure out the cause, make an issue and a patch if I could.

However, even small changes take a lot of time and effort. While I used Godot 3 for my own projects most of the PRs had to be based against 4. At the time Godot 4 was in a very sorry state and I ran in many, many issues that made it hard to test if the same fix for Godot 3 also works in Godot 4.

I wrote some libraries to work around issues that I (or others) could not get fixed or reverted (e.g. I replaced the physics engine with Rapier3D because I really needed more stable and working joints) but I eventually threw in the towel and decided to focus on other hobbies.


> While I used Godot 3 for my own projects most of the PRs had to be based against 4.

The lack of support for anything than the bleeding edge in open source is a huge issue :(


That's one of the issues with open source, polishing isn't "fun", where massive rewrites to a new thing are.


I don't know about fun, but structurally, polish is one of the hardest things to contribute to an open source project. Polishing usually has a very large "activation energy", where the overhead of synchronizing, making a PR, building consensus, etc. dwarfs the actual effort in the patch. Polishing may involve hundred or thousands of small changes like this. Outsiders are likely to prefer contributing large features where the effort involved is more commensurate to the benefits.


On top of that, polish usually involves some amount of opinionated design, which can be hard to contribute to an open source project - you’ll break someone else’s workflow, or maybe it doesn’t mesh with the ideas of a core maintainer, etc.


Yes let's wait and see the inevitable response here to the Audacity redesign... I'm sure everyone will be very positive about the polish! /s


I don't understand why there hasn't been a widely successful crowd financing platform for open source yet.

I imagine it has to be a bit complex but it sounds like a solvable problem.


IMO the issue is as soon as it's paid, there needs to be a "Software Engineering Manager" of some sort or another in the middle of the payers and the workers. That's a very difficult job to hard-code.

Having spent some time maintaining large OSS projects as a first party engineer, these are the options I see:

- pay a fixed donation per month, a la patreon/etc. I would never do this. If I'm buying software for a company I want a real support contract, not a "I'll really try to respond to your issues with higher priority!". If I'm using software in a personal project, I want the monthly burn to be as close to 0 as possible. Also, who takes that money? What do third party PR submitters get? What do people who submit excellent issue reports with crash dumps and full debug traces get? What do first party PR reviewers get? Third party? etc. etc.

- stake money on the closing of a given issue/PR. This is better, but comes with a whole can of worms. The obvious failure mode is a third party contributor submitting a PR, the maintainer saying "eh.... I don't really agree with the way you've done this", then building it themselves. Next step on that train is a fight between the third party and the maintainer about how much influence one's code had on the other. Even if that doesn't happen, the maintainer is almost guaranteed to request changes of some sort, who decides how much the maintainer gets for their work reviewing versus the third party for their work contributing?

Not to mention the dirty little secret behind many third party contributions: if you are new to the repo, the frameworks, oss in general, etc., it is highly likely that the maintainer's work in holding your hand through contributing to the repo will far outweigh the work they'd need to put in to make the change themselves. But few would agree to paying the maintainer to accept their PR, or likely even the maintainer getting more money than them for their own PR.


Patreon exists, but I hesitate to contribute to projects/people through Patreon as I want to give them as little money as possible...


There is always Liberapay https://en.wikipedia.org/wiki/Liberapay


+1 for librapay

We ask our company to set aside of a small amount of money each year, and we distribute it among projects we most used that year on librapay.


I also feel that something like Patreon doesn't reflect the semi-decentralised way open source is built.

There needs to be features like feature/bug-bounties that you can trust even if you don't fully trust the repo-owner/maintainer?


I'd be more okay with donating via Patreon if they didn't do the thing where every internet platform that becomes successful feels the need to start going down the political route. I'm not sure if this is a more of an issue due to the employees, or due to social media pressure, or if it's just "keeping up with the times" but I hate it. And it's also so US-centric, which makes sense as they are usually US-based companies, but it just irritates me looking from the outside.


As someone who doesn’t follow the details of day to day Very Online politics-adjacent drama, I haven’t heard much about Patreon, so… they seem to be threading the needle well enough to stay off the radar of boring normies like myself. What’s their issue?


They started banning creators who made NSFW content a few years ago, might be that. They never allowed porn, but they started hammering down on all sorts of erotic material. I don't really care, but others do.


> They never allowed porn

WAT? I pay for porn on patreon and have for years. Maybe it's just live video porn that's banned? I have no idea. AFAIK the artists I'm subscribed to are not hiding their creations. In fact they're all over sites like pornhub, spankbang, etc with their patreon address in their videos. It's all CG or real time 3D but it's most certainly porn.


I think that was more at the behest of the payment processors, Visa and MC absolutely hate adult content-related stuff. Which is fucking stupid, IMHO


It's due to chargeback risk. A lot of times folks will be caught paying for adult content on a credit card statement by a family member. They'll just tell family that it was fraud and dispute the charge. This occurs frequently enough that Visa and MC aren't fans of adult content on their payment networks.


That won't be a problem once/if the US has more popular payment rails that don't allow chargebacks.


This seems like a natural outcome of running such a platform. The platform is trying to optimise revenue. They can choose which user complaints to support/reject but they can’t satisfy everyone.


opencollective maybe? They have multiple "hosts" that handle receiving the money, tax paperwork, and approve spending. So a project probably doesn't need too much trust if you trust the host... if I understand this right.


liberapay.com is pretty much that.

No fees - 100% non profit.

Probably not "widely successful", though, otherwise you would have heard of it. And the overal money flowing through it, is quite modest. The main problem is still in the minds of people, I think. If something is free, then there is no need to pay, then most won't pay (or they pay 5€ and think they own the developer now).


Wikipedia, Mozilla, Gnome... they've all been found to be poor stewards of donated money, using it for pet ideological projects instead of the projects that are the foundation of each organization. If I go to the discussion site for many FOSS projects, it's hard to go very long without seeing lots of political activism being pushed. FOSS decided to become political or those who are political decided to invade FOSS. Either way, they've made their bed and now it's shrinking their pool of potential resources.


FOSS had always beeen political. How the heck is giving you the freedom to modify and tinker the source code of the software you are using, no string sattached, not a political act? I think it's fair to say that then "the ones who just want to have things for free as in beer" came. But FOSS has always been pretty utopian.


The word "political" is used in a number of ways. When someone says "How could <x> __not__ be political? Of course it is political." in response to someone complaining about <x> becoming political, I think the person responding is typically using the word "political" in a way different from how it was being used in the original complaint.

I think it would be best to attempt to understand what the person complaining meant by "political", (and if one dislikes using the word "political" by itself to express that idea, or if is unsure if one is interpreting correctly, perhaps rephrase the idea in one's own words, and maybe ask if that was what was meant) and respond to that.

I saw a poll result the other day, which said that, in 2020, some voters and some corporate executives were asked whether they approved of companies expressing support for political/electoral/whatever causes/social issues, and given the options of "yes", "yes, but only if directly related to the company's core business", and "no". According to this poll result, less than 40% of voters picked "yes", and almost 80% said either "yes" or "yes, but only if directly related to the company's core business". (for completeness, but not really relevant to my point : over 60% of the corporate executives polled said "yes", and under 10% said "no")

Perhaps an analogy can be drawn between these two situations?


I don't know about crowd source, but one of my favorite solutions come from the ElementaryOS team. Their software store allows you to pay for what your downloading and I think that goes directly to the project? So its like opening the GNOME software center, but having the ability to donate right there as you go to download it.


People generally don't like to pay for things they can get for free.


I feel that your point isn't the whole story. Patreon seems to be financing a lot of creators nowadays.

Personally I feel more inclined to donate myself when I feel there is a reliable way for others to donate in unison with me, so that it has a chance to become substantial enough to make a difference. I think that's the value proposition of Patreon and Kickstarter.


Just like all other software!


Thanks for the excellent write up with big picture thoughts and concrete examples. I only regret that you didn’t hit the “waiting for Godot” punchline harder.


Interesting - you're describing my experience with Unity, and I ultimately switched to Godot because of my frustration with Unity.


I've been using Unity for a few months now and what is most frustrating is how lazy and unprofessional the company presents itself.

They basically found that the Asset Store is such a huge source of revenue for them that they now completely over-leverage it and abuse the community for profit. For the few things they do ship, they routinely break things for backwards incompatibility or literally just ship half complete "products". If you want to do anything meaningful in Unity you either have to build it yourself from the ground up or buy plugins.

An example: their AI navigation system is so lacking in features, they haven't updated it in nearly two years, and the last ship they did was literally half broken and buggy for several use cases.[1]

Also their help desk is currently broken, replacing random text with "$$anonymous$$" and deleting replies[2] :)

1: https://github.com/Unity-Technologies/NavMeshComponents

2: https://forum.unity.com/threads/certain-characters-and-group...

EDIT:

This comment is definitely a venting comment, but I didn't want it to come across like Unity is pure ass. It has a lot of really great things too. I've especially enjoyed their abstractions around vectors, quaternions, cameras, and local/world space. You can do a lot of really complicated operations that look and feel great, without having what would normally require some pretty advanced math knowledge that is beyond me


I have been using Unity for around 5 years now, and have come across many issues, from lacking documentation, weird APIs, breaking or forever-in-experimental packages, to issues with implementing best-practices for software development.

However, its core is really robust and powers almost all VR experiences and startups, such as Gravity Sketch and Arkio. Which is why I still find myself drawn to Unity.


Apple, Microsoft, Google, Sony, Nintendo apparently live in another world, given how many of their studios or VR/AR endevours rely on Unity, or give it tier 1 support on many of their projects, while everyone on HN complains about it.

I guess they get special builds no one else has access to. /s


Being used often for projects with cheap production budgets and being good are orthogonal concepts especially when talking about the video game industry where cobbled together middlewares for one shot development is the norm. Unity became tier 1 supported because it was widely used by indie projects. Implying the reverse is mistaking cause for effect.

In fact, Unity is actually the example I generally give of a product which is both widely used and terrible. It's better than it used to be. At some point, it was downright terrible. I remember Wasteland 2 running worse than a modern AAA game while looking like a ten years old game at launch.

To be blunt, given the new licencing terms of the Unreal engine, I don't think you should ever use it unless you are already really familiar with it.


I usually use JavaScript, PHP and C as similar example of widely used and terrible products.

I rather support an engine that embraces C# than one that keeps the C++ status quo.


> limited controls for navigating around the 3D viewport

I still haven't figured this out yet. It's really weird it's so difficult to navigate the viewport, which is a really basic operation for a 3D engine. I've made plenty of levels using the unreal editor, but I can't figure it out in godot.


What's missing? It's got rotating (MMB), panning (Shift + MMB), zoom (scrollwheel) and focus on object (F).


Zoom is limited. It's not infinite zoom. How do I move through the level in Z direction? I saw a video mention WASD keys but it didn't work for me. In unreal you can fly through the level using mouse and keyboard. WASD is cardinal direction and mouse is camera rotation. In godot mouse wheel zooms the camera, but I couldn't find a way to 'move' the camera in Z.


Hold the right mouse button and press WASD Q/E. It works as you would expect. You can press shift+F to toggle this mode if you don't want to hold down the button.


shift+F worked for me to toggle freelook. Thanks for the help!


Not familiar with Godot but that sounds like camera dolly.

Afaiu the reason for two different camera control schemes in DCCs and game engines is that they’re suited to different workflows. On the one hand, object-centric orbit-style controls are great for, eg, modeling, whereas free-fly WASD / mouselook controls are great for level blockout, in-scene camera positioning, etc.

By default you have to hold the right mouse down to enable free-fly controls in Unreal.

Sorry you might know all this. Just if you are expecting one camera control scheme and getting another I know it can be frustrating.


As most people working on these are probably aware, this is very easy to implement in a 3d engine using a quaternion orientation that rotates the WASD vectors, updating position and view orientation accordingly. Can do it with FPS friendly things like WASD + Q and E for roll, and space and C for up/dn.

And blockers on patching this into the editor?

Context: I have a very basic engine written in Rust/WGPU. Mainly using for chemistry sims. This is its default nav system.


> Can do it with FPS friendly things like WASD + Q and E for roll, and space and C for up/dn. > > And blockers on patching this into the editor?

This is exactly how the editor works. It's just not the default mode. They call it freelook mode. You can either hold the right mouse button or toggle it with shift+F.


TBH, this is completely undiscoverable. I can understand the GP poster missing it. I went looking through the menus and clicked all the buttons in the viewport and didn't find this (and still can't, other than in the settings).


Also how Unreal works, by default. Holding right-click mouse button enables WASD movement and mouselook. Works great, once you get used to it.


And Unity


I mean it's a relatively young open source project. It took Blender 25 years to get where it is now and it still has some major flaws compared to the paid competition, and will need extensive rewrites if it wants to move forward because right now the C part is a horrible mess.

Godot isn't going to compete against Unity or Unreal anytime soon. Godot's team doesn't have billions at their disposal like Epic or Unity.

edit: Blender also had major advantage aside from begin free, it could do physics and volumetrics for free when the commercial competition required yet another paid plugin just for that stuff, so why pay when the free solution does more than the competition? and let's not even go into requiring separate paid rendering engines for the renders to look decent...


I think though that there's an apex all game engines reach where technological progression just slows down even when you have millions of developer dollars to throw at it.

It's the reason why something like blender can catch up with state of the art commercial offerings and I think Godot could go through the same thing.


Isn't that true of all software? At some point, things should be able to be fully feature complete. Maybe update the UI toolkit every five years to appear fashionable.

In practice, the industry loves to replace fully working projects rather than tweak existing, so we will never get to such a state of nirvana.


Can't prove if it's true of all software. But examples of categories of this type seem to exist. Linux and blender are two examples.

The software never gets to total nirvana. What happens is it gets to a state of nearly nirvana such that changes are tiny.


Tangentially to your post, but nonetheless interesting:

"jack of all trades master of none" is the shorthand version of the full phrase "A Jack of all trades is a master of none, but oftentimes better than a master of one” which has been used since 1721.


I love `move_and_slide` and it's perfect for me, but you're right that it's a very opinionated implementation. I found I was making huge strides in 3D very quickly, but a friend essentially had to re-implement it for their game.

I'm curious if the best solution would be to expose more optional knobs and switches for KinematicBody, or to have a bigger ecosystem of open-source variants.


What’s the “something else” you’re currently using?


> Everything worked pretty well but not one thing was fully polished for real world usage.

My own experience. I found that once you go beyond toy projects, the minor irritations, the many "papercuts" you talk about, make game development painful.

I havent used Unity, so dont know if it suffers from the same problem


Godot nowadays is getting to "Master" levels of 2D IMO.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: