![]() ![]() Having done so several times, I can say that porting the graphics part from PC to (modern) consoles, depending on how the PC code was written, could be relatively straightforward, or very hard. They've already done most of this hard work, so you have much fewer steps required to port your game to a new platform (though usually there are still at least a few issues to sort out, since platforms don't just differ in rendering, but also input devices, vibration, player account management, online/store systems, achievements, console settings, certification requirements, etc.) The amount of work involved in all this is one reason why established, cross-platform engines are so attractive. Sometimes an artist or other asset creator will need to make custom versions to support the new platform, like simpler meshes for weaker graphics hardware. When porting to mobile, assets might also need to be exported at different resolutions to suit different screens. So there's a lot of work in establishing a common set of operations that the abstraction layer can efficiently map to one platform's implementation or the other.ĭirectX shader code might need to be re-written for the new platform, or the team might use a transpiler to produce modified shader code automatically for most cases, and only hand-fix the problem cases.Īssets like textures might also need to be re-baked to suit the compression formats or memory size characteristics needed by the new platform. Now of course it's not a simple task, since different platforms and APIs work in different ways or make different assumptions. The old DirectX-specific code will become one version of the implementation of this layer, and the devs will create another version for the new platform - serving the same interface to the rest of the game, with different internals to match the new system.Īt compile time, either version of these intermediate layers can be swapped-in, to compile a binary for one platform or another. When done right, the vast majority of the game code will have no idea if it's running on DirectX or something else. Instead it will direct its request to this intermediate layer. Typically it involves writing an abstraction layer, so game-specific code never references a DirectX or other platform-specific code directly. Yes, porting games between platforms is a lot of work. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |