June 24th, 2024

Homegrown Rendering with Rust

Embark Studios develops a creative platform for user-generated content, emphasizing gameplay over graphics. They leverage Rust for 3D rendering, introducing the experimental "kajiya" renderer for learning purposes. The team aims to simplify rendering for user-generated content, utilizing Vulkan API and Rust's versatility for GPU programming. They seek to enhance Rust's ecosystem for GPU programming.

Read original articleLink Icon
Homegrown Rendering with Rust

Embark Studios, known for their games, is also developing a creative platform for user-generated content. They share insights on their approach to 3D rendering using Rust, focusing on gameplay before graphics. The team leveraged Rust's capabilities to build two closely related renderers with modern features like ray tracing and global illumination. They introduced "kajiya," an experimental open-source renderer emphasizing real-time global illumination. While not yet suitable for game production, it serves as a learning platform. The production renderer, based on kajiya, supports additional features like transparency and animation. Embark Studios aims to democratize great visuals by simplifying rendering for user-generated content. They highlight their use of Vulkan API for cutting-edge graphics and their innovative render graph structure for efficient rendering. Rust's versatility allows them to use it for GPU programming, enabling shared code between CPU and GPU and unit testing shaders on the CPU side. The team is looking to expand and improve Rust's ecosystem for GPU programming, inviting compiler engineers and open source engineers to join their efforts.

Related

20x Faster Background Removal in the Browser Using ONNX Runtime with WebGPU

20x Faster Background Removal in the Browser Using ONNX Runtime with WebGPU

Using ONNX Runtime with WebGPU and WebAssembly in browsers achieves 20x speedup for background removal, reducing server load, enhancing scalability, and improving data security. ONNX models run efficiently with WebGPU support, offering near real-time performance. Leveraging modern technology, IMG.LY aims to enhance design tools' accessibility and efficiency.

Groqnotes: Generate structured notes from audio using Groq, Whisper, and Llama3

Groqnotes: Generate structured notes from audio using Groq, Whisper, and Llama3

The GitHub project "Groqnotes" is a streamlit app utilizing Groq, Whisper, and Llama3 to create structured notes from audio content efficiently. It offers rapid transcription, markdown styling, and download options. Access online or set up locally.

Show HN: Eidos – Offline alternative to Notion

Show HN: Eidos – Offline alternative to Notion

The Eidos project on GitHub offers a personal data management framework as a Progressive Web App with AI features. Customizable with extensions and scripting, it leverages sqlite-wasm technology for chromium-based browsers.

My weekend project turned into a 3 years journey

My weekend project turned into a 3 years journey

Anthony's note-taking app journey spans 3 years, evolving from a secure Markdown tool to a complex Electron/React project with code execution capabilities. Facing challenges in store publishing, he prioritizes user feedback and simplicity, opting for a custom online deployment solution.

Gren 0.4: New Foundations

Gren 0.4: New Foundations

Gren 0.4 updates its functional language with enhanced core packages, a new compiler, revamped FileSystem API, improved functions, and a community shift to Discord. These updates aim to boost usability and community engagement.

Link Icon 7 comments
By @Animats - 5 months
Notice the (2021).

Read the change in which Embark's CTO backs off from Rust.[1] They were building their own rendering ecosystem, but seem to have backed off from that.

The mainstream Rust 3D ecosystem just isn't good enough yet. I've brought this up before.

The core crate for 3D is WGPU. This is a layer which tries to cover Vulkan, Metal, OpenGL, DX12, Android, and WebGPU targets. It works, but there are performance compromises to support all those different targets. Supporting web and Android means giving up some parallelism on desktop.

The main alternative to WGPU is Vulkano, and MoltenVK, which is an adapter for Apple's Metal. (Apple just had to Think Different, which is why many games are not ported to MacOS.) It's OK, but it's really just a subset of Vulkan on top. Same parallelism problem, although not for any essential reason.

All those offer a Vulkan-type API, which is rather low level. The caller has to manage GPU memory and scheduling. For that, there's Bevy, which is a whole game engine framework. Good work has been done in Bevy, but it's a framework, so you do it their way or not at all. There's Rend3, which is just a crate to manage memory and scheduling. I use that. It's been abandoned. I may have to take up maintaining that.

Nobody is pushing these towards maximum performance and quality. Nobody has a good modern big-world 3D shooter on these stacks.

All this stuff works fine if you're doing simple scenes. If you're pushing towards, say, the level of a 10 year old AAA title, it's not there. Modern Unreal Engine, not even close.

Not enough money behind it.

[1] https://github.com/EmbarkStudios/rust-ecosystem/commit/61f0e...

By @zith - 5 months
Does anyone know if Embark are still using a lot of rust in their production games? They seem to be a very well funded studio (lots of employees, big fancy office, competes with other AAA FPS-games). I wonder if these experimental-sounding projects have given way to more classic tech in the churn of building games that are profitable.
By @ibobev - 5 months
The article's author now works with his girlfriend on this[1] game also written in Rust.

[1] https://store.steampowered.com/app/2198150/Tiny_Glade/

By @J_Shelby_J - 5 months
The finals is such an impressive game. I’d love to learn how they managed it. The destruction of the entire map doesn’t slow down the game at all.

That said, the only thing stopping the finals from becoming a leading franchise is some balance and game design issues. They’ve built a wonderful casino, but the rules for the card games are rough around the edges. I hope they can drive a dump truck of cash up to riot HQ, and hire a designer passionate about esports. There is so many obviously wrong things in the game… like the recent lh-1 buff that lasted a day before being reverted. What were they thinking? That said, it’s the first game I’ve played in twenty years that makes gaming feel new, and we love so many things about it.

By @msk-lywenn - 5 months
(2021)
By @bbkane - 5 months
Note: this was published in 2021