The Rise and Fall of the Hobbyist Game Programmer
By James Hague
Now we come to the modern era, and I won't dodge the truth of the times: this is a tough environment for the game programmer, let alone the wannabe. It's tempting and easy to place blame with flippant remarks--"Windows sucks!" - but that doesn't address the fundamental difficulty facing modern programmers.
The difficulty is that *everything* has been abstracted and complicated, and is continually abstracted and complicated to the point where it's extremely tough to find a stable handhold. The Win32 (or MacOS) API requires numerous thick volumes of documentation for just the core functions. C++ requires more study than C, plus you have to know what features aren't implemented well on what compilers. Operating systems and major extensions are no longer released in a straightforward manner, but have service packs and public betas and developer preview releases. You can't assume a 16-bit frame buffer has a particular format; you have to write code to deal with all possible formats. Not only do the details of 3D APIs fill 600 page books, but they've spawned the party game "let's guess what the driver writer was thinking."
Professional game programming and hobbyist game programming have become widely separated. And yet people don't seem to realize this, or they seem unwilling to acknowledge it. The bitter battles on Usenet about the importance of C++ and other hot topics: those are the concerns of people who have to follow the accepted standards for professional programming in team environments. They have different concerns than the after-hours game designer. Some hobbyists don't want to admit they are hobbyists, they try to follow the professionals, and they are never heard from again. Oh, they'll write part of a hot 3D engine and get all the "in" opinions, but except in very rare cases you never see their name on a finished game. And that's too bad, because when you're working on your own you can be creative and different and do things according to your own vision.
That's the only reason for being a hobbyist in the first place.
The obvious response to all of this is to head for more pleasurable pastures. The late great Jim Nitchals, Apple II programmer extraordinaire, returned to his roots in the latter half 1990s teaching 6502 coding to the new generation of retro programmers. Artist and designer Maurice Molyneaux was creating art for a ColecoVision game--in 1998. Some people have jumped on the Linux train; they cover their ears and start loudly singing "I'm Too Sexy" whenever they bump into a Windows user. Most would-be game programmers simply tire of it all and find a new hobby (I've noticed the local open mike night is starting to feature songs of a slightly geeky nature...hmmm).
For those who decide to stick around, some contemplative, non-fanatically-tinged thought about approaches to software development are in order. Maybe getting down and dirty with Visual C++ isn't such a great way to spend summer evenings? Years of "assembly vs. high-level languages" debates have resulted in the assembly folks being pounded deep
into the cold ground, with the C and C++ programmers dancing overhead shouting "We were right!" Then after a short break they start beating up on the Visual BASIC users. Why? Is pleasantness of use such a bad thing?
Or what about Perl? It's one of the few languages that occasionally gets the word "fun" associated with it. Perl's strengths, combined with a couple of DLLs and a smokin' 266 MHz Pentium II that isn't even close to top of the line anymore, should be enough to write something better than one of those "worm gets longer" games. Right? Or Scheme. Or even C/C++ with a happy-go-lucky graphics library like Fastgraph; a library that's
been called slow as a dog for the last six or more years, even though it was used to write commercial games when a 486-66 was an unobtainable dream machine (the definition of "slow" keeps expanding). Actively seek out something that agrees with you, and use it as your sole outpost in the modern world of computing confusion.
Then stick it in an old shoebox with a masking tape label reading "My Sanity," and get back to work.
|Credits: Illustration © 1998 Mike Sanzone. The Rise and Fall of the Hobbyist Game Programmer is © 1998 James Hague. All other content is © 1998 loonyboi productions. Unauthorized reproduction is strictly prohibited, dangit.|