CommunityNews

CommunityNews

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. Instead unreal-rust will be written on top of the Unreal AActor and expose its API in a Rust friendly way.

The first big change is that unreal-rust will use an Entity Component System (ECS). For unreal-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 :smiling_face_with_three_hearts:.

I want to deeply integrate Rust into Unreal and everything should be accessible. You can add Rust Components to AActor in the editor. For example you can add a CharacterConfigComponent to the PlayerActor, 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 Rust Components 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.

Where Next?

Popular Game Dev topics Top

AstonJ
I hope we get some join at some point :star_struck: PS5 specs: Anyone else looking forward to the PS5? I am! :grin:
New
New
New
First poster: bot
It’s been confirmed that E3, the biggest video game event in the world, is set to go ahead this year. Instead of its usual Los Angeles l...
New
First poster: bot
Already in an Xbox developer program and looking for the GDKX or related resources to build and publish to Xbox consoles? GDKX (confiden...
New
New
MattSu
Hi, I’m trying to get some up to date spec for the audio capabilities on PS4/PS5 hardware. i.e. number of channels, whether it has dedica...
New
Unknown_0O0
Welcome, fellow game enthusiasts! Allow me to introduce Scratchblox, a delightful blend of Old Roblox charm and Scratch creativity. Step ...
New
bozigame
Hello Friends. First of all, I am very happy to share my excitement with you. After months of hard work, I have released my first game. I...
New
AkilarLiao
Hello Devtalk Community, I’m sharing a GPU-Driven Procedural Grass System for Unity URP, heavily optimized for mobile. Key Features &amp...
New

Other popular topics Top

PragmaticBookshelf
Stop developing web apps with yesterday’s tools. Today, developers are increasingly adopting Clojure as a web-development platform. See f...
New
PragmaticBookshelf
Learn from the award-winning programming series that inspired the Elixir language, and go on a step-by-step journey through the most impo...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
AstonJ
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting: asdf install erlang 23.1.2 Configure failed. checking ...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
PragmaticBookshelf
Author Spotlight: VM Brasseur @vmbrasseur We have a treat for you today! We turn the spotlight onto Open Source as we sit down with V...
New
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New