In this discussion, godrik and I were discussing the relative merits of web applications that use AJAX techniques compared to local applications. I brought up the advantage that web apps can run even on machines where the user isn't allowed to install new software, such as someone else's PC, a set-top web terminal, or a video game console.
Godrik countered that he'd never buy a machine that didn't let its owner install software, and that when he wanted a console to play games on, he bought a Wii and jailbroke it using Bannerbomb. He mentioned plenty of established PC titles that have been ported to libogc, the library used by Wii homebrew: source ports of Id Software's Doom and Quake, emulators such as FCE Ultra, ScummVM, and VisualBoyAdvance, and various Linux-original games that had been ported to about everything, such as SuperTux. These games had presumably recouped their costs of production entirely on the PC.
In general, there are four routes to being able to run code on a closed platform:
- Make a web application that runs in the console's web browser. These browsers are usually severely limited in performance and in how much of the system's capability the browser exposes through the DOM. Some can't even read more than one gamepad at once, and they're impractical for playing handheld games away from Wi-Fi coverage.
- Make a pay-per-download game and sell it through the console maker's online store. This is cost prohibitive due to various artificial overheads imposed by console makers such as Nintendo, such as the requirements of a separate office and a prior commercial title on another platform.
- Make a native game that ships on a retail game disc. This is even more cost prohibitive than download.
- Make a "homebrew" game that relies on a jailbreak. This is the solution that godrik appears to prefer, but it has problems.
First, jailbreaks break the console's warranty or worse. There are anecdotal reports that Nintendo charges more for out-of-warranty service, such as disc drive replacement after the first 12 months, if a jailbreak is detected than if not.
Second, Nintendo can break Bannerbomb at any time by fixing the defect in a new version of the Wii Menu and IOS. Nintendo would install the fix on newly manufactured consoles and require an update before people can connect to Wii Shop Channel (workaround: WiiSCU) or start newly manufactured Game Discs normally (workaround: Gecko 1.8+). It could take weeks for a new sploit to be developed and released on sites such as WiiBrew, just as it took weeks from Wii Menu 4.0 to Bannerbomb.
But finally, the homebrew community frowns on charging for anything, especially the jailbreaks (Twilight Hack, Bannerbomb) and the launchers (BootMii, Homebrew Channel). That doesn't look good for somebody who wants to feed his family but isn't rich enough to afford the overhead of a license to develop on a closed platform, or even someone who just wants a little economic incentive not to abandon his projects.
One could develop for an open platform such as the PC, but as I mentioned in my last journal entry, not all genres fit well on such a personal computer. For example, a developer might want to make a social game designed to be played with gamepads, a big screen, a sofa, and three friends, such as Nintendo's Mario Party series or Super Smash Bros. series. But four adults can't easily fit around a PC's comparatively small monitor, and a lot of PC gamers seem to be keyboard-and-mouse fanboys who would make other players take turns if they're not old enough to work and buy their own PCs and their own copies of the game. One could go the "home theater PC" route, running gamepads through a USB hub and a VGA or DVI-to-HDMI cable to an HDTV, but two-thirds of U.S. households still have an SDTV in the living room, most PCs don't come with an S-Video output, and the PC to TV adapter isn't sold in stores. Likewise, music games with key sounds, such as Beatmania and Guitar Hero, can feel unresponsive on PC sound cards with their much higher audio latency.
But then, godrik wasn't referring to free as in free beer but instead to Free as in free speech. One way an author can rely on Free is to make the game a massively multiplayer online game based on subscriptions or micropayments. This has its drawbacks: more complexity, requirement for lag-tolerant game play design, cost of administering the game server, need for a separate PC per player, generally no opportunity for children to play due to COPPA and foreign counterparts, failure to reach people who regularly game away from a reliable Internet connection (such as laptop users or people living in the country), and the fact that a lot of people prefer to buy rather than effectively rent their games.
Another way is to make the game engine Free but to charge for the data files, much like Doom and Quake after their GPL release. But are there any success stories of shipping a retail or pay-per-download game whose engine is free software from day one?
Slashdot users: Feel free to Reply to This.
Anonymous readers: Feel free to Reply to This.