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 installpip3 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.shsetup.batThis 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.socopy .\target\release\unreal_rust_example.dll .\example\RustExample\Binaries\rustplugin.dllNow we need to build the unreal example
cd example/RustExample
ue4 build Development Editor
Now you can run the example with ue4 run
5.0This project will always try to support the latest version.