goostengine / goost

A general-purpose, extensible and customizable C++ extension for Godot Engine.
https://goostengine.github.io/
MIT License
481 stars 18 forks source link
godot-module godotengine

Goost Logo

If it's not in Godot, let it be in Goost.

Goost: Godot Engine Extension

🐧 Linux 🍎 macOS 🎨 Windows 🤖 Android 🍏 iOS 🌐 JavaScript

Goost is a Godot Engine extension implemented as a C++ module. The extension consists of functional components and other modules, most of which should be optional to build.

See Goost official documentation for detailed instructions on how to use the extension and the list of currently implemented components. For a complete list of currently implemented classes, refer to Goost API.

We strongly recommend to familiarize yourself with our development philosophy.

🔽 Binary downloads

Official binaries for the Godot + Goost editor and the export templates can be found on the Download page.


Goals 🎯

Non-goals 🌒


Community channels 🎭

Join #goost Discord channel at the GEL Discord server for discussion and development updates.


Building 🏗

For testing and debugging purposes, build artifacts are uploaded for Linux, macOS, and Windows builds which can be downloaded manually for each recently built commit:

If the links provided by nightly.link above don't work, proceed to GitHub Actions tab (have to be logged in).

Compiling

git clone https://github.com/goostengine/goost --recurse-submodules
cd goost
python goost.py config # Optional, pick components to build.
scons

This will clone the Godot Engine repository and compile the engine with Goost. You'll find the resulting binaries at godot/bin directory relative to the Goost repository.

For more advanced compilation options, refer to Goost Installation documentation pages.

Development 🧱

See Contributing if you are interested in development and to find out what kind of features are accepted.

Writing and running tests

While not mandatory, developers are encouraged to write unit tests (or any tests for that matter) for any existing or new features. See tests for details.

After build, run tests with the following command:

python run.py tests

Writing and generating documentation

The documentation can be generated for new classes, and updated for existing ones. See the following official documentation pages for further instructions:

To easily generate new or update existing documentation, run:

python run.py doc

The editor command is also useful for manually checking and proof-reading the built-in documentation from within the editor, especially when you want to make sure that all references work as expected:

python run.py editor

Versioning and compatibility

There are separate branches which are targeted for specific Godot Engine's major version.

Regarding latest extension development version, switch to

Similarly, you may use any of the stable branches with a similar branch encoding, such as 1.0-gd3 or 1.0-gd4, if available.

Any new features are encouraged to be developed against the latest Godot Engine's stable version, which may be optionally ported to the latest engine's development version (independently or in sync, depending on priorities).

License 📝

Unless otherwise specified, the extension is released under the MIT license.

See the full list of third-party libraries with their licenses used by this extension at thirdparty/README.md.