godotengine / godotengine/godot-docs
Create a complete and concise documentation for GDExtension
- Dominant language
- reStructuredText
- Stars
- 5.7k
- Forks
- 3.8k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 25
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
* `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.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.