Skip to content

Commit

Permalink
Merge pull request #67 from godot-rust/feature/ecosystem
Browse files Browse the repository at this point in the history
Ecosystem page
  • Loading branch information
Bromeon authored Dec 31, 2024
2 parents b8bfc9a + fcbce14 commit 20ec8a0
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 1 deletion.
6 changes: 5 additions & 1 deletion config/.markdownlint.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@
"list_items": false
},
"proper-names": {
"names": ["Godot", "GDScript", "Rust", "GDExtension", "gdext", "godot-rust"],
"names": ["Godot", "GDScript", "Rust", "GDExtension", "gdext", "godot-rust",
// Exceptions because this tool can't recognize "godot-" isn't "godot"
"godot-sandbox", "godot-tokio"
],

"code_blocks": false
},
"no-inline-html": {
Expand Down
1 change: 1 addition & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
- [Inspector plugins](recipes/editor-plugin/inspector-plugins.md)
- [Engine singletons](recipes/engine-singleton.md)
- [Custom node icons](recipes/custom-icons.md)
- [Ecosystem](ecosystem/index.md)
- [Contributing to gdext](contribute/index.md)
- [Philosophy](contribute/philosophy.md)
- [Dev tools and testing](contribute/dev-tools.md)
Expand Down
177 changes: 177 additions & 0 deletions src/ecosystem/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
<!--
~ Copyright (c) godot-rust; Bromeon and contributors.
~ This Source Code Form is subject to the terms of the Mozilla Public
~ License, v. 2.0. If a copy of the MPL was not distributed with this
~ file, You can obtain one at https://mozilla.org/MPL/2.0/.
-->

# Ecosystem

This chapter lists third-party projects that extend godot-rust with additional functionality: tools, libraries, integrations, apps, and more.
The projects are grouped by type of project and their respective domain (although such classification is not always clear-cut).

If you'd like to add a project, please read [Contributing](#contributing)!

A list for games is also planned, and will be showcased on a separate page.


## Table of contents

<!-- toc -->

## List of 3rd-party projects


### 🏛️ Rust libraries

| Project | Further links | Activity |
|--------------------------------------------------------------------------------|--------------------------------------------------------------------------|-----------------------------------------------|
| 🌀 _**Async**_ | | |
| **[gdext-coroutines]**<br/>Integrate Rust coroutines with Godot's async/await. | [crates.io][gdext-coroutines-crate], [Discord][gdext-coroutines-discord] | ![gdext-coroutines][gdext-coroutines-badge] |
| **[godot-tokio]**<br/>Create Tokio runtime for use with godot-rust. | [crates.io][godot-tokio-crate], [Discord][godot-tokio-discord] | ![godot-tokio][godot-tokio-badge] |
| ___________________________________________________ | | |
| 🏗️ _**Project workflow**_ | | |
| **[gd-rehearse]**<br/>Unit tests for godot-rust code. | [Discord][gd-rehearse-discord] | ![gd-rehearse][gd-rehearse-badge] |
| **[gd-props]**<br/>Resource serialization using `serde`. | [Discord][gd-props-discord] | ![gd-props][gd-props-badge] |
| **[gdext-generation]**<br/>Auto-generate the `.gdextension` file. | [Discord][gdext-generation-discord] | ![gdext-generation][gdext-generation-badge] |
| ___________________________________________________ | | |
| 📜 _**Scripting**_ | | |
| **[godot-rust-script]**<br/>Allows Rust scripts to be added to nodes. | | ![godot-rust-script][godot-rust-script-badge] |
| ___________________________________________________ | | |
| 🎮 _**Game development**_ | | |
| **[SpireTween]**<br/>Alternative tweening library for Godot 4.2+. | [Discord][spire-tween-discord] | ![SpireTween][spire-tween-badge] |
| **[GridForge]**<br/>Generic abstraction for grid maps. | [Discord][gridforge-discord] | ![GridForge][gridforge-badge] |

[gdext-coroutines]: https://github.com/Houtamelo/gdext_coroutines
[gdext-coroutines-crate]: https://crates.io/crates/gdext_coroutines
[gdext-coroutines-discord]: https://discord.com/channels/723850269347283004/1255555232390451293/1255555232390451293
[gdext-coroutines-badge]: https://img.shields.io/github/last-commit/Houtamelo/gdext_coroutines

[godot-tokio]: https://github.com/2-3-5-41/godot_tokio
[godot-tokio-discord]: https://discord.com/channels/723850269347283004/1312490414762364928/1312490414762364928
[godot-tokio-crate]: https://crates.io/crates/godot_tokio
[godot-tokio-badge]: https://img.shields.io/github/last-commit/2-3-5-41/godot_tokio

[gd-rehearse]: https://github.com/StatisMike/gd-rehearse
[gd-rehearse-discord]: https://discord.com/channels/723850269347283004/1179891414474178661/1179891414474178661
[gd-rehearse-badge]: https://img.shields.io/github/last-commit/StatisMike/gd-rehearse

[gd-props]: https://github.com/StatisMike/gd-props
[gd-props-discord]: https://discord.com/channels/723850269347283004/1166451642145701989/1166451642145701989
[gd-props-badge]: https://img.shields.io/github/last-commit/StatisMike/gd-props

[gdext-generation]: https://github.com/sylbeth/gdext-generation
[gdext-generation-discord]: https://discord.com/channels/723850269347283004/1316664276819247124
[gdext-generation-badge]: https://img.shields.io/github/last-commit/sylbeth/gdext-generation

[godot-rust-script]: https://github.com/titannano/godot-rust-script
[godot-rust-script-badge]: https://img.shields.io/github/last-commit/titannano/godot-rust-script

[SpireTween]: https://github.com/Houtamelo/spire_tween
[spire-tween-discord]: https://discord.com/channels/723850269347283004/1257474308939452477/1257474308939452477
[spire-tween-badge]: https://img.shields.io/github/last-commit/Houtamelo/spire_tween

[GridForge]: https://github.com/StatisMike/grid-forge
[gridforge-discord]: https://discord.com/channels/723850269347283004/1238991002799444049/1238991002799444049
[gridforge-badge]: https://img.shields.io/github/last-commit/StatisMike/grid-forge


### 🧩 Editor plugins

| Project | Further links | Activity |
|-------------------------------------------------------------------------------|-----------------------------------------|-----------------------------------------------------|
| 📐 _**User interface**_ | | |
| **[Godot-Tour]**<br/>UI tours/tutorials for editor and in-game. | [Discord][godot-tour-discord] | ![Godot-Tour][godot-tour-badge] |
| ___________________________________________________ | | |
| 🎨 _**Graphics**_ | | |
| **[Godot Trail 3D]**<br/>Adds a `Trail3D` node to Godot. | [Discord][godot-trail-3d-discord] | ![Godot Trail 3D][godot-trail-3d-badge] |
| ___________________________________________________ | | |
| 🧲 _**Physics**_ | | |
| **[Godot Rapier Physics]**<br/>Rapier 2D + 3D integration for Godot. | [Discord][godot-rapier-physics-discord] | ![Godot Rapier Physics][godot-rapier-physics-badge] |
| **[Godot Rapier 3D]**<br/>GDExtension that enables Rapier physics with Godot. | [Discord][godot-rapier-3d-discord] | ![Godot Rapier 3D][godot-rapier-3d-badge] |
| ___________________________________________________ | | |
| 🧙‍♂️ _**Storytelling**_ | | |
| **[nobodywho]**<br/>Interact with local LLMs for interactive storytelling. | [Discord][nobodywho-discord] | ![nobodywho][nobodywho-badge] |
| ___________________________________________________ | | |
| 🏗️ _**Project workflow**_ | | |
| **[godot-sandbox]**<br/>Secure modding support for C++, Rust and others. | | ![godot-sandbox][godot-sandbox-badge] |


[Godot-Tour]: https://github.com/Decapitated/Godot-Tour
[godot-tour-discord]: https://discord.com/channels/723850269347283004/1272688558070698037/1272688558070698037
[godot-tour-badge]: https://img.shields.io/github/last-commit/Decapitated/Godot-Tour

[Godot Trail 3D]: https://github.com/SomeRanDev/Godot-Trail3D
[godot-trail-3d-discord]: https://discord.com/channels/723850269347283004/1246199893043974247/1246199893043974247
[godot-trail-3d-badge]: https://img.shields.io/github/last-commit/SomeRanDev/Godot-Trail3D

[Godot Rapier 3D]: https://github.com/deltasiege/godot-rapier-3d
[godot-rapier-3d-discord]: https://discord.com/channels/723850269347283004/1238758369767198741/1238758369767198741
[godot-rapier-3d-badge]: https://img.shields.io/github/last-commit/deltasiege/godot-rapier-3d

[Godot Rapier Physics]: https://github.com/appsinacup/godot-rapier-physics
[godot-rapier-physics-discord]: https://discord.com/channels/723850269347283004/1233345975255433266/1233345975255433266
[godot-rapier-physics-badge]: https://img.shields.io/github/last-commit/appsinacup/godot-rapier-physics

[nobodywho]: https://github.com/nobodywho-ooo/nobodywho
[nobodywho-discord]: https://discord.com/channels/723850269347283004/1309111775991693332/1309111775991693332
[nobodywho-badge]: https://img.shields.io/github/last-commit/nobodywho-ooo/nobodywho

[godot-sandbox]: https://github.com/libriscv/godot-sandbox
[godot-sandbox-badge]: https://img.shields.io/github/last-commit/libriscv/godot-sandbox


### 🖥️ Applications

| Project | Further links | Activity |
|-------------------------------------------------------------------------|----------------------------------------|---------------------------------------------------|
| 🎛️ _**Software platforms**_ | | |
| **[Godot Boy]**<br/>Game boy emulator in Godot, written in Rust. | [Discord][godot-boy-discord] | ![Godot Boy][godot-boy-badge] |
| **[GDScript Transpiler]**<br/>Reimplements parts of GDScript in Rust. | [Discord][gdscript-transpiler-discord] | ![GDScript Transpiler][gdscript-transpiler-badge] |
| ___________________________________________________ | | |
| 🛸 _**Tech demos**_ | | |
| **[Godot boids]**<br/>Addon for Godot that adds 2D/3D boids (flocking). | [Discord][godot-boids-discord] | ??? |

[Godot Boy]: https://gitlab.com/greenfox/godot-boy
[godot-boy-discord]: https://discord.com/channels/723850269347283004/1230789480290586624/1230789480290586624
[godot-boy-badge]: https://img.shields.io/gitlab/last-commit/greenfox/godot-boy

[GDScript Transpiler]: https://gitlab.com/the-SSD/gdscript-transpiler
[gdscript-transpiler-badge]: https://img.shields.io/gitlab/last-commit/the-SSD/gdscript-transpiler
[gdscript-transpiler-discord]: https://discord.com/channels/723850269347283004/1237464552384499833/1237464552384499833

[Godot boids]: https://git.gaze.systems/dusk/godot_boids
[godot-boids-discord]: https://discord.com/channels/723850269347283004/1279645654439821393/1279645654439821393


## Contributing

If you have a project that might fit this list, great! You don't have to be the author -- if you've come across something that will make other
people's lives easier, please share it!

To keep this list useful for visitors, there are a few acceptance criteria:

- The project must be related to godot-rust (not only Rust or only Godot). It should use Godot 4.
- There's already something tangible with at least minimal docs/examples.
- This could be a usable library on GitHub, a working demo, etc. No need for a crate release or very polished presentation; the idea is
that the project is accessible for newcomers.
- To discuss ideas and WIP prototypes, feel free to start a discussion [in `#showcase` on Discord][discord-showcase]!
- The author should be willing to maintain the project for a while.
- GDExtension has a very good track record with binary compatibility, and [godot-rust supports extensions down to Godot 4.1][gdext-compat].
So if you integrate via extensions (e.g. as an editor plugin), your project tends to be more future-proof than with source code.
- That said, we don't have major breaking changes very often.
- If the project is intended for distribution and usage, make sure it comes with a license (e.g. an open-source one for software, or
Creative Commons for artworks).

Once that's sorted, please open a pull request directly to the [book repository][book-repo]. If you're not sure about
the criteria or have other questions, don't hesitate to ask on Discord or the [book issue tracker][book-issues].

```admonish tip title="A thriving ecosystem"
Every single project enriches the space around Godot and Rust, and lets more and more people enjoy game development.
Thanks a lot to every contributor!
```

[discord-showcase]: https://discord.com/channels/723850269347283004/1163944783484563537
[gdext-compat]: ../toolchain/compatibility.md
[book-repo]: https://github.com/godot-rust/book
[book-issues]: https://github.com/godot-rust/book/issues

0 comments on commit 20ec8a0

Please # to comment.