Skip to content

Releases: libriscv/godot-sandbox

v0.8: Basic Node API in Rust, improved C++ API

19 Aug 06:55
9315804
Compare
Choose a tag to compare

In this release, the Rust API has received basic support for Node as well as the ability to make function calls into the engine. With that it's possible to do some basic scripting in Rust. In C++ the Node and Object API is now more complete with full support for methods, properties and signals. Node manipulation should also be complete with both regular and deferred operations.

Note: Use to docker pull to get the latest C++ or Rust compiler containers.

What's Changed

  • Add basic exception handling in guest C++ programs by @fwsGonzo in #55
  • Improve Rust compiler feedback, print using array by @fwsGonzo in #56

Full Changelog: v0.7...v0.8

v0.7: API and stability improvements

16 Aug 17:03
d4e24e2
Compare
Choose a tag to compare

Add access to certain global objects, like Engine, Input. Add access to current scene tree. Add property get/set for objects. Fixed some bugs with C++ guest strings and vectors.

There is now a demo project that showcases this Godot extension.

If you're updating from a previous version, remember to docker pull the Docker containers for each language.

Full Changelog: v0.6...v0.7

v0.6: API additions and improvements

15 Aug 15:55
f9dbf7e
Compare
Choose a tag to compare

In this release a demo project has been used to test the ability of the sandboxing extension.

  • Basic Node3D support added
  • Method-call support for nodes (call, call_deferred)
  • Node get(), get_children(), get_method_list()
  • Variant StringName support
  • Variant destructor now has native performance
  • main() is now optional in C++

Full Changelog: v0.5...v0.6

v0.5: Node and Node2D API for C++

14 Aug 05:40
961cd48
Compare
Choose a tag to compare

It's now possible to set ELF scripts directly as scripts to any node. This means you can't access the Sandbox underneath, but it simplifies usage greatly. Public functions are still exposed, so that eg. signals can be connected and functions like _ready also work. These scripts will auto-create a Sandbox instance and share it among themselves, making it scalable. In the future, a property may be used to toggle between shared and dedicated sandbox for each instance.

A new Node and Node2D API has been implemented for C++, allowing access to Node duplication, freeing and child management. For Node2D all normal operations (position, rotation etc.) are supported.

What's Changed

  • Implement basic Vector and Node2D API for C++ by @fwsGonzo in #50
  • Add support for setting scripts directly onto nodes, and basic signal… by @fwsGonzo in #51

Full Changelog: v0.4...v0.5

v0.4: Rust support

11 Aug 12:09
41aefda
Compare
Choose a tag to compare

Basic support for the Rust language has been implemented. Both Docker container and editor support.

What's Changed

Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.3...

v0.3: Script interface

10 Aug 13:59
4fa2aa7
Compare
Choose a tag to compare

This release implements ScriptInterface, so that auto-completion is possible in other scripts using @export var. This is documented here.

The C++ container is also updated to build in parallel, greatly reducing compilation times. Remember to docker pull!

Thanks to @Ughuuu for the idea and implementation.

Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.2...

Godot Sandbox Initial Release

09 Aug 06:56
7b4f6c9
Compare
Choose a tag to compare

This release adds all the required basic functionality for scripting with sandboxed C++.

  • Create a .cpp resource in a folder and save it in order to create a program (.elf)
  • Create a Node that extends Sandbox, assign the Program. Now Sandbox functions are available.
  • Docker is now managed from the editor.
  • All C++ files in the same folder produce a single executable (in that folder).
  • There is now a C++ API inside the Docker container that can be extracted:
    • docker exec -t godot-cpp-compiler bash /usr/api/build.sh --api

Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.1...

Godot Sandbox Pre-Release

30 Jul 21:23
e54be12
Compare
Choose a tag to compare
Pre-release

This release implements basic sandboxed C++ for the purposes of modding.

What's Changed

  • Updated submodule libriscv by @fire in #2
  • Add a github action. by @fire in #4
  • Use godot engine name property. by @fire in #3
  • Update libriscv for mac support. by @fire in #6
  • Streamline the github actions configuration by @fire in #7
  • Update godot to 4.2 godot-cpp and macos fixes by @fire in #9
  • Mingw windows by @fire in #10
  • Refactor actions. by @fire in #11
  • Try to make godot-riscv work on windows. by @fire in #13
  • add build system to build all supported platforms by @Ughuuu in #14
  • Implement support for PACKED_BYTE_ARRAY by @fwsGonzo in #16
  • Create resource loader for .elf by @Ughuuu in #18
  • Use fast-path threaded dispatch for most platforms by @fwsGonzo in #19

Full Changelog: https://github.com/libriscv/godot-sandbox/commits/v0.1