Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
There are tons of reasons programmers get attracted to games: graphics, physics, AI, networking, and more. Looking at all of the awesome games that have been released over the past few years, such as Halo, Grand Theft Auto, Gears of War, and others, you might first think that all of the major technology advances have been in the area of graphics or physics programming. There is certainly more than meets the eye, and after seeing for myself how some games are architected, I often wonder how they even function.
When building a game, programmers will typically start with a DirectX sample, import some of their own miserable programmer art, put an environment map or a bump map on everything in sight, and shout “Eureka! The graphics system is finished! We’ll be shipping our game by next weekend!”