Design Portfolio

Table of Contents

…………………………………………………………………………………………………………………………………

PROCEDURAL & SYSTEMS DESIGN

A blue robot sits on a table in a dining room. The robot is Moxie and it beckons the viewr in with a welcoming gesture and a friendly animated face
Procedural Guided Meditation

ShippedMoxie, Embodied Inc.

Designs for new authored missions or modules start as simple dialog scripts with flowcharts for more complex interactions. Authored content has the benefit of total control over the dialogue and vocal performance, with sound effects, images, music, and animations. It is time-consuming to create, and limited by how much time designers can spend anticipating what children might say in response to a prompt (we learned pretty quickly that children DO say the darndest things).

For generative modules, a proof-of-concept prompt shows the heart of an idea, and a luxury of generative content is that it is easy to stand an interaction up and see if it’s worth pursuing. These modules are more responsive by their nature, and more resilient to Automatic Speech Recognition (ASR) failures because they can take the context of the larger conversation into account.

The Meditation Journey module was one of these — a procedural guided meditation, development- and asset-light next to the authored missions, but rich in content and experience because it could grow and change with a user over repeated sessions instead of playing the same thing every time.

Moxie isn’t why — what a kid needed was always developmental and personal, not caused by a robot. But I remember watching a child who used Moxie go from being unable to sit still, needing to get up and run around to shake fidgets out, to sitting down and requesting meditations for himself, and doing them. The impact of that module was <3

…………………………………………………………………………………………………………………………………

Araucania Random Map

Shipped … Age of Empires III: The WarChiefs

Three screenshots of variations on the Araucania map for Age of Empires III: The War Chiefs. The variations depict arid desert, grasslands, and steppes.

Inspiration: Araucania is a small, central region of Chile. The map represents geographies up and down the coast of western South America, and it would have been appropriate to call it Chile, but Araucania tied it more closely to the Mapuche, a tribe that lived in southern and central Chile and who are featured on the map.

Gameplay Concept: the hook or concept for this map is random bonus resources. Similar to the original game’s map Carolina, but more so. The Araucania random map script can generate three distinct versions:

  • Northern — this version is gold-heavy and features desert textures.
  • Central — this version is food-heavy and features grassland textures.
  • Southern — this version is creep-heavy and features snowy textures.

Gameplay Implementation: Scripting using Ensemble’s proprietary .XS scripting language. Map layout and beautification (ship-quality arrangement of artist-created assets). Observing and responding to feedback.

…………………………………………………………………………………………………………………………………

ENCOUNTER DESIGN

Halo Wars — Mission 10: Homecoming

Shipped … Microsoft / Ensemble Studios

A screenshot of a level from Halo Wars. The perspective is very high and shows the whole map.

The Spirit of Fire has inadvertently triggered an ancient docking mechanism and is being drawn into the belly of an alien planet. Marines deployed to the surface will be abandoned to a gruesome fate if they aren’t rescued — and fast!

Gameplay Concept: Rescue the Marines before time runs out.

We already had a solid rescue mission earlier in the campaign, so this one needed a different treatment. This mission became a base-busting mission disguised as a rescue mission.

Three Marine Platoons have gotten as close to the evacuation site as they can, they are just on the edge of the map. Three enemy bases block their way to safety. Swarms of hostile bat creatures are keeping evacuation flights grounded. As each enemy base is destroyed, a scripted rescue flight picks the Marines up and ferries them back to the Spirit.

So things didn’t get stale, after the last enemy base is destroyed, massive swarms of the bat creatures converge on the area grounding all evacuation flights. The last Platoon converts to the Player’s control and has to be personally commanded to the extraction point.

A timer indicates how long the Player has before the Spirit of Fire is out of reach and the Marines are stranded. The timer can be extended by capturing pylons around the map.

My favorite piece of the script is the bit that juggles the detection and proper display of the Player’s progress rescuing the Marines. Because I allowed the Player to rescue the platoons (Alpha, Bravo and Charlie) in any order, the script has to know which of these three platoons is The Last Platoon to properly display objectives and track their progress towards the extraction point. It’s really not much more than swapping a bunch of variables at a specified point, but I was pleased with how seamless the effect is to the Player.

Trivia: This level featured prominently in a Zero Punctuation review about Halo Wars. Simultaneously a great and dubious honor. And a good story.

…………………………………………………………………………………………………………………………………

Halo Wars — Mission: Beachhead

Shipped … Microsoft / Ensemble Studios

A screenshot of a level from Halo Wars. The perspective is very high and shows the whole map.

The Spirit of Fire (your ship) has entered the Shield World. Meanwhile, the Covenant have uncovered a fleet of ancient Dreadnought ships that will spell annihilation for the human race!

Gameplay Concept: Establish ground control for UNSC forces.

My favorite piece of the script didn’t actually survive into the shipping version. Prior to the completion of the AI (which was coded and scripted by programmers), I made a rough pass at a script that identified Areas of Interest to the enemy AI and set those areas as targets for his attack groups. It was really cool to see the enemy AI shifting its focus based on the Player’s choices. When it came online, the programmers’ efforts were much more robust and tunable, but I was pretty proud of my temporary “AI” script none-the-less.

Map Layout: The map went through several iterations to get the layout right. The teleporters were more prevalent initially, but proved clunky to use and technically shaky. Relatively late the bridges were added that link the lower areas of the map together.

Trivia: This mission began life as ‘the one where you get to play with Covenant toys.’ The Player ransacked enemy bases and amassed a collection of Covenant units — even taking over a Covenant base. This was prior to the Spartan ability to ‘jack’ enemy units. It turned out that there were significant audio, art and UI challenges associated with UNSC control of Covenant buildings and units, and this pretty rapidly became ‘the one where you get to play with a Scarab,’ which I am totally fine with. Scarabs rock.

…………………………………………………………………………………………………………………………………

Wingleader

Teaching prototype, play it on itch.io

This project is a demonstration for my students of taking a tutorial (a flight sim) and mashing it up with another tutorial (meteor falling) to create something new. I found an excellent flight sim tutorial from Chris DeLeon and a meteor tutorial lost to time (with apologies to the creator) and created this.

My students are often not programmers and struggle and feel limited by their technical skills. This exercise is meant to demonstrate the value of play.

This project took parts of 2 days to implement and lots of playtest after that to fine tune the controls.

What is Thread? It’s an existential threat from Anne McCaffrey’s Dragonriders of Pern series. A book series that has had several games created for it, but NOTABLY NONE WITH DRAGONRIDING. Turns out chasing down sky parasites falling at terminal velocity through the atmosphere is challenging!

I thoroughly enjoyed making this prototype.

…………………………………………………………………………………………………………………………………

ABILITY & KIT DESIGN

Rock, Paper, Scissors, Party!

Unshipped … original design doc (abridged)

Overview

Rock, Paper, Scissors, Party! is a party game for up to 3 players with attractive graphics, funky music and gameplay mechanics that blend elements of arcade shooters like Geometry Wars and playground classics like Tag and Dodgeball.

There just aren’t enough good party games with gameplay challenging and fun enough that you’d also play it solo. Rock, Paper, Scissors, Party! is that game.

Design Goals

Goal 1: Make a downloadable, small, approachable, but intensely fun party game for all ages.

Goal 2: Take the familiar Rock, Paper, Scissors mechanic coupled with Arcade Shooter gameplay and set it in a funky 70’s environment with instrumental funk music and disco dance themes to art, gameplay and sound.

Gameplay

Rock, Paper, and Scissors Hunters — player-controlled unique, animating Rock, Paper, or Scissors. Players steer Hunters around the game screen to score points and tag out their target team’s Hunters and fodder (rock hunts scissors hunts paper hunts rock).

Game Modes modify a variety of mechanics from spawn patterns and locations of fodder, score foozle and powerup icons to victory conditions to the powers unleashed by collecting powerups — five in total, from *Solid Gold* (the standard mode) to *Dyn-a-mite!* (where a fourth, hostile “team” grows as other teams take damage) to *X-ray Boogie* (fodder disguised as identical icons until a Hunter gets close enough to identify them).

The design doc includes full numeric balancing data for every entity — acceleration, hit points, lunge modifiers, shield values — and entity-interaction tables covering every “what happens when X meets Y” case, down to what happens when Hunter Rock encounters fodder rock (they pass through each other) versus Hunter Rock encountering Hunter Paper (Hunter Rock disappears and reappears at the rock team spawn point, hitpoint bar decrements).

…………………………………………………………………………………………………………………………………

LEVEL DESIGN

SwiftHeart

Unshipped … design exercise, play it on itch.io

A screenshot of the video game level Swiftheart; a minimalist rocky and snowy landscape with a graceful bridge.

The Challenge: Swift Movement + Platforming + Light Narrative

Create a brisk Sonic-like level with double jump, leaning heavily on horizontal platforming, but including vertical elements, loops, branches, vistas, and a touch of narrative. In a week.

Development: I started with an entirely empty scene and the song Flim, by Aphex Twin. I’ve thought for a long time that it would make a great level soundtrack, and it fit my vision of a minimal, abstract world that is mostly serene but underscored with a driving energy.

The first thing to get right was controls. The running speed and magnitude of jumps would determine the size of the level and influence everything in subtle and non-subtle ways. It took three of my seven days to get this right, time well spent, because if the controls felt solid, that was a good base to build on. I used the Invector 3rd Person controller and modified it a lot — even consulting the creator for how to make it work well at higher speeds than it was designed for.

This squared away, the first thing I wanted to understand was just how big the terrain would need to be. I dropped in the song and hit the ground running — literally. If linear, the terrain would be HUGE. So, circling back through areas (loops and branches) was not only going to be important as a core element of the design challenge, but necessary to keep the level to a manageable size.

Narrative: I wanted just enough ‘why’ to hang the narrative on, and from brainstorming on the four exits, the idea of seasons presented itself. A world where magic crystals guard and guide the seasons sprang to life. They’re not at all okay, the crystals.

Gameplay Concept: Find the Spring Crystal and return it to the Temple of Seasons.

I am particularly proud of the ‘terrain system’ that I devised — a 10×10 cube with a 9×9 cube nested in it — that allowed me to quickly build and carve out semi-organic block-based areas linked by bridges and platforms.

Trivia: The final size of the world, including length and shape of the track, was determined by running at full sprint for the duration of the song ‘Flim’ by Aphex Twin from start to finish — knowing that a player would be unlikely to ever get through the level at that speed.

This was a design exercise, not a shipped title. I built it in a week as a design test. It got me a paid 3-day onsite interview with the studio that set the challenge.