Giter Club home page Giter Club logo

goost's Introduction

Goost Logo

If something should be in Godot, let it be in Godot.

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.

Note that Goost is not an engine fork, please have a look at our development philosophy.

๐Ÿ”ฝ Binary downloads

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


Goals ๐ŸŽฏ

  • Complement the engine by implementing missing or not-yet-implemented functionality as seen useful by the Godot community, helping to prevent further engine bloat to a reasonable extent;
  • Provide additional core data structures, classes and methods to optimize performance-critical tasks in a general-purpose way for when GDScript or other languages are too slow, or when better integration is desired with existing libraries;
  • Expose, reuse, and build upon the engine's hidden built-in functionality typically unavailable to scripting;
  • Overcome engine limitations which may be difficult to do via script, especially when those limitations can be mitigated on the module level without having to maintain a custom version of the engine.

Non-goals ๐ŸŒ’

  • Solving project-specific problems. Consider alternative projects such as Godot Node Extensions instead.
  • Collecting arbitrary community C++ modules for the sake of it. Goost provides a separate project for this purpose in the goostengine/godot-modules repository, which also includes this extension as a git submodule.

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

  • gd3 branch for Godot 3.x
  • gd4 branch for Godot 4.x (does not exist yet).

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.

goost's People

Contributors

98teg avatar gongpha avatar mbrlabs avatar xrayez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.