yuastnav wrote on Feb 6, 2013, 11:46: Wouldn't that make the code extremely inefficient?
No. A back-end is a logical unit of code. For each function to be provided you use one back-end per system. A PS3 environment will use the PS3 back-end and so on. There is no intermingling of code which means that on the target system there will only be the code needed for that system. Since code is not intermingled there is no performance penalty. You don't have one lego-piece that does it all but instead have a few different flavors of the same piece that you can use interchangeably.
Game engines are the proper place to put the different back-ends. With the number one reason being that if the support is in the engine then it massively reduces the duplication of effort between all the content developers who license that engine. For the longest time game engines have been tightly-coupled to the environment they ran in. Say an older engine would only run on Windows. Within the last few years however that coupling is being removed. Game developers do not write their code with a specific operating system in mind but instead write their code for a specific engine in mind. The workflow is: Content -> Engine -> Operating System. That is the "abstraction", the engine sits between the Operating System and the Content. The engine developers implement a variety of back-ends - the parts that touch the operating system - and then game developers are free to target whichever they choose. And because the game engine abstracts the operating system details then a game developer, in a proper case, would have to make exactly zero changes to their content when targeting a different system. The engine would do that.
Viable back-ends are obviously the consoles and Windows and Mac PCs. An engine developer however would only have to write a Linux back-end once and then maintain it like the other back-ends. Just by having that Linux back-end a game developer could then reap an additional 1% of sales right now without modifying any of their content to enable that. When Valve comes out with their mythical box expect the Source engine to have a back-end, obviously, for that and Source content - again in the ideal case - won't have to be modified at all to leverage the engine no matter the back-end.