We often get the question about when our game, Ultimate Chicken Horse, is coming to console. A fair question for sure, as the game seems like the perfect fit for consoles. Sometimes people understand that it's a lot of work to port a game, but most of the time people get annoyed because "can't you just sell it on console?". I wanted to write an answer today about what goes into making a game for console, directed at people who aren't necessarily game developers. If you are a game dev, feel free to use this to answer people who ask you.
The first step is to plug in the development kits and get all the accounts set up so that you can actually use them. This usually requires a static IP address, which you have to set up if you don't have one. The kits also need license keys and need to be properly registered, then you have to (figure out and then) navigate through a bunch of menus to find the spot to allow the console to connect to your PC. If you haven't done it before, this is not a trivial process.
Exporting from the Game Engine
We use Unity, and exporting from Unity to console is meant to be easy. While it's not particularly difficult, you still need to get a special Unity plugin to be able to do this. The Unity plugins from the platform holders (Sony, Microsoft, Nintendo) are often a few versions old, so you need to make sure to roll back Unity to a version that works with the plugin. You'll also need another license key to actually do the export and try to get the game to run on the console.
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.
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.
These are a nightmare that no one wants to deal with. There are different rating systems for a bunch of countries and regions, each with their own governing boards, requirements, submissions and payments. The IARC (International Age Rating Coalition) is trying to simplify this process, but it's going slowly. We have to submit the game to ESRB (North America), PEGI (Europe except Germany), DSK (Germany), CERO (Japan), GRAC (Korea), and more. What's more, in some of those cases you need to do them in the language of the country. For example you can't get an age rating in Japan without a Japanese company, and to launch on Sony Japan you need a rating from CERO. So... not super straight-forward.
Once you've finally done all of this, you need to talk to the console folks and determine a launch date based on other releases that are coming out. You'll want to be slotted in at a time where there aren't a ton of big hyped games coming out to maximize visibility on the storefront. In addition, the more you lean toward exclusivity toward one console, the more they'll try to give you in terms of marketing and visibility. Once you've figured that all out, you can release!
So, all this to say, that going from PC to console is not a quick process. This article barely scratches the surface of the technical side of porting, and there's a ton more to know about it. I wanted to give an idea of what goes into it though, so that you (the average non-game-developer) understand and also so that game developers can share this as a beginning of an explanation about the difficulties we face and the reason that the port doesn't take two weeks.
We'll keep on trucking though, we're working on it!