|
| 1 | +Contributing to godot-cpp |
| 2 | +========================= |
| 3 | + |
| 4 | +.. seealso:: |
| 5 | + |
| 6 | + You may also be interested in visiting godot-cpp's official documentation: |
| 7 | + `C++ (godot-cpp) on the Godot docs <https://docs.godotengine.org/en/latest/tutorials/scripting/cpp/index.html>`__ |
| 8 | + |
| 9 | +Thank you for your interest in contributing to `godot-cpp <https://github.com/godotengine/godot-cpp>`__, |
| 10 | +the official C++ GDExtension bindings maintained as part of the Godot project! |
| 11 | +We greatly appreciate help in maintaining and extending this project. |
| 12 | + |
| 13 | +If you wish to help out, ensure you have an account on GitHub and create a "fork" of the |
| 14 | +`godot-cpp repository <https://github.com/godotengine/godot-cpp>`__. |
| 15 | +To contribute, please use our regular :ref:`PR workflow <doc_pr_workflow>`. |
| 16 | +The code should adhere to the same :ref:`code guidelines <doc_engine_guidelines>` as the engine itself. |
| 17 | + |
| 18 | +Please install clang-format and the `pre-commit <https://pre-commit.com/>`__ Python framework so formatting is done |
| 19 | +before your changes are submitted. See the :ref:`code style guidelines <doc_code_style_guidelines>` for instructions. |
| 20 | + |
| 21 | +Feature guidelines |
| 22 | +------------------ |
| 23 | + |
| 24 | +godot-cpp's API is modeled after Godot's API. We want writing godot-cpp code to be as similar as possible |
| 25 | +to writing a |
| 26 | +`module <https://docs.godotengine.org/en/latest/contributing/development/core_and_modules/custom_modules_in_cpp.html#doc-custom-modules-in-cpp>`__ |
| 27 | +as possible. This means: |
| 28 | + |
| 29 | +* The frameworks (templates, helper methods, etc.) are synchronized to Godot's frameworks regularly. |
| 30 | +* We will not add features that are not already present in Godot. If you want to add new features |
| 31 | + to godot-cpp's API, please consider proposing the feature to Godot itself first. |
| 32 | + |
| 33 | +If you want to make changes to Godot's API, you can use one of two systems: |
| 34 | + |
| 35 | +* `Core features <https://docs.godotengine.org/en/latest/tutorials/scripting/index.html#core-features>`__: You can add |
| 36 | + new methods and classes to Godot's core features. This exposes the new functionality on godot-cpp as well. |
| 37 | + To get started, please see :ref:`doc_intro_to_engine_contributions`. |
| 38 | +* `GDExtension API <https://docs.godotengine.org/en/latest/tutorials/scripting/gdextension/index.html>`__: You can add |
| 39 | + GDExtension lifecycle methods to the GDExtension API itself. We do not have an article for this kind of change as of |
| 40 | + yet. |
0 commit comments