Game Programming is the art and science of writing computer programs to implement games. Original video games were developed on custom hardware for arcade companies like Taito (Space Invaders) and Namco (Pacman). Following the arcade games came home systems like the Atari 2600. And following those came home computers, which led to many bedroom coders becoming millionaires after selling their home made games. Today, in 2005, video games are a multi billion dollar international industry dominated by large console manufactures (Sony Computer Entertainment, Nintendo, Microsoft) and large publishers (Electronic Arts, Activision, THQ, Take Two). Mass produced console and PC games are almost all written in C++. A good resource for learning about games programming is http://www.flipcode.com * flipcode is now closed, but "The article archives will remain online as reference material for the foreseeable future" ''This seems to be ignoring the more interesting question, which is getting computers to play (and play well!) games such as Rogue, Chess, GameOfGo, etc.'' Are you talking about ArtificialIntelligence? ---- ---- ''What follows should probably be deleted ...'' Well hey, programming Rogue is easy, '''winning''' Rogue is hard. :-) ''Really? Have you programmed a computer to play Rogue? Playing Go is easy, winning ...'' Partially. Rogue's co-author was my college roommate, and I've fiddled heavily with Rogue and Rogue-like source code ever since, and I would even say that, in some sense, programming Rogue is uniquely easy. There are a ton of details, but the mapping from source code to problem domain (user experience) is supremely straightforward. As for Go, the parallel is that both programming '''and''' winning Go is hard. Playing any game is easy if you're not trying to win. P.S. When I raise a topic, the answer to "have you programmed a computer to..." is generally "yes" or "partially", so I was a bit surprised you asked. Oh, indeed, I wrote my reply before I realised it was you. I let it stand because I'm busy, and these edits are in small time slices when I have time, which isn;t often. As I say, edit at will. And I think programming a computer to play Go is easy. Placing stones randomly suffices in some sense. It's a matter of degree. Similarly, programming a computer to play Rogue is easy. As you say, winning, or even doing well, is hard. ---- wiki dedicated to game programming: * http://gpwiki.org/ * http://gameprogrammer.com/