Py Games

Computer games are big business. A team of 10 or 20 people may work feverishly behind closed doors for one to two years before the latest --insert game of your choice -- killer even sees the light of day. The average budget for this kind of development runs into hundreds of thousands of dollars, and that's before marketing gets involved! Given the risk and cost associated with game development, it's not surprising so many of today's games walk a fine line between derivative and evolutionary.

Large publishers are consolidating development houses or offering golden handcuffs to bring leading IP exclusively to a specific manufacturer's hardware. The barriers to entry into the games development industry are too large for just anyone to write a computer game.

Or are they?

The Tools Are Out There!

Ok, I'll come clean. The barriers to entry into the commercial games industry are high, probably too high. Bob and Joe aren't going to write the next killer Playstation 2 title just by sitting in their respective bedrooms for six months, beavering away in an effort to realize a good idea. But this doesn't mean all they can do is sit in the pub arguing over what would make a great game. Bob and Joe have advantages! They don't have margins or deadlines to worry about. They have a great idea, some free time and nothing to lose. Most importantly, Bob and Joe have free software and a network of people willing to share their knowledge in order to help them learn. Add to this an audience of people crying out for more games -- whatever the cost. There are powerful weapons in the budding game developer's armory.

Commercial-grade tools for the programmers, artists, and musicians amongst us are available at the price of a download. This helps us all in our daily lives, but it helps budding developers like Bob and Joe even more. They have at their disposal a choice of rock-solid operating systems to develop upon, and one of the cleanest, easiest-to-learn programming languages available: Python.

On The Shoulders of Giants

Language developers have made numerous attempts to create a language that's easy to learn, yet powerful enough for novice programmers to develop a game. Some, like Blitz Basic, have been moderately successful. Yet all these languages fall down in several areas:

They are tied to a specific OS, or worse, a specific machine.

It's more difficult to do non-"game"-related tasks in them.

Past basic flow-control mechanisms, they don't offer their users much in
the way of "real world" programming experience.

Pygame is a lightweight wrapper around the Simple DirectMedia Layer(SDL) -- stay with me here! -- a cross-platform library for accessing low-level graphics programming routines available under Windows, Linux, Mac OS, and BSD (amongst others). Think "DirectX" and you'd be close enough, except the beauty of SDL is it's free, non-proprietary, and extremely powerful.

Pygame provides an abstraction of SDL, giving you access to CD devices, keyboards and joysticks, fine-grained control of palettes and hardware-accelerated graphics primitives and, of course, the "mixer" module, allowing you to play anything from MP3s to WAV samples. Pygame contains everything you need to create a computer game.