fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

Can any console game devs give me some insight on the state of using Rust on consoles? My understanding is that Unreal has replaced some code with Rust, so it must be doable yes?

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary haha where did you hear that

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva It is possible I am imagining things again.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary so here's what I know - I do not know of any parts of unreal engine that are written in Rust, and I feel like that's the sort of thing I would have heard about quickly if there were. A quick google shows there is a 3rd party module that exposes bindings for stuff to Rust via the C FFI, and it's not in a state the author considers to be usable.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary I'm not aware of any Rust games that have been ported to consoles and shipped.

Here's a nice high level explanation of what it can take to port a new language to consoles https://github.com/FNA-XNA/FNA/issues/478#issuecomment-1931150158

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary The way you know if a language or an engine or so is available on consoles is usually that there's a secret branch available where all of the porting work has happened that they can't release for contractual reasons, so it's advertised as being available upon request to registered console developers. I've heard of no such thing for Rust.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva Thanks -- I'm curious if system level languages are a bit easier than things like C# / Mono, especially as a lot of them use Clang as the back end now. Then it's just a question of how OS / Platform specific their standard library is.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva But what I'm getting from this is that if I'm developing a native SDK that might need console support at some point, I likely can't use Rust.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary Correct. It may some day be possible, but someone who has access to all the SDKs would need to put in a significant amount of work to port and maintain the language.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva I seem to remember @Migueldeicaza pointed me to folks doing Swift on consoles.... I was hoping Rust would be in a similar situation but I guess not.

Miguel - do you happen to know the current state of Swift for this?

Migueldeicaza,
@Migueldeicaza@mastodon.social avatar

@fuzzybinary @aeva I don’t, but swift should be very easy to support, as all consoles do llvm already.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary fwiw here's the ways I see it coming to pass:

  1. a Rust game engine project whose developers make games with the engine to prove out features makes something that's successful on PC and decides to invest development time into porting to consoles.
aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary 2. a contracting studio that specializes in ports and weird moonshot projects anticipates Rust game development will be a gold mine and does the work in hopes that they can sell it in the future for $$$, and then enough demand actually materializes for the platform branches to continue to be maintained

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva this appears to be what Chucklefish may have been going for but it doesn't seem like it materialized.

Also Bevy would likely be the engine to do it but I haven't seen it become immensely popular.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary for better or for worse the rub here is games are already very labor intensive to make, and the quality bar is so high. Any emerging language community that wants to angle in for game development needs to make iteration times faster to really catch on. Not on paper, not in theory, but in practice. Rust can probably get there once it amasses enough high quality libraries, but from everything I've heard it's not quite there yet.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva I think the main question that's still in my mind for MY specific use case (which is a supplemental SDK) is whether it's the language that's the challenge or binding to the stdlib or other system calls.

e.g., if I build a .so / .dll in Rust with no_std is that going to be fine?

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary I don't know. Build stuff is not my wheelhouse.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary 3. an enterprising studio puts in the work, successfully ships a game, and the game is successful enough that the studio can continue to justify making games like that; and they're willing to share with other registered devs

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary 4. a significant amount of commercially successful PC titles written in Rust emerge, enough so that console vendors notice that there's money to be made in maintaining an official compiler fork

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva Confirmation of what you're saying from the Rust community forums. It looks like Chucklefish is / was working on it but can't contribute the modifications back to Rust: https://users.rust-lang.org/t/is-there-a-reliable-way-to-support-mainstream-console-including-std/64451/2

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary That bit about two posts down doesn't sound promising :(

sinbad,
@sinbad@mastodon.gamedev.place avatar

@aeva @fuzzybinary There was a 3rd party effort to integrate it a couple of years ago but I don’t think it went anywhere.

I think this is good reading if you’re considering getting into it https://loglog.games/blog/leaving-rust-gamedev/. I get the impression that people using Rust for gamedev are in danger of prioritising love for Rust over gamedev productivity

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@sinbad @aeva Yeah, I actually wouldn't consider it for full game dev. I feel like Engine dev is a good fit with a higher level language for the "game" part. In my current use case, the SDK is not game specific.

Basically (and, public company disclaimer, we are not comitting to actually doing this), we're investigating what a native version of Datadog's logging / monitoring SDK would look like. We want to use Rust, but don't want to shoot ourselves in the foot for engine / platform support.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@sinbad @aeva We think (but I REALLY want confirmation) that we can build a Rust SDK with a C API into a dynamic library and then support desktop, consoles, Unity, etc.... but I REALLY want confirmation from someone before we go too far down that path.

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary @sinbad It might be worth contacting someone at chucklefish who is familiar with what it took to port the language and see if they're willing to comment privately on the issues you're likely to encounter. Without solid information or access to the NDA stuff you're probably better off sticking to C++20 or older and providing a thin Rust wrapper.

fuzzybinary,
@fuzzybinary@mastodon.gamedev.place avatar

@aeva Yeah, actually that's not a bad idea. I'm wondering if I can reach out to Catherine West directly. Thanks!

aeva,
@aeva@mastodon.gamedev.place avatar

@fuzzybinary good luck!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • megavids
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • provamag3
  • JUstTest
  • All magazines