Open
Description
Describe the project you are working on
A G.O.A.P Implementation for Godotengine via GDExtension
Describe the problem or limitation you are having in your project
Me and a lot of users has little to none knowledge about GDNative and C++, now that GDNative is "deprecated" in 4.x we have even less knowledge about such powerful tool, some of them:
- Classes we have access to
- Classes which are not exposed to API but we can use in C++ side
Describe the feature / enhancement and how it helps to overcome the problem or limitation
The documentation will have a "Zero to Hero" subject, where a user with basic knowledge of C++ will learn:
- Getting the necessary files to work on
- What is each file in there does
- Generate the bindings (for each platform, and cross-platform)
- Creating the First Extension
- Differences between GDNative and GDExtension
- Seems after recent changes to GDExtension, you dont need to use
generate_bindings
anymore, because everytime you recompile example project it compile Godot classes too, but this need to be confirmed! - What you couldnt do before and what you can do now.
- API differences
- Seems after recent changes to GDExtension, you dont need to use
Ref<>
and*
how and when to use them- Similarities with the core source code
- How it works in core, and how to reproduce in GDExtension
- How to deal with virtuals (overriding a C++ function via GDScript, like
_ready()
)
- About Classes from GodotEngine core we can use in C++ but are not exposed in the API
- Creating a simple game
- Creating a simple multiplayer (server/client) and (P2P)
- Creating an editor plugin
- Overriding/Extending Engine features (if possible)
- Compiling your extensions
- Windows
- Linux
- Mac
- Android (show how to compile in each platform above)
- Web (show how to compile in each platform above)
- Using GDExtension compiled stuff in C#
- Advanced Stuff
- Optimization
- Debugging
- File Structure
- Add new stuff to GDScript? (like a new var type, or add a struct system via GDExtension, if possible)
- Many More
- Using external graphical/audio APIs (e.g IMGUI), physics libraries....
- C Language
- Example usage of GDExtension in the C language
- How Binding GDExtension to another language works (Go,rust,....)
I may have forgot some stuff, so if you're reading this, please comment below suggestions
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
A Complete documentation in the docs page
If this enhancement will not be used often, can it be worked around with a few lines of script?
Nope, its a documentation.
Is there a reason why this should be core and not an add-on in the asset library?
this cant be addon, since is GDExtension.