I'm curious what the process is for development for a game console such as Wii, Playstation, or Xbox. Do I need to use some game engine and compile for each platform?
What IDE is used? Any C++ IDE? Are all console games built in C++?
closed as too broad by Josh Petrie♦ Feb 23 '15 at 16:42
There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.
Pro development is almost unilaterally done in C++. If you're planning on targeting multiple platforms, this is a must since it's the only thing that's supported on every console and OS. Note: if you're new to this, I'd start with something much simpler like XNA - still very, very powerful, but it'll let you focus on your game instead of memory leaks and other neophyte C++ hurdles.
Also, developing for any of the three major consoles (if you include Wii in that category) will require a dev hardware, which is difficult/impossible to obtain unless you're working with a group that has an established presence in the game industry. (Read: Gearbox, Bungee, etc.)
To date, Microsoft is the only company to produce a free/very, very cheap option for independent developers to write and publish console games, and XNA is no slouch - many people are building very interesting things with XNA, and as far as I've been able to tell it's more than powerful enough to take full advantage of the current console hardware. Most of the work is done on the GPU these days, anyway, and the CPU code just coordinates things.
Oh, and your XNA code will run on Windows, as well. =)
I recently started working for a medium-sized game studio, and my development rig /pipeline consists of:
All actual coding is done in Visual Studio. The Sony and Microsoft tools allow connecting to your dev kit over the network, and provide remote debuggers that connect to Visual Studio. I haven't seen similar tools for other operating systems, but I haven't really looked.
The Orbis (PS4) version is built through clang. XBox and Windows go through the Visual C++ compiler. (Some of our guys do their initial development iteration cycle on the Orbis just because compilation is significantly faster.)
Most of the popular engines go a long way towards handling differences between the hardware, but when you get into shaders and real platform-specific optimizations (memory transfers are different beasts when comparing consoles to PCs), you're going to have to become something of an expert on consoles. On my team, we have one guy who is the PS4 expert, one who is the XBox expert, One super-badass who is the everything expert, but everyone works on everything.
To make retail games for a console you need to become an officially licensed developer. Each console manufacturer has a slightly different process for this, but it involves showing them that your team is capable to building and completing projects. If you've never shipped anything don't expect to get past this hurdle.
Once you've got a license then you'll need to purchase development hardware. The cost of the hardware is ~$10k per machine.
In the course of building your game you will need to get at least a distribution deal with an officially licensed publisher. You will also need to pass your game concept through each console manufacturer for approval. They each can accept or decline your title for their system.
Once the game is finished you again have to submit to the console owner for final approval and then pay them to manufacture the product. Distribution to stores is then handled by your publisher.
Basically the retail console space is a controlled market for established teams only.
To short circuit this whole process, MS put together XNA and the Community/Indie part of XBLA. XNA requires C# and doesn't give you complete access to the hardware, but in exchange you can develop and test on retail systems, don't need a developer license, and only have to pay a small fee to distribute digitally.
You don't have to use an existing game engine, but creating one from scratch can be a daunting Task. Right now your easier option is XNA and C# for the Xbox. XNA is free but to be able to publish your game you have to pay $99 per year fee to join microsoft's developer club. Unity3d is a game engine which also has an export to Wii option but you still need to be a licensed developer through nintendo and I don't know the costs involved with that.