voxelgame
voxelgame copied to clipboard
Voxelgame breaks with Godot-voxel 4.1
Using the latest build of Godot-voxel 4.1 and the master branch of voxelgame instantly crashes when run. There's a large list of errors when converting the project from 4.0 to 4.1.
Here's the list of errors output by Godot:
Import Errors
Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. Cannot get class ''. File 'res://addons/zylann.debug_draw/Hack-Regular.ttf' can't be loaded, as it uses a format version (1862270976) or engine version (811729064.1316945920) which are not supported by your engine version (4.1). Failed loading resource: res://.godot/imported/Hack-Regular.ttf-85c0e00233988dd4f27e5d86a4074d34.fontdata. Make sure resources have been imported by opening the project in the editor at least once. Failed loading resource: res://addons/zylann.debug_draw/Hack-Regular.ttf. Make sure resources have been imported by opening the project in the editor at least once. editor/plugins/editor_preview_plugins.cpp:803 - Condition "sampled_font.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>() Cannot get class ''. editor/plugins/editor_preview_plugins.cpp:686 - Condition "mesh.is_null()" is true. Returning: Ref<Texture2D>()
I managed to get the game to not crash immediately when running by removing the preload of the Hack-Regular font in debug_draw.gd with FontFile.new()
, however, there are still a ton of errors which prevent the game from loading any voxel textures:
Btw thank you very much for making this example game. I'm learning a lot from your code, even if I can't really run the game atm ;)
I just downloaded the demo repo's master branch from https://github.com/Zylann/voxelgame/archive/refs/heads/master.zip and tried opening the project with the latest Godot Voxel build from https://github.com/Zylann/godot_voxel/actions/runs/6763777223 (which is based on the latest Godot 4.1.x branch).
The project manager asked about increasing the project version from 4.0 to 4.1, which I accepted.
The project opened and imported assets with no errors.
I then launched blocky_game/main.tscn
, which worked without errors.
I tried a second time from scratch just in case, and it worked too.
Basically I can't reproduce any of those issues.
The errors you get seem to be only Godot issues, nothing special about the voxel module. But since I can't get them, I don't know what I should do to fix them. Maybe you're not running the right version of Godot with the voxel module in it?
Cannot get class ''.
is suspiciously wrong. Did it really log empty class names? If I open the project using vanilla Godot 4.1 (which is not supposed to work because the voxel module is required), I do get a bunch of errors like that, but they mention non-empty class names, and I dont see any error with fonts.
I used one of the latest godot-voxel builds, so I don't see how I'd have an incorrect Godot version. I will retry again today and pay attention to my steps to make sure I've not been doing weird
Are you able to try the Linux build? I noticed you're using the Windows one. The Linux build is broken for me, where I have the same importing issue on another project. This time I can't import a .glb file, but I get the same message about incompatible engine version.
I can't test Linux unfortunately. But if you have such suspicious unrecognized classes and problems importing GLB and it's somehow Linux-specific, that looks like a Godot bug rather than anything I've done... it would have to be reported somehow, or discussed with the devs
Weird, because it works fine with the regular Godot executable, just not the voxel godot one :/
*Importing, that is
Is it working if you make a build yourself? Because if there is a problem in that build, it could be a problem somehow in the way the Linux build is done by the CI, but I am quite clueless as to what exactly would be wrong in there. Not being able to test these builds is impairing me.
Someone else on Discord said they use the Linux builds from the CI, and they work for them. But again no idea why. They are using a Linux build from a few weeks ago though. They later tried a more recent version and it worked too.
I asked someone else to try the latest on Linux, no problem either.