Unreal Rust
TL;DR
unreal-rust
allows you to write games with Unreal Engine in Rust.
unreal-rust
is an opinionated Rust integration for Unreal. Rust cares about ownership, mutability and lifetimes. Mapping Unreal concepts to Rust 1 to 1 would only cause a headache. Insteadunreal-rust
will be written on top of the UnrealAActor
and expose its API in a Rust friendly way.The first big change is that
unreal-rust
will use an Entity Component System (ECS). Forunreal-rust
I decided to use bevy instead of rolling my own. I am just a single developer and I have to pick my battles. Writing and maintaining an ECS would distract me from doing actual work. The folks at bevy have done a wonderful job of making the ECS user friendly.
I want to deeply integrate Rust into Unreal and everything should be accessible. You can add Rust
Components
toAActor
in the editor. For example you can add aCharacterConfigComponent
to thePlayerActor
, which you can then access from within Rust. This allows to configure your character from Unreal without needing to touch any code. Additionally you can access RustComponents
from within Blueprint. This allows you to drive Animation blueprints, or pass data into your UI.Rust communicates with Unreal through C FFI. Its a bit out of scope for this blog post but I did a small write up to explain how it works in the unreal rust wiki.
Read in full here:
https://maikklein.github.io/unreal-rust-1/
This thread was posted by one of our members via one of our news source trackers.
Popular Game Dev topics










My game Don't Forget, a story & exploration game inspired by dementia, is now wishlistable on steam!
Other popular topics










Latest in Game Dev
Latest (all)
Categories:
Popular Portals
- /elixir
- /opensuse
- /rust
- /kotlin
- /ruby
- /erlang
- /python
- /clojure
- /react
- /quarkus
- /go
- /vapor
- /v
- /react-native
- /wasm
- /security
- /django
- /nodejs
- /centos
- /haskell
- /rails
- /fable
- /gleam
- /swift
- /js
- /deno
- /assemblyscript
- /tailwind
- /laravel
- /symfony
- /phoenix
- /crystal
- /typescript
- /debian
- /adonisjs
- /julia
- /arch-linux
- /svelte
- /spring
- /preact
- /flutter
- /c-plus-plus
- /actix
- /java
- /angular
- /ocaml
- /zig
- /kubuntu
- /scala
- /zotonic
- /vim
- /rocky
- /lisp
- /html
- /keyboards
- /vuejs
- /nim
- /emacs
- /nerves
- /elm