Godot Experience

Godot Experience

Postby dulsi » 11 Oct 2019, 15:36

fluffrabbit mentioned that he couldn't easily upgrade an old Godot project. What is compatibility like in Godot? Are projects usually broken on upgrade? Are they easy to fix?
dulsi
 
Posts: 570
Joined: 18 Feb 2016, 15:24

Re: Godot Experience

Postby Julius » 11 Oct 2019, 15:48

I don't have first hand experience, but it seems like the step from v2.x to v3.x was quite major.
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Godot Experience

Postby Jastiv » 11 Oct 2019, 17:40

I wish this was an experience that was isolated to Godot, but it seems like a system wide free software ecosystem problem.
User avatar
Jastiv
 
Posts: 285
Joined: 14 Mar 2011, 02:18
Location: Unitied States of America - East Coast

Re: Godot Experience

Postby Lyberta » 12 Oct 2019, 07:39

Deleted.
Last edited by Lyberta on 01 Oct 2021, 05:27, edited 1 time in total.
Lyberta
 
Posts: 765
Joined: 19 Jun 2013, 10:45

Re: Godot Experience

Postby Technopeasant » 20 Oct 2019, 20:56

Jastiv {l Wrote}:I wish this was an experience that was isolated to Godot, but it seems like a system wide free software ecosystem problem.


Hardly unique to free software though.
User avatar
Technopeasant
 
Posts: 176
Joined: 22 Feb 2017, 03:38

Re: Godot Experience

Postby acme_pjz » 17 Jan 2020, 07:11

From my experience of using Godot for a week, it looks like that the graphics quality is decent and you can make games with fixed levels with very few code (compared to using engines designed for C++ since you don't need to reinventing most of the wheel, e.g. data serializing).

However it seems that it's completely a mess if you want to make a game with built-in level editor. A lot of internal details can only be accessed with C++ but not GDScript, for example:

* You can't inherit Mesh of PrimitiveMesh in GDScript in order to create new type of procedural meshes; the corresponding C++ class have pure virtual member functions, and have some private/protected helper functions vital in logic but not exposed to GDScript. The only way is to inherit ArrayMesh, but ArrayMesh will store the generated vertices to file, which defeats the purpose of procedurally generated meshes.

* It's a mess to write a custom property editor, even for a simple POD type (usually represented by a Dictionary in GDScript). The C++ code already defined a bunch of property editor control for each built-in types, but their usage is restricted: they can only be setup to edit a given property of a given object, but in order to tell it which property need to be edited for which object, a function need to be called which is only available to C++ but not GDScript. This means you can't reuse any of them. Also, there is a function in a control to set a custom color for label, but again, this function is only available to C++.
Some of my open source games on GitHub
User avatar
acme_pjz
 
Posts: 665
Joined: 10 Dec 2009, 15:32
Location: PeeKing, China

Re: Godot Experience

Postby acme_pjz » 02 Feb 2020, 13:45

... and there are some fundamental flaws in the implementation of GDScript: https://github.com/godotengine/godot/issues/21461 https://github.com/godotengine/godot/issues/25252
Some of my open source games on GitHub
User avatar
acme_pjz
 
Posts: 665
Joined: 10 Dec 2009, 15:32
Location: PeeKing, China

Re: Godot Experience

Postby freemedia2018 » 03 Feb 2020, 01:57

Jastiv {l Wrote}:I wish this was an experience that was isolated to Godot, but it seems like a system wide free software ecosystem problem.


And free software should be immune to it, or very nearly so.

Instead, people try to make it more like proprietary software. Debian has endless excuses why they don't want to enable other maintainers to create stability-- it's a pattern: KDE vs. Trinity, GNOME vs. Mate, Python vs. Python 2 (I believe PyPy is still available) Systemd vs ANYTHING else. Freedom > choice, but freedom tends to lead to choice as well. If you're being dragged from one thing to the next, it's because people are willing to try to drag you there. People WORK HARD to provide choice, and Debian (among other "vendors" or projects) treats those people like bums on the street. But they're the farthest from bums, they're heroes.
freemedia2018
 

Re: Godot Experience

Postby Julius » 03 Feb 2020, 12:45

I think Jastiv was talking about the upgrade path from Godot v2 to v3 (and soon to a lesser extend v4).

Looking at propriatory legacy systems that due to commercial demand maintain (usually broken) backwards compatibility over decades, I am actually happy that this usually isn't the case for Free Software projects.

I also prefer that developers spend their time to improve the actual software, rather that trying to work around edge case backward compatibility bugs.
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Godot Experience

Postby Jastiv » 03 Feb 2020, 13:23

Yeah, but how the heck are you supposed to learn how to upgrade the software to a new version? There aren't exactly straightforward guides around.
User avatar
Jastiv
 
Posts: 285
Joined: 14 Mar 2011, 02:18
Location: Unitied States of America - East Coast

Re: Godot Experience

Postby dulsi » 03 Feb 2020, 13:58

Julius {l Wrote}:Looking at propriatory legacy systems that due to commercial demand maintain (usually broken) backwards compatibility over decades, I am actually happy that this usually isn't the case for Free Software projects.

I also prefer that developers spend their time to improve the actual software, rather that trying to work around edge case backward compatibility bugs.

There are good and bad ways to do upgrades. If you are going to break compatibility, you should have a guide on how to handle the change. Compatibility breaks should have a clear advantage not simply because you decided to change something. Breaks should crash hard or not compile so it is easier to find and fix.

SDL is a good example of this. The previous API didn't match how hardware had changed. They needed to change the API to get good performance. They have a guide to help developers transition.

SFML is a bad example. Between 1 and 2 they changed the camelcase used for function names because he didn't like that style anymore. Everyone had to update their code for no reason.

Love is another bad example. When switching to 11.0, they changed color values from 0..255 to 0..1. Your program would run on love 11.0 but most colors suddenly became white. If they had simply renamed the function, everyone would have easily know what needed to change (or even output an error message when greater than 1).

Personally I'd prefer to keep backward compatibility for a time. Usually the cost is not high. For example Love could have easily added a new set color function and have the old call it. In the case of SDL, I understand that and the distributions generally have both 1 and 2.
dulsi
 
Posts: 570
Joined: 18 Feb 2016, 15:24

Re: Godot Experience

Postby freemedia2018 » 04 Feb 2020, 05:35

Julius {l Wrote}:Looking at propriatory legacy systems that due to commercial demand maintain (usually broken) backwards compatibility over decades, I am actually happy that this usually isn't the case for Free Software projects.


This really avoids the points I made-- which is your right-- but it uses what I consider a false generalisation to try to pooh-pooh the relevance of arguably widespread problems.

I realise the problem is even worse in proprietary software. That doesn't necessary mean the demand that is artificially deemed unimportant goes away when the demand isn't commercial. On the contrary-- you're saying it's the demand that is more like the proprietary legacy systems. And I'm saying it's the response to the demand that is more like it. Sure, some backwards compatibility is maintained for ages. But the KEY features that people are dragged through via lock-in-- that behaviour gets emulated in the free software world (especially by the open source dark side.) I've spent years writing about that, and the Halloween documents talk about it as well. So for the sake of a simpler thread I'm willing to let that go, but only under protest.
freemedia2018
 

Who is online

Users browsing this forum: No registered users and 1 guest

cron