ClarkThyLord / Voxel-Core

Voxel plugin for the Godot game engine!
https://godotengine.org/asset-library/asset/465
MIT License
453 stars 28 forks source link

Migrate to GDScript 2 #63

Closed ivakam closed 1 year ago

ivakam commented 2 years ago

Begin migration to Godot 4.0. All gdscript has been (naively) translated to gdscript 2. Plugin currently crashes the editor with a stack overflow on startup, so this should probably be merged into a temporary branch.

ivakam commented 2 years ago

The commits on the 4.0.0 branch have not all been translated to GD4.0. Only the ones addressed in b77c4ddafa2ebd4ce97d96abd608eccf55e5295a are updated.

ivakam commented 2 years ago

Currently the importer seems to get stuck on greed_volume with a gradual slow-down to an absolute crawl (hence the print messages in there, they are to be removed and are only there for debugging purposes). Unfortunately I'm not familiar enough with the actual algorithm to troubleshoot what could be going wrong.

ivakam commented 2 years ago

Further testing seems to indicate that it is possible to use the importer if one is careful about not overloading it. Importing more than 2-3 objects at a time (or only 1 if it's a larger asset) causes freezing and other badness.

ClarkThyLord commented 2 years ago

Awesome, I haven't had a chance to play with the alpha releases let alone GDScript 2, but this PR looks like a good start for the migration to Godot 4! Taking a look at the changes, it seems that GDScript 2 has some syntax differences. And sadly most, if not all, of the plugin's UI Controls are broken. That said, I was able to visualize some voxel content, which is always great! 😄

I had planned to migrate Voxel-Core to Godot 4, but wasn't sure if I would stick with GDScript, as the new GDExtension system looks very tempting, https://godotengine.org/article/introducing-gd-extensions

However, I haven't had a chance to research what's best moving forward, but until I do, I think starting the migration to GDScript 2 is the best step. 👍