In here we scratch the surface of Wii U game development, distribution and subsequent online services provided by Nintendo.
Development ecosystem
Game studios were offered two sets of products to develop Wii U games, one was a selection hardware units and the other was a bespoke software package.
Hardware Kits
Similarly to the Wii, Nintendo distributed multiple development units, to name a few :
- The Cafe Tool for Development (CAT-DEV) is the flagship devkit for development, debugging and profiling. It houses larger amounts of memory and enhanced I/O to assist with prototyping. The CAT-DEV communicates to a PC over TCP/IP.
- Once development reaches its testing stage, Cafe Tool Reader (CAT-R) is available to testers to try out beta builds without requiring to purchase the more expensive CAT-DEV. CAT-R is shaped like a retail Wii U and the only changes are found in its software. Its disc drive can only read CAT-R Discs which are identical to retail discs but engrave alternative signatures made for development units. An equivalent GamePad accessory was also shipped and purchased separately.
Software Kits
The official Software Development Kit (SDK) was called Cafe SDK and came bundled with:
- The set of libraries that interact with Cafe OS and therefore, the console itself.
- Green Hill's MULTI compilers and Integrated Development Environment (IDE), now that CodeWarrior reached obsolescence.
- It's worth noting the competition relied on Visual Studio as their IDE of choice.
- Various utilities to connect to CAT-DEV equipment.
- A GLSL shader compiler and an HLSL->GLSL shader transpiler. This is the reason GPU7 is said to be compatible with GLSL (OpenGL's shaders) or even HLSL (Direct3D's shaders). However, programmers can't use GLSL and/or HLSL shaders on GPU7 without compiling them into native GPU7 code first.
- Proprietary linkers to package up Wii U executables/libraries (in the form of
RPXandRPLfiles).
These tools expect a host running the 64-bit version of Windows 7 along with Cygwin installed.
Finally, it's worth reminding that, since games now run on top of Cafe OS, libraries are not linked statically anymore (a.k.a bundled into the binary). All Cafe OS references are linked dynamically and the OS now takes care of runtime linking.
Medium
This section is very much aligned with the 7th generation of consoles. In summary, there were two types of game distribution: Retail and Online.
Retail stores sold Wii U optical disc, a proprietary disc medium designed by Panasonic in an attempt to replicate many capabilities of the Blu-ray disc... without using Blu-ray discs. These can hold ~24 GB of data but only ~20 GB is available for actual game data, the rest is used for storing software update files, meta-data and other information Cafe OS needs to read.
The same drive is also able to read Wii optical discs which, in turn, are similar to the standard DVD format. However, the drive doesn't support either DVD or Blu-ray's playback capabilities.
Apart from discs, users had the option to buy Wii U games and expansions (a.k.a DLCs) using the eShop channel. The catalogue also included Virtual Console games.

Main screen of the eShop store.
On the surprising side, the Virtual console inventory has been expanded with Wii, Nintendo DS and Game Boy Advance titles. In the case of DS and GBA ones, the structure of a VC game is the same as their predecessors' (Wii's VC games), where both the emulator and game are packaged up as a game title. In other words, there's no shared emulator, unlike the PlayStation 3.
Finally, eShop purchases are installed into the eMMC storage or external USB devices, whichever the user prefers.
Game updates
Games are updatable using 'Update files'. These are offered to download, if available, by the System Menu right before the game is launched.
Behind the scenes, update files are installed on user storage like eShop games or DLC. Cafe OS supports two types of updates: Replacement files and delta patches.
Network service
It's been good fun with WiiConnect24, but Nintendo has since replaced it with a new set of services grouped under the Nintendo Network brand.
The first apparent difference is that, in order to access online services (including eShop and multi-playing), users must first register a Nintendo Network Account. This account is then paired with the previously created System account.
From the developer's perspective, the official SDK bundles libraries that interact with Nintendo's authentication servers. Developers then use the authentication data to interact with their own servers and provide whatever online functionality they offer.
As a side note, Nintendo also ventured into social media services by bundling new types of applications like Miiverse. Analogous to Facebook walls, Miiverse enabled users to post notes and make comments about their favourite games. To liven things up, these messages would later appear at random on the System menu or supporting games.
Be as it may, Miiverse didn't enjoy a long lifespan and it shut down in late 2017 (months after I finally managed to get a Wii U...).
