limbonaut / limboai

LimboAI - Behavior Trees and State Machines for Godot 4
MIT License
780 stars 24 forks source link

LimboHMS and BTState not included in Linux build #105

Closed EndersWilliam closed 1 month ago

EndersWilliam commented 1 month ago

Hello! I'm using the latest LimboAI 1.0.2 and Godot 4.2.2

When I build the demo project out to Linux everything runs flawlessly, but when I try adding a LimboHMS node with child BTState nodes the exported project will crash on launch with the following errors in the godot.log:

USER SCRIPT ERROR: Parse Error: Could not find type "LimboHSM" in the current scope. USER SCRIPT ERROR: Parse Error: Could not find type "BTState" in the current scope.

limbonaut commented 1 month ago

I assume you're using GDExtension version. Did you get any errors while exporting the project? Check if you have the dynamic library file in the folder with the exported project. It should be named: liblimboai.*.x86_64.so. Those are the kind of errors you'd get if the lib would be missing. It should be there after export, but if not - you can manually copy the lib to the exported folder - it's in the res://addons/limboai/bin/.

EndersWilliam commented 1 month ago

You are correct it is the GDExtension version. No errors when exporting and it does generate the liblimboai.linux.editor.x86_64.so, but still getting the crash on launch. I also tried exporting without debug which generates the proper limblimboai.linux.template_release.x86_64.so but same errors on launch. This is also being exported to SteamOS if that makes any difference.

limbonaut commented 1 month ago

I'm not sure what is the root cause here. I tried exporting a project using a fresh installation from the AssetLib, and it worked as expected on Linux. And I used the debug export, as the demo files rely on a class that is only available in the "editor" build. Would you like to create a small reproduction project?

EndersWilliam commented 1 month ago

I've attached a super basic reproduction project, as well as a linux build of the project with the godot.log that it generates when I try to run it. I imported LimboAI from the AssetLib, got rid of the demo folder, and have a simple scene with a LimboHSM and BTState node present. Still crashes when I try to run it on my SteamDeck.

limbo_test_project.zip linux_export.zip

limbonaut commented 1 month ago

Interesting. Your export runs fine on my machine :thinking: image I'll check with my steam deck.

limbonaut commented 1 month ago

It failed to run it on my device too. Console gave me additional info:

ERROR: Can't open dynamic library: addons/limboai/bin/liblimboai.linux.editor.x86_64.so. Error: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /home/deck/Downloads/linux_export/liblimboai.linux.editor.x86_64.so)

It looks like that SteamDeck is running an older version of libstdc++. I'll see what I can do.

limbonaut commented 1 month ago

Thanks for reporting! I opened a PR that should make future GitHub builds compatible with SteamDeck. Can you check if this build works for you?

EndersWilliam commented 1 month ago

I can confirm the new build works! Thank you so much for the quick turnaround