Description
Describe the problem
Currently, we have one way to identify the platform through the System.OperatingSystem
eOperatingSystem
enum. But this gets complicated for consoles.
Let's say, for example, we are making a game that supports Wii U, Switch, and Switch 2. Should the enum be expanded to support each? Ideally, the OS should be identified as "Nintendo," and we should have a way to distinguish the hardware separately. Otherwise, we need to upgrade the enum every time a new hardware comes out.
For the engine implementation, it is highly likely that the OS/SDK for major consoles like Valve, Nintendo, Sony, and Microsoft will be consistent and have specific things depending on what the hardware can support.
Suggested change
There are many solutions to this, and I don't want to be prescriptive...
My first suggestion is replacing System.OperatingSystem
with a more comprehensive info struct that returns more information depending on what the platform implementation supports. For example, for PlayStation, I'd like to know that it's running on a PlayStation, maybe the version of the firmware, the hardware model, and then make specific modifications if it's PS4, 5, 6, etc, accordingly.
Activity