|
Happy New Year developer ☀️🎆
2022 is looking to be a very exciting year here at Embark. On December 9th, we announced our first game, ARC Raiders, at the Game Awards. We've been anxious to share more of what we have going on behind the scenes for awhile, and now we finally can!
In this installment of the newsletter, we want to showcase some of the open source crates that helped us bring ARC Raiders to life. In addition, read below about the homegrown, Rust-powered rendering tech we are using to build our creative platform. (Spoiler alert: we've released a brand new open source rendering repository for you to plug into your Rust projects!)
New to the newsletter? Welcome! I'm Celia, a Producer here at Embark. Every now and then I'll send you a summary of what Embark's been up to in open source and the greater developer ecosystem.
Let me know what you think! You can send feedback about the newsletter or questions to opensource@embark-studios.com.
|
|
|
ARC Raiders is supported by open source technology
While ARC Raiders is foremost an Unreal Engine game, much of the game’s supporting tech is built with open source components. For instance, you may have read this post from Tom Solberg on our machine learning team, detailing how we're experimenting with machine learning for game animation, using tract, a Neural Network inference engine by Sonos. In addition, our ML stack also frequently levies cbindgen, a crate which creates C headers for Rust libraries.
As long-time readers of the newsletter likely know, we at Embark are huge proponents of Rust. In ARC Raiders, we use Rust in both our build systems and source control submit tools. Internally, we employ Rust to create a continuous integration (CI) toolset for Unreal-based games.
Publicly, we also use the Rust-powered crate Quilkin, which we announced in last month’s newsletter. Quilkin, developed in conjunction with Google Cloud, is our open source game server proxy. In ARC Raiders, Quilkin is used as a sidecar, so when you play the game you're always actually connecting to Quilkin, which then forwards to the actual game server.
|
|
|
Blog Post: Homegrown rendering with Rust
You may have heard that in addition to two games, we are also crafting a creative platform (built in Rust) that intends to democratize game creation. One of our engineers, Tomasz, sheds some light on the rendering tech that enables this very special goal in a new Medium post.
"Our Rust project has different requirements than a video game. It’s a platform that will enable everyone — not just professional game makers — to build new small interactive experiences. For rendering, this means working with user-generated content, and not requiring expert game developer knowledge to achieve stunning results." ― Tomasz Stachowiak
Read more from Tomasz about our upcoming creative platform and the Rust rendering tech behind it in the full article on Medium.
|
|
|
Blog Post: Cross compiling Windows Rust binaries from Linux
Have you ever been curious about what goes in to cross-compiling Rust from Linux to Windows? Luckily, Embark engineer Jake Shadle has, too; tasked with maintaining the Continuous Delivery pipeline for his project at Embark, he recently added a new job to the CI to cross compile his project for x86_64-pc-windows-msvc from an x86_64-unknown-linux-gnu host.
In his new blog post, he details this process from beginning to end.
|
|
|
"It's fairly common knowledge that, generally speaking, Linux is faster than Windows on equivalent hardware. From faster file I/O to better utilization of high core count machines, and faster process and thread creation, many operations done in a typical CI job such as compilation and linking tend to be faster on Linux."
|
|
|
|
You can read the full post here.
|
|
|
Projects from the Rustiverse 🪐: Axum
This month, we're highlighting the project Axum, the brainchild of another of our engineers, David Pedersen. Axum is part of the Tokio ecosystem, providing an easy to use yet powerful web framework designed to take full advantage of Tokio.
With axum, you can:
- Route requests to handlers with a macro free API.
- Declaratively parse requests using extractors.
- Simple and predictable error handling model.
- Generate responses with minimal boilerplate.
- Take full advantage of the
tower and tower-http ecosystem of middleware, services, and utilities.
You can read the full announcement of Axum on the tokio.rs blog.
|
|
Contribute to open source!
Embark maintains many open source projects, and all of them welcome new contributors!
You can see all our projects on embark.dev and read our Contributor Guide for info on how to get started.
|
|
|
Join us on Discord!
Want to chat more about Rust, game dev, or Embark's open source projects?
We created a Discord where you can chat with Embark devs, open source contributors, and game dev or tech enthusiasts. It's also a great place to discuss things from our newsletter!
|
|
|
That's all for February! As always, you can let us know what you think of this newsletter by sending an email.
Happy coding!
- Celia
|
|
|
|
|
|