codecat / godot-tbloader

TrenchBroom Loader for Godot 4. (Alternative to Qodot)
MIT License
243 stars 32 forks source link

fix compatibility for Godot 4.1 #83

Closed cortrano closed 1 year ago

cortrano commented 1 year ago

Fixes #82 & #81

I fixed it by adding compatibility_minimum = 4.1 line to tbloader.gdextension file and rebuilding /bin libs by calling python -m SCons platform=<platform> (tested on Windows so i typed platform=windows)

cortrano commented 1 year ago

Oh, but it will become uncompitable for 4.0 😐. So maybe it's better to have 2 variants for assetlib: godot-tbloader 4.0 and godot-tbloader 4.1 (like godotsteam extension)

codecat commented 1 year ago

Why not just set the minimum to 4.0 then?

elvisish commented 1 year ago

Fixes #82 & #81

I fixed it by adding compatibility_minimum = 4.1 line to tbloader.gdextension file and rebuilding /bin libs by calling python -m SCons platform=<platform> (tested on Windows so i typed platform=windows)

Does it work without changing the minimum compatibility? I'm curious what's causing it to break in 4.1, does it just need the libraries rebuilding?

cortrano commented 1 year ago

Fixes #82 & #81 I fixed it by adding compatibility_minimum = 4.1 line to tbloader.gdextension file and rebuilding /bin libs by calling python -m SCons platform=<platform> (tested on Windows so i typed platform=windows)

Does it work without changing the minimum compatibility? I'm curious what's causing it to break in 4.1, does it just need the libraries rebuilding?

The problem is that plugins written using gdextension have a backward compatibility issue. Apparently, this has been fixed in Godot 4.1 (I attached a screenshot from the blog about 4.1). Nevertheless, in the blog they note that 4.0 plugins should be recompiled for 4.1. image

elvisish commented 1 year ago

Fixes #82 & #81

I fixed it by adding compatibility_minimum = 4.1 line to tbloader.gdextension file and rebuilding /bin libs by calling python -m SCons platform=<platform> (tested on Windows so i typed platform=windows)

Does it work without changing the minimum compatibility? I'm curious what's causing it to break in 4.1, does it just need the libraries rebuilding?

The problem is that plugins written using gdextension have a backward compatibility issue. Apparently, this has been fixed in Godot 4.1 (I attached a screenshot from the blog about 4.1). Nevertheless, in the blog they note that 4.0 plugins should be recompiled for 4.1.

image

Thanks, that makes a lot of sense, I missed that part of the changelog. Hopefully plug-ins should keep working a little longer after 4.1

cortrano commented 1 year ago

Why not just set the minimum to 4.0 then?

I recompiled it using 4.0 and got this error. That's because of problem i mentioned above. So the only solution to have 2 plugins in AssetLib: for 4.0 and 4.1+ (because now it have backward compatibility) That's how GodotSteam extension did. image

codecat commented 1 year ago

Ah I see. I'll do some testing today and see if I can get an update rolled out.

I think for 4.0 you could probably just use an older version of TBLoader. I am not sure we should be spending time on maintaining multiple versions for different Godot versions (and we should probably encourage people to use the latest version of Godot anyway).

krazyjakee commented 1 year ago

I think for 4.0 you could probably just use an older version of TBLoader.

This is a good argument. If we only support 4.1+ on the main branch, this PR becomes valid again, right?

codecat commented 1 year ago

I actually have made this same change this separately from this PR already 😄

krazyjakee commented 1 year ago

Ah, my bad, missed it.

Thanks!