potato_hamster said:
This is literally what iOS does, the API being the same, arcitecture being identical, but running at different speeds and have different resolutions. However, I still find it laughable that you just trvialize these optimizations as "the way you turn of settings on a PC game". It isn't that simple. You still have to handle the different control schemes. You still have to handle the different outputs. You still have to redo textures and simplify animations, AI, etc to run just as well off of more limited resources. These are things you need to do going from an iPad game to an iPhone game, or going from a game optimized for iPhone 5 to one that can run off of iPhone 4. These aren't trivial things to do. Again, it is not that simple. |
Game engines we see developers use nowadays do the vast majority of the work when porting a title to each platform.
Artists make one set of high end assets, with high res textures, complex geometry, then the engine has a set of sliders to reduce the complexity of those options. Shading options would be another part of the package (any graphical features or even AI and Physics), sure you have a team of people that go in and alter those settings to make the whole game fit within each platform's hardware limits, but you definitely don't have to rebuild each model or draw new textures for another platform, that's just not how game development works nowadays, even when portion a title from PC to PS4 or XB1.
The alterations are absolutely just options within the game engine.
The code side of things is a lot more complex, but once the coding team have written XB1's version of DX11/12 or PS4's GNM/X into the engine it's just a matter of gradual iteration on past code to make better use of each platform and provide more capabilities for that platform.
Even separate Architectures of X86 tech aren't that much extra work once you've incorporated a new platform into your engine. So long as Nintendo writes a solid and straightforward API, that accounts for all of the platforms that could make up each system within the NX family (assuming NX is this), makes resource management easy, overall development would be pretty easy for developers.
This stuff is actually way more trivial than you're making it seem.