Opinionated Rust integration for Unreal Engine
unreal-rust
is not ready to be used in a real project. unreal-rust
is in a very early state and nothing more than a proof of concept right now. The API will change quite frequently. Things might crash, or not work as intended. The user experience will not be great.
I am releasing unreal-rust
on github to develop it in the open.
AActor
: Most gameplay features like GameMode
, Characters
, GameState
, GAS
are not directly accessible in unreal-rust. Instead unreal-rust will provide optional alternatives. But you can still interact with most parts of the engine as Rust components can be accessed in Blueprint.Plugin
, just drop it in your project. See Supported versions for more information.Potential future platforms: iOS, macOS, Android, html5/browser(possibly)
Consoles are unsupported. I simply can not offer console support as it is a closed off ecosystem. Nor do I have access to any developer kits myself.
I am aware that these are a lot of steps. I am sorry, I will try to simplify this in the future
git lfs install
pip3 install ue4cli
. This step is optional but I will use ue4cli
in this guide.We start by cloning this repository
git clone https://github.com/MaikKlein/unreal-rust
Next we clone the submodule. This will download the actual example with all the assets.
cd unreal-rust
git submodule update --init
Next we need to setup the example
sh setup.sh
setup.bat
This will symlink the RustPlugin
into the unreal example/RustExample/Plugin
folder.
Now we need to build the actual Rust code:
Simply run
cargo build --release
This will build the whole project. This also produces our dll that we are going to load into Unreal.
Copy the dll/so file into the project
cp target/release/libunreal_rust_example.so example/RustExample/Binaries/rustplugin.so
copy .\target\release\unreal_rust_example.dll .\example\RustExample\Binaries\rustplugin.dll
Now we need to build the unreal example
cd example/RustExample
ue4 build Development Editor
Now you can run the example with ue4 run
5.0
This project will always try to support the latest version.