You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Godot] is an open-source game engine, whose version 4 has brought large-scale improvements.
10
10
Its _GDExtension_ API allows integrating third-party languages and libraries.
11
11
12
-
> If you are looking for a Rust binding for Godot 3 (GDNative API), check out [`gdnative`].
12
+
If you are looking for a Rust binding for Godot 3 (GDNative API), check out [`gdnative`].
13
13
14
14
15
15
## Philosophy
16
16
17
17
The Rust binding is an alternative to GDScript, with a focus on type safety, scalability and performance.
18
18
19
-
The primary goal of gdext is to provide a _**pragmatic Rust API**_ for game developers.
19
+
The primary goal of gdext is to provide a [**pragmatic Rust API**][philosophy] for game developers.
20
20
21
21
Recurring workflows should be simple and require minimal boilerplate. APIs are designed to be safe and idiomatic Rust wherever possible.
22
22
Due to interacting with Godot as a C++ engine, we sometimes follow unconventional approaches to provide a good user experience.
23
23
24
24
25
25
## Development status
26
26
27
-
The gdext library has evolved a lot during 2023 and is now in a usable state for smaller projects.
28
-
However, it is still in an early stage and there are certain things to keep in mind.
27
+
The gdext library has evolved a lot during 2023 and 2024 and is now in a usable state for smaller projects.
28
+
However, there are still certain things to keep in mind.
29
29
30
-
> **Warning**
30
+
> [!WARNING]
31
31
> The public API introduces breaking changes from time to time. Most of these are motivated by new features and
32
32
> improved ergonomics for existing ones. See also [API stability] in the book.
33
33
34
34
**Features:** While most Godot features are available, some less commonly used ones are missing. See [#24] for an up-to-date overview.
35
-
At this point, there is **no** support for Android, iOS or WASM. Contributions are very welcome!
35
+
At this point, there is **no** support for [Android] or [iOS], and [WASM] is experimental. Contributions are very welcome!
36
36
37
37
**Bugs:** Most undefined behavior related to the FFI layer has been ironed out, but there may still be occasional safety issues. Apart from that,
38
38
new additions to the library are typically not feature-complete from the start, but become more robust with feedback and testing over time.
39
-
To counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers.
39
+
To counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers. Even hot-reload is tested!
40
40
41
41
42
42
## Getting started
43
43
44
44
To dive into Rust development with gdext, check out [the godot-rust book][book]. The book is still under construction,
45
-
but already includes a tutorial to set up a simple example.
45
+
but already covers a Hello World setup as well as several more in-depth chapters.
46
46
47
47
To consult the API reference, have a look at the online [API Docs].
48
48
49
-
Furthermore, we provide a small example game in the [`examples/dodge-the-creeps` directory][dodge-the-creeps].
49
+
Furthermore, we provide a small example game in the [`examples/dodge-the-creeps` directory][dodge-the-creeps].
50
+
The example [`examples/hot-reload`][hot-reload] demonstrates hot-reloading in the Godot editor.
50
51
51
52
If you need help, join our [Discord] server and ask in the `#help-gdext` channel!
52
53
@@ -65,15 +66,20 @@ those changes available (and only those, no surrounding code).
65
66
Contributions are very welcome! If you want to help out, see [`Contributing.md`](Contributing.md) for some pointers on getting started.
0 commit comments