I got sent down a path of nostalgic code review today. After spotting Wouldja Software’s RoboNuts, I couldn’t help but wonder if the source to my implementation of the same game from more than 10 years ago was still on my computer. I was beginning to think it was lost forever to some floppy disk backup at the bottom of some storage closet, but sure enough Spotlight found it!
“Super Robots” was the game I “got my feet wet” in Mac programming with. I had just gotten my PowerBook Duo 210, and coming from a UNIX background, was still really addicted to the libCurses based robots game. I was also really impressed with ResEdit and the ability to set menu colors, etc. I think I exploited every possible ugly UI feature in the design of this game. Wow. Embarrassing. It didn’t help matters that the Duo 210 was a monochrome (grayscale, actually) machine, so all of my graphics were sort of guesses at what might look good on a color screen. Oh yeah, and I’m not a designer. Clearly, localization was not a major consideration, as all of my instruction screens were PICT resources such as the following snapshot:
My coding conventions were still clearly suffering from UNIX culture.
/* robotMvGfx.c */ /* robot game movement and graphics functions */ /* Robots (C) 10/93 Daniel C. Jalkut */
Yeah, the file is called “robotMvGfx.c” – short, I presume, for “Robot Movement and Graphics.” I’m sort of baffled by this design, but looking closer at the source file it might better be classified as “almost the whole darned app in one source file.” In addition to code for loading and plotting the graphics (icon resources), there is logic for all game movement, for reading and writing the high scores, and for double buffering the game display into a GWorld before flushing to screen periodically.
I remember shortly after releasing Super Robots, getting pretty instantly pummeled by dissatisfied users. I had neglected to properly check Gestalt for systems incompatible with APIs I was using. I hadn’t added much flair to the original UNIX game. I was a crappy artist. Etc., etc. I begged users to send me some money if they liked the game. I think two people sent me $5 each.
Whatever. Two years later I was working on the Mac OS System File and having a grand old time. You don’t have to be perfect, or anything close to it, to be successful. Just be willing to learn from your mistakes and get better.