Platform-Specific Features

Our game was first developed for Steam, and there were many Steam-specific things in the code such as Steam matchmaking, player authentication, version checking, achievements, etc. On console, the game won't even start until all of this is removed. Usually, that means replacing the Steam stuff with platform-specific stuff like achievements that are handled differently on different consoles. Beyond that, there's also the social integration, user accounts, and user interface that needs to be added to make sure that when a player, for example, pressed the Xbox button, they get access to their Xbox account.

Certification

To release on console, you need to pass a certification process. For each console this is slightly different, but in any case it's a list of hundreds of very specific things that your game needs to be able to do. Sometimes these are rules that you need to abide by, other times these are functional features that need to be added. Then, there's a list of test scenarios that you'll need to pass for certification. For example, if you unplug the internet, turn a controller off, switch to Netflix, sync a new controller, plug the internet back in and switch back to the game, will it track the user change and make sure they're still signed in? Things like that. Once you think you've covered all your bases, you send a build to the platform holders and they test the game, and inevitably come back with a bunch of issues that you didn't see. Getting back to you can take a while, and then fixing the issues can also take a while before sending for certification again.