Portfolio of a Gameplay Engineer and Technical Designer

Ethan Kennerly

I process data in Python, interface designers in Excel, and artists in Flash.


Python server, ActionScript client
Hotel vs Gozilla
Hotel vs Gozilla is an animated adaptation of the ancient Chinese game of Go. I teach casual videogamers the rules and tactics of my favorite boardgame. This my personal experiment with several new game mechanics and UI:
  • Bonuses for combo moves.
  • Animations of risk and reward.
  • Animated groups and fights.
  • Single-player levels 1 to 30.
  • Multiplayer from 5x5 to 9x9.
You are free to copy and modify my Python server and ActionScript client code. You may not be free to copy files that are authored by others (the included decorator.py, GnuGo, pindent.py, PyAMF, sgflib.py, typelib.py, t.as) unless their licenses say you can. Download (4 MB).

C++ programming, project management
Four other students and myself programmed a procedurally-generated shooter that was inspired by Gyruss (1984). The art director programmed a tool to procedurally generate all the models and animation. We adhered to MVC (model-view-controller) framework. I programmed the abstract model, event scheduler, ship maneuvers, collision detection, and frame rate optimization. I pitched the concept and managed the team. Download the Windows game. Here is the event scheduler that I authored in C++ (header and source). 2007 Advanced Game at USC, taught by Victor Lacour (4 credits, one semester) and supplemented by students in a modeling and animation class.
Python programming, serious game
Runesinger (한글 히로)
As my MFA thesis at USC, I programmed and animated a proof of concept to practice speaking and spelling Korean. I programmed most of the game, a Python-OGRE toolkit, helper functions for animating bones, loading a dotscene, Newton physics, automated testing, and OpenAL sound playback. Advisors: Chris Swain, Paul DeMeo, Scott Lee. In SketchUp, I made the models, animated them in Maya, and exported them to OGRE dotscene. Runesinger was an advanced game at USC, and was presented at some educational game conferences (ISAGA, INTETAIN, GIC, TCETC). Runesinger received student honorable mention at IGF, and the post-mortem appears at GameCareerGuide.com. Download the toolkit software. Read more.

ActionScript programming, level design, graphic design
As a semester class at USC, two other students and I made this Flash game about saving chickens from a factory farm. In ActionScript 2, I programmed most of the artificial intelligence, loading a level from Flash CS3. I also drew the graphics and edited many of the levels. Two other students and I made the paper prototype. Intermediate game development taught by Tracy Fullerton and Peter Brinson. Exhibited at Games for Change. Play the Flash game.

Gameplay systems

Python scripting, mod, system design, serious game
Civilization IV: Quality of Life
Mod of the scoring system to reward making citizens happy and healthy. Employing test-driven development, I validated the formulae and functions by unit tests in the form of Python doctest examples. Employing literate programming, some the examples are embedded in the design document. My functions were informed by the metrics of medical ethics and population ethics. Download the Python source code or the system design chapter (PDF.). Read more. Directed research at USC advised by Peter Brinson (2 credits, one semester). Exhibited at Games for Change, Mediateca Arcadia, Logic and the Simulation of Interaction and Reasoning 2, 2009.

Social game, system design, scripting, MMORPG

Dark Ages: Online Roleplaying (어둠의 전술-미국)
In 1999, for the MMORPG Dark Ages (using Nexon's unstructured scripting language), I designed and scripted some of the players' favorite social systems:

  • Religion
    Players join and manage each of eight temples. Priests host mass (a multiplayer ceremony and a pacifist method to level up). Through worship and quests, a player gains an unknown number of faith points, to pray for a miracle, consecrate an item, or gain prestige. Religions cooperate and compete in a faction system that is diagrammed in the Dark Ages logo: an eight-pointed star.

  • Politics
    Elected players staff two villages, in offices of mayor, judge, lawmaker, and guard. Players write, publish, amend, and enforce their own laws. Players manage a town hall and court of law. Players promote and demote each other by an economy of secret clout points. Each citizen can secretly give clout points to candidates. Officials can trade or destroy each other's cloud points, in a player-versus-player system of voting, alliance, and intrigue.

  • Labor
    Each day that a player logs on, he gets labor points: to craft, quest, or trade with other players. This labor market stimulates cooperation, and balances the supply of quest items.

    I wrote about some of this experience at Gamasutra.com

  • Achievements
    I scripted the above systems, events, contests, and rare quests on top of a simple system of achievements. I suggested a data format, scripting hooks, and the wireframe of the character's public profile. Programmers implemented and other designers have since then improved the system. In 1999, I had not heard the term "achievements," so in Dark Ages, I called these achievements "Legends."

  • System design, author, illustrator
    Graph Theory for Designers (Charles River Media)
    The first article, "Games within Games," introduces graph theory and demonstrates how mechanics in any game can be modeled by a mathematical graph (A mathematical graph is basically a well-defined network). Then graphs are modeled for common activities in massively multiplayer games: hunting, gathering, missions, and spatial navigation. Several case studies are analyzed, in which graph theory is used to expose exploits and suggest improvements in Anarchy Online, Ultima Online, City of Heroes, and others.

    The second article, "Worlds within Worlds," extends graph theory to model the economy and community in a massively multiplayer game. The economy is modeled by graphs of transactions, and the community is modeled by graphs of chatting, team participation, friendship, guild membership, and faction relationships. Examples of economic and community design are given from several online games, such as Dark Ages, Final Fantasy XI, EverQuest, and World of Warcraft. Read more.

    System design, author
    Better Game Design through Data Mining (Gamasutra.com)
    Players spend millions of man-hours selecting optimum strategies in a massive multiplayer (MMO) game. They are getting the best return on investment (ROI) on your MMO game. Are you? Learn from analysis of logs and other traces of player behavior in the US version of Nexon's first to MMORPGs, The Kingdom of the Winds and Dark Ages. Read more at Gamasutra.com


    Single-player mission scripting
    Warhawk (PS3)
    For this multiplayer game on PS3, I collaborated on the design of infantry AI and ambient warfare. Part of a contracted team of scripters, we used Incognito's function-oriented scripting language to monitor triggers, coordinate events, firefights, and camera movement. See vidoes of this online tactical game at IGN or Gamespot. Thanks to the hard work of over sixty employees, Warhawk receives favorable reviews (84 on metacritic).

    Scripting, online

    Here are my favorite massively multiplayer role-playing game (MMORPG) events and missions that I scripted, and mapped in the 2D level editor.

    Dark Ages: Online Roleplaying

    Social game, scripting, system design
    Nexus: The Kingdom of the Winds (바람의 나라 - 미국)
    In 1998, using Nexon's unstructured scripting language, I programmed hosting of their first team versus team arena. I also scripted some of the bosses, levels, and quests.

    Nexus: The Kingdom of the Winds

    Amateur Screenwriter

    Here is a bit of how I adapt screenwriting to designing videogames. I am not a published screenwriter; instead, I use screenwriting to describe a videogame.

    Storyboard illustration, videogame screenplay
    Tree of Life
    Appears in the textbook chapter I authored: "Game Script and Storyboard Creation" (ITT Tech 2003). Accompanied by screenplay sample. Read more.

    I also authored and made some illustrations for the instructor's manual of a class called "Game Interface Design." Read more.

    Fan fiction, screenplay
    Head of State (Heroes fan fiction)
    As a teenager, I enjoyed the "What if" Marvel extrapolations to alternate futures of superheroes. So, my favorite episode of Heroes is season 1, episode 20, called "5 years gone." In it, someone special (wink wink) has become president. A lot happened in those five years into the future. In a screenwriting class, called Writing the One Hour drama (taught by Lance Gentile), a room of talented writers helped me tell a tale of what happened during those five years. Here is a fan fiction teleplay from the first season of Heroes, called: "Head of State"

    My first machinima (and second short movie), from concept to final version in 3 weeks. Inspired by a psychological article about a schizophrenic believing to be controlled by another being, I wrote and directed this short horror movie in The Sims 2. I directed voice actors, and spliced it together in FinalCut Pro, with touch-up animation in After Effects. Voices by Robert Babish and Christina Byron. Music from Graeme Revell (Red Planet). Made in the USC class, introduction to film production.
    Understanding the Ring
    Undergraduate article summarizing the influence of Tolkien and the political moral of the one ring. Read the article.

    Amateur artist

    Here is an amateur drawing, painting, photograph, and 3D model.

    For Whom the Sirens Scream
    Several shades of graphite pencil, drawn freehand from from montage of two photographs, using grid imaging. The image is based on the true story of a very eloquent yet unbalanced friend who should have been born during the Revolutionary period of the United States.

    Palace of Fine Arts
    Ink wash over light pencil sketch. I visited the rotunda at the Palace of Fine Arts in San Francisco at day and at night to create the upper and bottom halves of this illusion.

    Nuked Subway
    Before digital cameras, at a subway stop in Seoul, I took a (chemical) photograph on an inexpensive SLR camera. In the darkroom, I solarized the top half of the lights, to turn the undeveloped white highlights purple. This photograph won first place for Creative Effects at a Korean American friendship competition in photography, 1996.

    King's Dagger
    In LightWave, I modeled and textured this dagger. On the handle, I twisted and cloned a tube. On the petals, I warped and cloned a sphere. The inscription is greek (kallisti: to the fairest), inspired by account of the goddess in The Illuminatus Trilogy who throws a golden apple in the hall of the gods to stir up the Trojan War.

    About me



    Return to Fine Game Design

    Site (C) Ethan Kennerly