FUNDAMENTALS OF GAME DESIGN, SECOND EDITION
Personal Computers
A personal computer (PC) can be set up away from the communal living space, on a computer desk. In this case, the player has a keyboard, a mouse, possibly a joystick, and (more rarely) a dedicated game controller such as those on console machines. The player sits 12 to 18 inches away from a relatively small (compared to the television) high-resolution display. The high resolution means that the game can have subtle, detailed graphics. The mouse allows precision pointing and a more complex user interface. The keyboard enables the player to enter text conveniently and send messages to other players over a network, something that is nearly impossible with console machines.
The personal computer is quite awkward for more than one person to use. The controls of a PC are all designed for one individual, and even the furniture it usually sits on—a desk—is intended for solitary use. PC games are rarely designed for more than one person to play on a single machine. On the other hand, a PC is very likely to be connected to the Internet, whereas consoles only recently got this capability. The PC is still the machine of choice for multiplayer networked games.
The great boon of PC development is that anyone can program one; you don't have to get a license from the manufacturer or buy an expensive development station. Consequently, personal computers are at the cutting edge of innovation in computer gaming. They're the platform of choice for small-scale, low-demand projects, interactive art, and other experimental forms of interactive entertainment.
The great bane of PC development is that no two machines are alike. Because they're customizable, millions of configurations are possible. In the early days of the game industry, this was a real nightmare for programmers. Fortunately, the Windows and Macintosh operating systems have solved many of these problems by isolating the programs from the hardware. Still, games tend to require more from the machine than other applications do, and configuration conflicts still occur.
PC games may be divided into two general and quite different categories: standalone games, which the player installs on his machine like any other program, and browser-based games that run inside a web browser such as Safari or Internet Explorer.
A stand-alone PC game can use the full power of the PC, assuming the player isn't running any other applications at the same time. Of all games played on consumer equipment, stand-alone PC games can be the most visually spectacular. Home game consoles are sold in distinct hardware "generations," and a given manufacturer's machine won't change until the next generation. By contrast, personal computers evolve constantly, so game developers can take advantage of the latest hardware innovations. Crytek's Crysis is a good example of a game that requires a very powerful machine for a player to enjoy it fully.
This doesn't mean that stand-alone PC games always demand high-end equipment, or that they should; it only means that if you want to develop for the highest-end gear, you should build stand-alone PC games. That choice usually limits the size of your market to the truly dedicated hobbyist gamer. On the other hand, many stand-alone games are aimed at the middle of the range and do very well. Most edutainment games are stand-alone games because it's easier for a parent to help a young child with a keyboard and mouse than a handheld controller.
Browser-based games are a rapidly growing sector of the game market. They have one huge advantage over stand-alone games: Because they run in a web browser, they are isolated from the machine's hardware. A browser-based game can run on a Windows PC, Macintosh, or Linux machine with no modifications. This advantage comes at a price, however; browser-based games cannot take full advantage of the machine's capabilities, and this usually includes 3D rendering. Most browser - based games—and there are thousands—are 2D games aimed at the casual player. They are often written in Java or Adobe's ActionScript language, which works with Flash Player.
Beginning with browser-based games is an excellent way to get started building small games, because you don't have to know much about the machine's hardware.