My First Programming Experience

I have been programming computer games for more than a quarter century.

After reading the diversity report from the IGDA, which concludes, among other things, that the average tenure in the game industry is only 5.4 years, I started to think back to my very first programming experience all those years ago. I dug out an old posting where I recalled the day that my career started. Forgive me while I reminisce…

On Friday, December 22, 1978, I met up with a friend, Harold Stewart, while visiting my father in East Lansing during Winter break. It had been only half year since I had moved to Houston, but there were changes in town. Harold took me to a new place called New Dimensions in Computing. There he introduced me to a friend of his, Rob Raisch.

The big selling point of the visit was “video games“, so Rob sat me down at an Exidy Sorceror where a game of Wizard’s Castle was in progress. In retrospect, given that I was already an expert in the (then very limited) area of video games, with a growing interest in Dungeons & Dragons, a text-based RPG in BASIC was probably the best possible introduction.

I was hooked by the concept of being able to play whenever I wanted, at a deliberate pace, without having to feed in quarters. The interaction was novel, and I could even play different games on the same machine!

Then it happened…

In the game, I walked “N” into a room with an angry monster. Without a chance to do anything but panic, it attacked, hit, and “You are dead.” Bummer. Rob heard my sigh and told me to hit the [Control] and [C] keys at the same time, and I followed his instructions. I thought I broke something, which I discovered I had.

“Type ‘LET H=100’. Good. Now hit [Enter]. OK. Type ‘CONTINUE’ and hit [Enter].”

I did as instructed and, lo and behold, my character was back to life. Not only back to life, but powerful. That is the way I felt, too. Not only could I play different games on one machine, at my leisure, but I was in control. My character could be immortal; I felt omnipotent.

Anyway, after some discussion, and more than a little coaxing from Rob, I decided to relinquish the current game. (Remember, the idea that one would actually quit a game in progress was new to me, being contrary to the idea of arcade video games.) He wanted to show me something even cooler, but not a game.

In the course of a few minutes, I learned about “NEW” and “RUN”, line numbers, variables, “FOR” loops, and the “GOTO” command. I was able to use earlier knowledge to get out of that early BASIC program everybody writes consisting of an infinite loop of “PRINT” with ones own name.

The seed was planted, and I realized that things were going to change. I returned the next day, met a college student who was trying to figure out why his program to distinguish among prime, abundant, deficient, and perfect numbers was not producing the correct results. Honestly, I just wanted him to finish so I could try this programming thing again.

After the student spent a few minutes explaining the concepts of perfect, abundant, and deficient numbers (primes I already knew), I looked through the program listing on the screen with him and spotted the error. Debugging on my second day, and helping a college student (while still only in 7th grade myself )… I was definitely hooked.

I had no real agenda when I returned to NDIC that Saturday afternoon other than to get my hands on the machine again. After helping to fix the number theory program, we started to make more changes, working together to try to discover patterns in the relationships of abundant numbers to primes, just because we could.

Alas, it took me three and a half years, and the proceeds from my first professional programming job, before I actually got a personal computer of my own, but I spent the intervening years begging and borrowing access whenever and wherever I could. When that failed, I actually wrote game programs, twenty or thirty pages long, in pencil on lined paper, to be typed in when I next got computer access. (I still have a few. )

Now, all these years later, I am still programming computer games. Most importantly, though, I still really enjoy what I do.

What Computer Games Cannot Do

Traditional board games will always have one advantage over computer versions.

I noticed an interesting news bit on Gamasutra this week. According to the story (third item), the publishers of Fritz 9, one of the stronger publicly available chess programs, has licensed a physics engine. Looking at the description on the main (European) ChessBase site, the program does indeed offer “physics on the board; pieces fall realistically”. Not only that, but this chess game also provides “3d stereo-surround sound in all boards”.

Computer versions of chess have been readily available basically since the advent of the personal computer, and they definitely have some advantages over OTB (Over The Board) play. Obviously, there is always somebody to play, and one can select the strength of the opponent, so it is easier to practice and gain experience. Better for me, nobody ridicules me when I lose (save Chess Maniac 5 Billion and One). More recent improvements include tutorials to help one learn the game and network play to provide human opponents and some of the social aspects of board games.

Nevertheless, what computer board games cannot do is provide the physical experience. There are tactile elements to playing a real board game, such as the heft of the pieces and kinetic sense of movement, as well as the sounds of placing a piece, transmitted not only through the air, but through ones body. I will be interested to see how Fritz 9 makes use of real physics (for resignation, I presume) and surround sound, but it is no substitute for the real thing, and likely adds very little to the cognitive aspects of the game. It probably will not be harmful, either, unless the required computer specifications are increased just for this gratuitous technology.

When you next have a chance, play a physical board game and experience the simple pleasure of that activity once again. No technology required.

Diversity Report

The results of a survey on diversity in the game industry have been released.

The International Game Developers Association (IGDA) has published a report entitled, “Game Developer Demographics: An Exploration of Workforce Diversity“, which analyzes a survey taken by 6437 self-described game developers. After filtering out those not in the industry and those from countries where English is not the primary language, the final sample size was 3128 surveys. The IGDA has made the report available on their Game Developer Demographics Report web page.

Here are a few interesting statistics:

USA represented 66% of the studied results, followed by Canada (18%), UK (12%), and Australia (4%).

Third-party developers are 43% of the industry, and when combined with freelancing (13%) and contracting/outsourcing (5%) make up a 61% majority of developers.

Programmers made up the largest single category of respondents (28.5%). After that, there was a statistical dead heat between design (16.1%) and visual arts (15.9%). I suspect that the number of designers is inflated in this survey.

The typical game developer is, unsurprisingly, a heterosexual white male in his early 30s with a college education and no disabilities. Each of the first three characteristics are overwhelmingly common in the industry: male (88.5%), white (83.3%), heterosexual (92.0%).

Only 0.96% of respondents identified themselves as transgender. This refutes the suggestion by a developer friend of mine that the game industry had an unusually high number of transgender individuals.

The average length of time in the game industry is only 5.4 years. Having worked on my first published retail game in 1988 (not counting earlier failures), I have been doing this more than 3 times as long as the average. The report concludes that “the industry’s wizened ‘graybeards’ are few in number.”

Of the 13% of disabled developers, 61% had either a mental (31%) or cognitive (30%) disability. Relatively few reported a physical disability with sight (9%), hearing (6%), or mobility (4%).

There is also a separate report with anonymous comments (identified generically by gender, age, disability, education, and location) supplied with survey responses. A quick scan of the early comments showed some hostility or trepidation at the concept of a diversity study conducted by the IGDA.

My personal opinion is that it is important to know our industry, and also to know our market. With such an overwhelming lack of diversity in the industry, it follows that a majority of games cater to a similar audience. In particular, if only 11.5% of game developers are female, and the average age is 31 years, large portions of the market tend to be given short shrift. With only 2.0% of the game industry being black, it is unfortunately easy to see why we were unable to place Black Thunder, a game based on an African-American superhero. (Instead, we get stereotyped crap like Superfly Johnson from Daikatana.)

How does the game industry, which cannot collectively think beyond licensed titles and sequels, expect to address this issue of diversity? I suspect the answer will again come from independent game developers, and not from the entrenched publishers. Of course, as soon as new markets are developed, the big business types will come sniffing around…

Game Competition Results

Future Play has posted the results of their game exhibition and competition.

As I had hoped, the Future Play web site now contains a news item with the results of the Future Play Game Exhibition and Competition. (Here is a direct link.) The award winners were all deserving, and I want to hand out a few unofficial honorable mentions:

SUDS, by JJ Chandler and Ethan Watrall, was a nicely polished game for a handheld device that made use of the stylus. There was not a “future” category in which it fit well, but it is an excellent example of simple and elegant game design. Putting myself in the position of somebody who had never really used a PocketPC before (which took no imagination), it served to get me used to the stylus in the same way that Solitaire and Reversi were included in Windows 3.0 to help users get comfortable with using a mouse.

Guardians of Kelthas, by Steve Cornett and a whole host of other developers at Indiana University and around the world, was a visually appealing implementation of an original card game, similar to Magic: The Gathering. Despite the familiar physical gameplay mechanic, this game makes use of the platform to extend rules into the virtual realm, where cards can change dynamically. The ability to actually complete a student game with more than 30 contributors is worth a mention all by itself. There is more information about the game at the Guardians of Kelthas web site.

Ballistic, by Scott Brodie and several other members of the Spartasoft group at Michigan State University, shows original gameplay based around a physics engine to create a unique game experience. Imagine Marble Madness in a constrained area, where one controls the world instead and lets gravity move the ball(s). Several of the games at Future Play will participate in the Independent Games Festival, and this one is expected to be part of the 2006 Student Showcase.

Congratulations to all the participants.

Game Design for Formula One

Here is a game developer’s perspective on Formula One qualifying.

In Mark LaBlanc‘s workshop on game design at the recent Future Play conference, he discussed a design methodology called MDA, which stands for Mechanics – Dynamics – Aesthetics. Briefly, this is a way of thinking about a game, where mechanics are (broadly speaking) the actual rules of the game as established by the designer, which result in the dynamics, which are the (often emergent) tactics and strategies used in playing the game, leading to the aesthetics, the (hopefully enjoyable) experience of the player.

While watching the final race of the Formula One season, the Grand Prix of China, last weekend, still in the afterglow of the conference, the commentators mentioned that the qualifying format was going to be changed, yet again, next year. The FIA, the governing body for F1, the designers if you will, are essentially doing what our industry calls game balancing, although they are doing it on a public stage with, literally, billions of viewers worldwide. I found myself almost thoughtlessly applying MDA design to this issue.

Formula One has a qualifying problem. About five years ago, they changed the format for qualifying, which determines the starting positions for each race. In the previous format, each car ran during a specified period of time, with (potentially) all of the other cars on track. The car with the fastest lap (lowest elapsed time) overall started in pole position, and the rest were arranged in descending speed order based on each car’s fastest lap. These were the mechanics of the system.

The dynamics that emerged from this qualifying format were that, because the track was dusty at the beginning of the session, lap times got quicker toward the end, and because cars with less fuel are lighter, they are faster. The strategy then became to run as close to the end of the session with as little fuel as possible. This resulted in a lengthy period of no action on the track, followed by a frenzy of cars, making it hard for drivers to get a clean lap without getting held up by other cars. Additionally, because most of the cars were on track at the end, the television coverage only focused on the faster cars.

Unlike traditional game design, where the audience is the player, in spectator sports such as Formula One, the audience is, well, the audience. Whether or not the players of the sport, the drivers in this case, enjoy it is secondary. The aesthetics that resulted from the old qualifying format was that spectators were bored for the first half of the qualifying session, after which the television viewers only got to see a few cars, while those attending a race in person saw lots of cars on track. The drivers often complained about not getting a clean lap, although they enjoyed going as quickly as possible on those occasions when it did happen. Because Formula One is a business, there is also the consideration that the sponsors, especially those on the slower cars, did not like that their brands did not get much air time during qualifying (or the race, for that matter).

Over the past few seasons, the organizers experimented with the mechanics of the format to change the dynamics and hopefully produce better aesthetics. Last year, the format consisted of a pre-qualifying session in which cars ran on track one at a time, on low fuel, to compete for a good qualifying position, toward the end of the session. The actual qualifying was run the same way, with only one car qualifying on track at a time, but this time the car had to have race fuel. No refueling was allowed before the race, so the cars had to “run heavy”.

The resulting dynamics were very different. There was always some action on track, and the bulk of the strategy was related to how much fuel was on board during the qualifying, effecting how soon the car would have to stop in the race. On the aesthetic end, every driver got a clean lap, albeit with a heavier car, but the qualifying session was long and somewhat boring. Additionally, spectators did not know which was really the fastest car, as a team could run light on fuel just for a good qualifying lap (but have to stop early in the race). The sponsors were initially happy, because every car got individual coverage for two laps, but when spectators got bored with the length of the process, television networks stopped covering pre-qualifying, cutting sponsor air time in half.

The year, the qualifying format was pretty similar, mostly due to inertia on the issues. The only change to mechanics was that, instead of a pre-qualifying session, the qualifying order was set based on the results of the last race. The change in dynamics was that a bad performance in one race (such as a car breaking down) tended toward a poor qualifying performance for the next race, compromising that one… a vicious cycle. The aesthetic problems were mostly unaddressed, except that drivers became even more frustrated when affected by unreliability.

So, taking the issues mentioned above, I would propose the following changes to the Formula One qualifying format for the 2006 season:

First, allow refueling before the race. Although the unknown fuel level in each car allowed for some strategy, it was at the expense of the spectators knowing which was actually the fastest car. In truth, some of us true fans appreciate the strategic elements, but the bulk of the audience is merely confused. (This is also covered by a game design principle: Design a game for the audience, not simply for yourself.)

Second, set the qualifying order based on the fastest lap time in practice. This would allow the qualifying to be based solely on performance at that particular track, without unduly punishing drivers who did poorly at the previous race (or new drivers who did not compete there). There are currently four (4) practice sessions before qualifying, two each on Friday and Saturday, so this would make them more meaningful, beyond mere preparation work.

Finally, add a short, 15-minute, pre-qualifying session (fifth practice) immediately before qualifying. This would be a last chance session for getting a good qualifying position, and there is not enough time to mess around waiting for other cars to clean the track.

With these three changes to the mechanics of the qualifying system, I would expect to change the dynamics significantly. The refueling rule would allow cars to run as fast as possible, rather than compromising qualifying speed for race strategy. Using combined practice times for qualifying order makes the practices more meaningful and gives each driver lots of opportunity for getting a clean lap. The new pre-qualifying should add a session in which a frenzy of cars are all on track together trying to make a final improvement to their positions.

This should greatly improve the aesthetics. Spectators would be treated to the excitement of lots of cars on track for pre-qualifying, as well as outright speed of the single-lap qualifying session. Television broadcasters would show both pre-qualifying (short and exciting) and final qualifying (fast and important), and the qualifying session would still allow the cameras to focus on the sponsors for each car. Of course, the drivers love to go fast in qualifying so they, too, would be happy.

Perhaps this attempt at a “best of both worlds” solution could have emergent dynamics that do not work as intended, but I think that it addresses the major concerns of the spectators, the participants, and the businessmen. In that, it is certainly better than what we have now.