Projects PageThis portfolio is a sample of my game-related projects. I make some of my own games, create levels for commercial games, and do other projects like a crossword puzzle, a comic and a nifty tool for analyzing Starcraft 2 maps. For a writing sample, check out my essay explaining why I think board game design is a good influence on video game design. I have a lot of energy and enthusiasm for games that combined with a technical background makes me well-suited to a creative engineering position. If you think I might be a good fit for your team and you want more information, my current resume and contact information is on the right.
Tool: Starcraft 2 Map Analyzer
Multiplayer Maps for Existing Games
Warcraft III Melee Maps![]() The multiplayer side of Warcraft III broke new ground for RTSs. Neutral creeps are a resource for your offensive units to "gather." Armies teleport around the map, so attacking a base is usually a raze-one-building-and-split sort of effort. I like the feel of it, so here are some competitive multiplayer maps for the normal melee mode that I've tried to do something new with.
See a comparison to Blizzard ladder maps.
Counter-Strike: Source Map:
|
Halo 3 Comic - Almost Steppin'A few months after the release of Halo 3 I realized I was close to collecting every achievement for it, and I spent an agonizing number of multiplayer matches trying to get "Steppin' Razor" which is a triple kill with the energy sword. Bungie apparently heard the community's frustration on this one, and over the special Halloween weekend playlists included a zombie mode where all zombies carried the energy sword. It still didn't happen for me. Then one day I had a spectacular swords-only match where a number of interesting events occurred, like an unintentional 'nade jump, an unusually offensive use of the regenerator, and of course, several near-gets of Steppin' Razor. It was the early days of achievements for me and I got to thinking about why I like collecting them and when it stops being fun. So I used the Halo 3 film feature to grab shots from that memorable match and put a comic together about my thoughts on achievements. The comic is entitled Almost Steppin' which you can read in full size (800x1200), half size (400x600), or download it as a PDF (5.3MB). If you enjoy the comic, go to my Halo 3 file share at bungie.net to download the multiplayer game that is the source of the content. None of the action depicted in the comic was staged, and just about all the good stuff happens in the first three minutes. |
|
The following are samples of code and scripts I have written. I take
pride in writing clear, clean code that I will be able to understand months
or even years later.
This Java class analyzes a program in the compiler's internal representation
in preparation for method-level parallelization (MLP). It makes several passes
over the code, where each pass is generally organized as a method that flows forward
or backwards over the control flow, and a second method that takes action depending on
the node type, such as an assignment statement.
Someone asked me for help in designing a word puzzle: given an open-source word
and phrase database for the English language, what 12-15 letter entries can have
5 letters from the middle removed and the leftover letters form another entry?
First I sorted the entries in the database, then wrote
this C/C++ program to find entries of the appropriate length and use a binary search
to see if 5 letters taken out form another valid entry.
This script is a plug-in for the GIMP that creates a hex grid path which can then
be stroked with whatever brush is needed. I was tired of repeating the process of calculating a
regular hexagon in 2d coordinates, so the script has really saved me some time.
I created a card game about championship boxing that includes nine different boxers, categorized by boxing style and each with a unique special action. I wrote this simulator to play many thousands of repetitions of the game in a round-robin fashion, using an AI that makes legal moves and only rudimentary strategy. The purpose of it is to expose any glaring imbalances in the fighter set.
After designing board games and video games for some time I've come to the conclusion that good board game design informs good video game design. The short explanation is that a board game experience has more deal-breaking design constraints. There can't be too many rules, or too many numbers for players to track or too many game pieces to update, nor can one sitting take too long. When a board game violates any of these maxims players quickly drop the game for good. There are many other facets to a good game's design that video games and board games share, but board game designers must take extra care to pare down to what is most necessary and effective because players, not a CPU, have to conduct the experience.
An analogy would be how good sketching informs good painting. Sketching in pencil has less degrees of freedom than painting, e.g. lack of color. However, an artist can refine shading techniques and experiment with monochromatic images while sketching and then apply those valuable lessons to the more vibrant realm of painting. Similarly, I offer three concrete examples of how principles drawn from the extra constraints of board game design can inform good video game design.
A common theme in board game design is to include a reference card for remembering rules, or to print action-reminder symbols on the board or playing cards. There is no computer to enforce board game rules; players may intentionally or accidentally make invalid moves if the rules are not clear to all players at all times. If players read the rules once and encounter effective reminders as they play then confusion and intentional or accidental invalid moves are minimized. It takes some clever thinking and many design iterations to craft a set of effective rule reminders, but it can make all the difference in getting a complete group of new players to understand and enjoy a board game together.
The idea of crafting rule reminders is clearly applicable to video game design. Video games are able to strictly enforce rules so that players cannot play invalidly, but that doesn't mean the experience will be fun--every video game player has experienced frustration when a game won't let them do something they perceive to be legal. Rather than learn this lesson the hard way, a video game design is better conceived by imagining, like a board game, that the player will likely try invalid actions constantly. How do you communicate the rules and remind the player of them during play? By considering this perspective during design a video game will evolve into a better experience.
The effort of designing a board game without simply heaping on complexity is often thankless. It is exactly like an audio engineer mixing sound for a movie; a well-mixed audio track sounds completely natural and goes unnoticed as the audience concentrates on absorbing the movie's content. But a bad sound mix is noticeably distracting. Likewise, a game with unnecessary complexity can confuse or tire players. A simple game draws players in easily, and if it also has depth they will stick with it.
The principle of depth without complexity applies to all games, and to video games in particular. Consider this: making a board game more and more complex puts immediate burdens on the players like having to remember 200 pages of rules. A board game designer usually gets instant feedback from players when added complexity is no longer improving the game experience.
With video games this feedback is harder to extract. The processor can do computations for the player, menus and information displays can be constructed to appear contextually; in short, unnecessary complexity in a video game can be mitigated with the power of interactivity, even though the fundamental design is not getting better.
A common example of unnecessary complexity in video games are the statistics of characters in a traditional role-playing game (RPG). RPGs typically feature eight or more characters that the player can assemble into an adventuring party, and each character is scored on various scales: intelligence, strength, magical power, etc. The unnecessary aspect of these designs is that the absolute stat values are unimportant. Does it matter that the level 4 knight has 31 strength and the level 4 mage has 12 strength? Not really, the numbers are arbitrary. What matters is that the knight always has more strength than the same level mage does, and if a weapon improved by strength is discovered by the player, it will be most effectively wielded by the knight.
So how could RPG stat design be improved? If an RPG were converted into a one-sitting board game, asking players to keep changing six or eight stats for each character at every level would be cumbersome. How about creating a reference card with a row for each stat, and a graphical icon of the characters appears in their relative ordering by that stat? So if we look at the row for strength we see a picture of the mage at the low end and a picture of the knight at the high end. There are no numbers and no calculations. We still retain this idea that there are several facets by which a character is measured, but we eliminate the unnecessary complexity of tracking details that are too fine to be of use. It is tempting to add all sorts of complex systems behind the scenes of a video game. But--a designer should ask herself if simply reducing the complexity will result in a more streamlined but equally deep experience.
Good balance in video games can be improved by balancing the "board game version" first.
Reflexes are usually irrelevant or much less emphasized in board games than in video games. Many board games, then, offer a slower, more deliberate thinking experience. With this difference in mind, let's suppose we take a fighting game like Street Fighter and make a board game out of it. Conceptually, it is like accelerating the players' reflexes to the absolute max, where they are able to block or dodge every straight-forward strike. In a board game like this, players must out-think opponents, instead of out-twitch and out-think.
To successfully balance this fighting board game each fighter must have a move set that allows for a variety of strategic options against every other fighter. If we analyze the move set and discover that Guile's moves allow an undefendable sequence when playing against E. Honda, then the move sets must be altered. This is an easier task with a board game than in a video game with reflexes in the mix.
Of course, video fighting games combine the strategy of out-thinking the opponent with reflex skills required to execute moves. I contend it is a mistake to start a design-implement-test cycle for a video fighting game without considering the "board game version" first, where every player has limitless reflex. If history teaches us anything, some players will overcome almost any reflex challenge to achieve undefendable move sequences or other game-breaking effects. Therefore, imagining the design of a video game as a board game first can provide a balanced foundation to build reflex-based elements upon. For example, video fighting games often feature stronger characters that require more difficult move execution--in this case we want to be certain that players who master such a character (i.e. become a player in the "board game version" with practically limitless reflex) cannot find literally unbeatable move sequences.
Video games, in comparison to board games, have an almost infinite design space. There are so many single- and multiplayer experiences that could never work as a board game. However, the principles that make a board game good can help zero-in on the best designs in the vast space of possible video games.