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
Looks really good - the anti-aliasing is awesome. Wonder if it’s temporal and whether they still need checkerboard rendering on the PS5?
New
AstonJ
Anything stand out for anyone? A few live-streams out there:
New
New
New
Jsdr3398
I just had a random thought come to my head: is there something like pygame for Elixir? Would Elixir be better or worse for game dev?
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
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
LoL_Sam
Hey everyone! My name is Sam and I represent Legends of Learning - a platform for game based learning in schools, and a marketplace for ...
New
Hipnot
How do I cancel my Fortnite Crew subscription and what happens to my account and previous rewards after I cancel my subscription?
New
RobertRichards
The quality of gaming has already received a terrific boost with the arrival of next-gen AR (Augmented Reality), VR (Virtual Reality), an...
#vr
New

Other popular topics Top

AstonJ
If it’s a mechanical keyboard, which switches do you have? Would you recommend it? Why? What will your next keyboard be? Pics always w...
New
PragmaticBookshelf
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
PragmaticBookshelf
Free and open source software is the default choice for the technologies that run our world, and it’s built and maintained by people like...
New
DevotionGeo
I know that these benchmarks might not be the exact picture of real-world scenario, but still I expect a Rust web framework performing a ...
New
New
Exadra37
I am asking for any distro that only has the bare-bones to be able to get a shell in the server and then just install the packages as we ...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
NewsBot
Crystal 1.20.1 has been released. Link: https://github.com/crystal-lang/crystal/releases/tag/1.20.1
New