The Gaining Voting Rights with the Least Amount of Code Award
Awarded by sol_hsa
on May 5, 2008
The Post-Graduate Dissertation on Games As Art Award
Awarded by GBGames
on April 23, 2008
I’ve always been interested in minimalism in other art forms. This of course, opens another can of worms: the great debate as to whether or not videogames are, or could be, art. I actually take a more of a conservative stance than most game developers in that I don’t think games are inherently art. Videogames are a medium, just like film, television, theatre, or music or painting. These forms of media can be used to create art, or entertainment, or advertising. And for the media that are generally regarded as art (painting, music, theatre) there are artists who constantly push the boundaries of the medium. They force people—artists, critics, and ordinary people—to ask questions. “Is this art?” “Can this really be considered music?” “What is the defining characteristics of theatre?” Some in particular do this by trying to create a piece that meets the smallest possible criteria of the definition of that art form.
Samuel Beckett’s play, Breath – 25 seconds long, contains no actors, no movement, other than the curtains, and the only sounds are two cries and breathing. But it takes place on a stage, it has a script, it contains stage-direction.
Napalm Death’s song, You Suffer – Regarded as the shortest song in existence at precisely 1.316 seconds long. But it still contains all the elements of any rock/metal song: guitar, bass, drums, vocals.
John Cage’s composition, 4’33” – A three-movement composition for any instrument (or combination of instruments), made entirely of silence. The argument being that music is composed of sound that is organized in some fashion. Whether or not silence can be considered sound is up for debate, but some people consider the ambient noise of the audience and the performance hall (or location, generally speaking) to be part of the piece. You can even buy sheet music for 4’33”. Does that make it a composition? Does that make it music?
Robert Rauschenberg’s White Paintings – Seven entirely blank white panels. It is still paint on canvas. Is it still art? I’ve seen it displayed in the San Francisco MoMA, so by definition, it must be high art. Some argue, just like with 4’33”, that the painting’s interaction with it’s environment—the lighting, the shadows cast on the canvas, the museum patrons staring quizzically at the empty space on the wall—are part of the piece itself.
One thing is for certain. If we cannot ask these pretentious questions about videogames, then how can we consider them art?
So what is the most basic definition we have for games? Generally, it is regarded that all games must have a goal. This does not mean that the game has to be “winnable”. Take Asteroids, for example. There is no way to win Asteroids, but the goal is to get the highest possible score.
As another example, SimCity does not have a specific goal. It has a lot of numbers that can increase and decrease, but it is ultimately up to the player to decide how they want to play and what they want to achieve. Because of this, SimCity’s designer, Will Wright, refers to it as a “toy” rather than a “game” because there are any number of ways to play with it. But it is still regularly regarded as one of the “best games of all time” by numerous critics. Does that not make it a game? Clearly, even the requirement of a goal is somewhat lenient. Is score purely a goal, or just a metric? If so, what does this say about games, like Asteroids, where scoring is the only goal? Is the goal of Asteroids to achieve the highest score, or merely to survive the constant onslaught of cosmic rocks? If the latter, does that mean the player always loses?
The second requirement of games is that they must have rules. I once read somewhere (can’t find the source off-hand) that game design is the process of adding rules to a system to make it less efficient. The classic example being that if a boxer’s goal is to get his opponent to lay on the mat for 10 seconds, the most efficient way of doing that would be to shoot the other boxer in the head. Thus rules are added to the game so that the boxer can only cause his opponent to fall by using a certain style of punches. Whether or not this is accurate description of game design, or merely a cute sound bite does not change the generally upheld conception that games are made out of rules.
Another requirement often cited is that games must have some form of player interaction. This could be as much as maintaining an entire fleet of spaceships in battle against another fleet, while trying to manage resource collection, empire expansion, and technology development, or as little as pressing a button to jump.
So, if games are defined as a goal and a set of rules with player interaction, what is the most basic, minimal implementation possible? For the sake of this contest, I’m going to limit this argument to “computer games”–that is, games that can be played on a computer.
Even the current version of my game has more than that. Since a game does not necessarily have to be winnable, or have an end-state, I can remove that part of the game, but I still need to have a goal. The current goal of the game is essentially to terminate it as fast as possible. That can still be the goal even if I take out the “game over” message and the ranking system (which take up the majority of the code). Alternately, I could make the goal to keep the game running as long as possible, similar to Asteroids, or Progress Quest. I don’t even need to keep a score inside my game as the operating system and the Process Manager already keep track of how long the game has been running.
Since the goal has changed, and therefore the rules have changed, I still need to communicate the new rules to the player somehow. My game has to have a name of some sort so to get to the most minimal state possible I’m going to make the game’s title the same as the full text of it’s instruction manual. How’s that for usability?
I still need to have player interaction, but does that mean my game has to accept input? Is the input that it takes to start the game and stop the game enough? If so, I can remove the input code as well.
So what is left? I’ve got a game, where the goal is to keep the game running as long as possible. The rules are… to keep the game running as long as possible? And the player interaction is to start and stop the game. I’d say that’s about as minimal a computer game as you can get.
Here’s the final tally:
Platform: Windows (Tested on XP, 2000. Probably works with all x86 processors Win95 and greater.)
Source: 2 lines, 76 bytes (including copyright notice comment)
Executable: 5,632 bytes. (Future plans: write it in native assembly code, Linux, Mac ports.)
3:15 PM 4/20/2008 – Next step: more optimizations.
Source Code: 44 lines, 1,065 bytes
Optimizations: Going to hold off on this one, since I’m likely to change the design.
Executable: 40,960 bytes
Optimizations: In my haste, I realized I’d posted the Debug version. Switching to Release and tweaking the project settings got me all the way down to 6,144 bytes. That’s an 85% improvement! Awesome!
When talking about videogame minimalism, one of my favorite examples is Wario Ware. Each of Wario Ware’s microgames (the meta-game is another issue in itself) gives a one-word instruction, and makes the player figure out the rules, mechanics, and goals from that instruction, and from the game itself (in around five seconds, no less). Nowadays, even the most complex games, built by teams of hundreds of developers, have very little in the way of prior instructions. This is mainly because players just want to jump into playing a game without reading about how the game is supposed to work. Most of the time, a player with some previous experience with games can experiment with different inputs, observe the feedback from those inputs, and infer the controls. By playing and watching the game for a few minutes a player can usually figure out the goals of the game. Players are basically doing a pattern-matching search over the game-element archetypes that they have already experienced. This is not to say that this process is inherent in a game’s design, however. There is often significant effort put into designing the game’s input and output in a such a way to hasten the player’s understanding of how to play the game.
The main point here, though, is that it is not required of a game to tell the player exactly how to play. The player is often left to themselves to figure out how a game works. Given that, I think I can safely remove about half of my game. The player does not need to be prompted, I can just have the game wait for their input, and from the response to their input, they can learn the rules.
Doing this let me cut out another 5 lines of code.
Here’s the new tally:
Executable: 6,144 bytes, surprisingly this isn’t any smaller. Crazy. Computers are indistinguishable from magic….
Source: 39 lines, 901 bytes
1:00 PM 4/20/2008 – Okay, six hours to go. Looking at my original design for Resident Evil FLT_MIN, it’s clear that I’m going to have to make a few changes. Obviously, to avoid copyright issues, I need to change the name. For now I’ll give it the working title “RE FLT_MIN”. Also, it seems like it would take only a few minutes to come up with a prototype using Flash. Unfortunately, I don’t know Flash. Plus, even though the design seems somewhat minimal, it can easily be made *more* minimal. First off, look at all those fancy graphics. Font rendering? What was I thinking?
2:20 PM 4/20/2008 – Alright, I’ve got the first version of the game up and running. I still need to do some debugging, and put it through some usability testing… maybe a focus group. I want to post a shot of the source code, but unfortunately it doesn’t all fit on a single page. I suppose at this stage, it wouldn’t be a bad idea to do some optimization.
2:25 PM 4/20/2008 – Was able to cut code down by removing some unnecessary #includes. Also, I think it’s bad style to have un-braced if statements, but doing so cut down a large amount of vertical space.
2:55 PM 4/20/2008 – Okay. First prototype version is ready to download and play.
Here is the entire source:
(cross-posting from my blog until I can figure out how to get syndication working.)
Okay, I’m registered. Now to start with some inspiration. Way back when Resident Evil 2 came out for the PS1, my friends and I loved it, and played it to death. There were two things that we were particularly fond of. First off, the voice “acting” was excellent. And by “excellent”, I mean perfect for the B-movie motif of a modern zombie movie (er… videogame with extensive cut scenes). The awkward pauses in dialog were further exacerbated by the long loading time for the PS1 to read the sound files off the disk. This, combined with the awkward hand-gesture animations made for some moments that would have made Ed Wood proud. For example the classic, “Stop!… don’t open… that door!” from from the first Resident Evil game. Or one of the initial exposition dialogs from the sequel:
About two months ago…there was this incident… involving zombies…
in a mansion… located in the outskirts of this city.
Chris… and the other STARS members discovered that…
(sinister voice) Umbrella…
was behind everything.
They risked their lives to reveal the truth.
But, no one… believed them.
Not long after that… (with emphasis) all this… started to happen.
But I digress… Our second favorite thing about the game was its constant confirmationitis.
“There is a key here, would you like to take it? (yes/no)”
“There is a lever here, would you like to use it? (yes/no)”
“There is a switch here, would you like to switch it? (yes/no)”
Based on this, we devised the obvious logical extension of the series. At the time, we called it “Resident Evil 3″, but actually “Resident Evil 0″ might have been more appropriate. Considering both those title have since been taken, and reconsidering our design of the game, I think this is probably the most apt title:
That screenshot is pretty much the entire extent of the game. Choosing “No” would send you to a Game Over screen. Choosing “Yes” would send you to an identical Game Over screen, which we called “the good ending”. Depending on how long you took to answer “Yes”, and how many times you had to switch the cursor between the two choices, the game awarded you a rank, from D to A. If you chose “Yes” really quickly… I’m talking within a matter of minutes, you’d attain the coveted ‘S’ rank. Achieving the S rank unlocked a bonus part of the game, which played exactly the same as the original, but the menu was blue instead of green. If you beat the “blue version” with an S rank, you unlock the “red version”, and so on…
2:10 AM 4/20/2008 – Read Seth Robinson’s blog and discovered Ludumdare competition was going on. The theme this year is “minimalism”. Perfect! I’ve had some ideas for games with that theme for a while now, and this is the perfect motivation. Contest started on Friday, and ends “today” at 7pm, so I’ve got some catching up to do.