Comments (7)
Binding virtual method is now available in godot-cpp, will this complete gdextension version's missing features?
It's definitely one of the most missing bits in GDExtension, and I'm really glad that virtual methods are coming. Since it is only available in 4.3 branch, and because LimboAI targets the most recent stable release (4.2.x currently), it might take a while before support lands in LimboAI. I assume it should come along with v1.1 or v1.2, and close to first 4.3 RC or beta3. It depends on Godot 4.3 release date.
Alas, it's not the last missing feature:
- Currently, we also depend on inspector editors to provide a customized property editor for
BBParam
resources. They are not exposed in the API (see godotengine/godot-proposals#8908). - There is no way to grab class documentation in the Godot API. While the documentation support is coming in 4.3, the working bits of the documentation system are not exposed in the API. We use those bits to show documentation tooltips.
from limboai.
Godot Engine has a bunch of plugins in the core: they are not visible in that list as well, and you can't disable them. LimboAI is like some of those internal plugins, and so are some other GDExtension addons. It's somewhat confusing terminology in Godot, plugins and addons. And I agree with that GDExtension addons should also have some kind of manifest file for the Asset Library, and it should be visible in the UI with some update mechanism. A new asset store is in development for Godot. Maybe it'll have a better UX.
So how do I know what version is installed? Seems like a VERSION.txt file or something similar at the root of the plugin would be very useful.
Yeah, only engine builds have versions visible inside the editor, but for GDExtension it's not there. Ideally, such functionality needs to be automatic, or I'll simply forget to update it. I've got some versioning working using git tags in GitHub workflows. What I can do is save that info to a file for the GDExtension build. That's a good idea.
from limboai.
GDExtension Issues
get_script_instance()
is missing; no workaround? See next bullet.GDVIRTUAL_*
are not implemented in GDExtension: it seems there is no way to bind virtual methods that can be implemented by scripts.ClassDB::add_virtual_method
is also missing...- Related issues:
- Workaround is to use
call()
in both C++ and GDScript. Very unintuitive. Besides, methods are not actually marked as virtual in the docs, which causes a warning that, by default, is treated as an error.
- godotengine/godot-cpp#1348
EditorHelp
is not exposed, particularlyEditorHelp::get_doc_data
, which makes it hard to implement documentation tooltips.- Class documentation is not possible. But there is a PR: godotengine/godot#83747
- Core inspector property editors are not available in the API:
from limboai.
Binding virtual method is now available in godot-cpp, will this complete gdextension version's missing features?
from limboai.
why no plugin.cfg file? I find the list of plugins with their current version and the ability to enable/disable them helpful in the godot editor.
from limboai.
why no plugin.cfg file? I find the list of plugins with their current version and the ability to enable/disable them helpful in the godot editor.
Is that even possible? It's a native C++ editor plugin, developed as an engine module first, and ported to GDExtension. AFAIK plugin.cfg
is for GDScript editor plugins. 🤷
from limboai.
why no plugin.cfg file? I find the list of plugins with their current version and the ability to enable/disable them helpful in the godot editor.
Is that even possible? It's a native C++ editor plugin, developed as an engine module first, and ported to GDExtension. AFAIK
plugin.cfg
is for GDScript editor plugins. 🤷
Ah, that explains a lot about the plugins that aren't showing up, I did not know that. Thanks!
However, I added a plugin.cfg to limboai before I asked and it shows up in the plugins list with version, etc - the enable/disable doesn't work though. ( I didn't read through the plugin docs first though, sorry). Seems to me native editors plugins should also have that, but without the ability to enable/disable without a reboot? ( although that would be great as well) but that is a godot issue that I'll have to think through, look at the plugin arch and maybe propose/submit a solution to if I care enough ( I probably don't).
So how do I know what version is installed? Seems like a VERSION.txt file or something similar at the root of the plugin would be very useful.
Coming from the unity package manager ( and a lot of similar managed plugin frameworks in a lot of software ) Godot is a bit of a shock. Not having reviews/ratings in the asset 'store' is understandable, but not knowing what version of plugin you have installed is not.
BTW - thanks for LimboAI - so far it's been flawless and easy to use. :D
from limboai.
Related Issues (20)
- How to use GDExtension build with C#? HOT 2
- Allow selecting agent directly without providing a `NodePath` in `BBNode`
- Custom tasks script icons? HOT 4
- LimboAI 1.0.2: Blackboard.link_var() and bind_var_to_property() do not expose 'create' param for GDScript HOT 2
- Icon color conversion HOT 1
- Android Export HOT 1
- Extra tab after updating to 1.1 HOT 1
- Wayland support is not available in Linux GHA builds
- Option to move task palette to the left side in the BT editor
- Documentation tooltips are broken in 4.3
- A way to update HSM in both idle and physics process. HOT 1
- ARM64 builds
- BTPlayer::restart() crashes if behavior tree is missing HOT 1
- BTCondition add invert option
- Overriding _tick in BTCondition doesn't make sense HOT 2
- Add a MinElement decorator HOT 2
- Error signal `changed` is already connected if instance of scene is open in editor HOT 4
- LimboHSM.change_active_state(). Invalid call. Nonexistent function 'change_active_state" in base 'LimboHSM' HOT 1
- A way to filter tasks in the tree view
- vscode (with godot tools) related issue - outline doesn't work - can class_name be added to limboAI demo files?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from limboai.