bevyengine / bevy

A refreshingly simple data-driven game engine built in Rust
https://bevyengine.org
Apache License 2.0
35.59k stars 3.52k forks source link

Game consoles support #8161

Open vladislav1nikov opened 1 year ago

vladislav1nikov commented 1 year ago

It would be good to add support for game consoles like Sony PlayStation, XBox, Nintendo Switch

james7132 commented 1 year ago

These platforms are all currently reliant on having platform specific closed-source NDA-bound SDKs. Even if we do add support for these, we may need to make the integrations closed source and NDA-bound due to the restrictions on them.

We also need support for these platforms in our dependencies and the full Rust toolchain. I know Nintendo Switch has had a few homebrew efforts to support it, but the toolchain for it currently is only no_std-only.

mockersf commented 1 year ago

There are a few reports of people getting Rust and sometimes Bevy working on consoles, but nothing verifiable unless you also have signed the NDA, in which case you wouldn't have the permission to talk about it anyway...

Xbox seems the easiest

unknownue commented 1 year ago

See also Console support in Godot.

vladislav1nikov commented 1 year ago

https://godotengine.org/article/godot-consoles-all-you-need-know/

Based on this article, it's really not possible to support consoles in an open source engine at the moment.

And according to this article, UWP won't help us much with XBox support:

The only exception at some point was exporting to the UWP platform which could run on XBox, but it had limited access to the console internals and was eventually deprecated by Microsoft.

Perhaps in the future support for consoles should be made in a separate closed project and porting games to consoles will be paid? I think Bevy can take Rust GameDev to the next level, but without console support it will be harder to compete with engines like Unity and Unreal Engine. In addition, I think that the project needs some kind of monetization, because only thanks to donations it will be difficult to reach the level of, for example, Unity.

DoctorRyner commented 6 months ago

@vladislav1nikov honestly, the idea that it's impossible to support consoles in an open source is absurd. It's possible to create a company and keep this part closed sourced, there is zero downsides to this solution. A game engine will never really rise until consoles supported

james7132 commented 6 months ago

Now that the Bevy Foundation exists, this is something that's worth entertaining, with the foundation holding the middleware license. If this license proves prohibitively expensive, we may need to figure out a way to fund it. The biggest open technical challenge, as far as I know, is that publishing typically requires using the console vendor's toolchains for compilation ,which may not bode well for Rust-based games.