Game Programming in the 21st Century
By James Hague
The Fall of C and C++
Scripting languages have been interesting to watch in the last couple of years. First there was a rush to create new, little languages to deal with the growing complexity of game environments. Then came a stinging backlash, as it turned out to often be more trouble designing languages and writing and maintaining compilers and tools than just using C as a "scripting language" in the first place. Things have come full circle, and the benefits originally sought after have been lost. Bob the level designer turned scripting monkey now has to learn C.
At the same time, developers have to deal with things that the "write a Pac-Man clone, collect $200,000" programmers of times gone by didnít need to think about. Complicated tree structures. Pathfinding graphs. Messy linked lists that need to be built up as part of an intermediate step of an algorithm and then thrown away. Sure would be nice if some of the ease of those scripting languages could be used to help with rest of the game code.
Like a lot of other crusty ideas that seemed unusable fifteen or twenty years ago and then suddenly come to the forefront amid much publicity and smugness, thereís a ready-made solution for the troubles with scripting languages. Rather than writing the bulk of a game in something lower level, like C, and then soldering on some higher-level sugar at the end, write the entire gameómost of it anywayóin a higher-level language.
Andógreat grains!ówouldnít you know it? There are a whole heap of higher-level languages out there waiting to be chosen from: LISP, Scheme, Smalltalk, ML, Python, and lots of heavily wacked-out, trippy nonsense thatís been heavily researched for twenty years but hasnít gotten out of academia yet. The "címon, they arenít fast enough!" argument, at least regarding LISP, was put to rest as early as 1973 by Richard Fateman. Occasionally, non-mainstream languages glimmer in the game world. The MIT graduates at Naughty Dog are happy to point out that they used a custom LISP compiler for the gameplay related code of their three Crash Bandicoot games. Genius? Or a multimillion dollar fluke?
If nothing else, itís fun to write a quicksort in three lines of Oddball Language X, just to start an extended round of Programmer Defensiveness on a sunny afternoon. When the Java crusaders march over the hillside en masse, itís time to go home.
The Return of Home Computers
Despite the standard comedy club punchline about VCR programming incompetence, people like computers. Palm Pilots and PlayStations and old Super Nintendos are everywhere. Heck, you can rent SNES games right alongside Godzilla and annoying Hugh Grant flicks at almost any video store. What people hate are desktop PCs. CompareÖ
Credits: Illustration © 1999 Michael Krahulik. This article is © 1999 James Hague. All other content is © 1999 loonyboi productions. Unauthorized reproduction is strictly prohibited, so don't try it...or we'll peck your eyes out.