Voodudes

 

Summary

Voodudes is a third-person action game where you take control of Virgil, a voodoo doll on a quest to save the world of the living. The game takes place in New Orleans, the birthplace of voodoo and home to an evil voodoo sorcerer named Baron Samedi. Virgil must use all the voodoo powers at his disposal to defeat the Baron and his minions, free the enslaved spirits of the dead, and restore balance to the world of voodoo.

One of our goals was to create a world that would be immediately recognizable.


Game Specifics

  • My Position: Game Designer
  • Engine: UDK
  • Team Size: 15 (5 designers, 5 artists, 4 programmers, and 1 producer)
  • Dev Time: 5 months (1 month pre-production)

My Contributions

  • Came up with the initial game concept, which was ultimately voted to be one of 3 capstone games at the Guildhall
  • Established 7 pillars of the game and used them to maintain a coordinated vision among the team
  • Created 2 unique levels: the Tutorial and the Shadow World
  • Scripted an entire boss encounter, a new attack for a separate boss, an interactive tutorial system, and several in-game machinima
  • Designed and balanced the combat systems, including 6 player abilities, 8 enemy types, and the camera/lock-on functionality
  • Crafted the narrative of the game by writing the script, creating the four story cinematics, and coaching the narrator’s voice actor
  • Coordinated with designers, artists, programmers, producers, sound designers, and voice actors to create a unified and fun game

7 C’s of Voodudes

When we finally got the team all assigned and together, one of the first things I did was sit down and think on what the pillars of design would be for Voodudes.  What would be the core elements and principles that would guide the development process to completion?  I cam up with seven, and I made them all start with the letter C because of my obsession with alliteration.

  1. Complete: Do nothing unless it can be completed to the standard of quality the team expects
  2. Customization: Players should feel invested in their characters, and developers should feel invested in their game
  3. Character: Every element of the game should be instantly recognizable; everything must be at least two of these:
    1. Cute
    2. Comic
    3. Creepy
  4. Combat: Every ability and mechanic should make the player feel powerful
  5. Captivating: The world and its encounters should feel dynamic and alive
  6. Consistent: Ground everything in the theme and world of voodoo
  7. Classy: Every element of the game should be elegant (i.e., reusable and scalable)

Me (on the right) and the producer talk about how we can better embody the cute, comic, and creepy mentality.  We collectively decide it’s through matching plaid shirts.

Communication Among Disciplines

I believe one of the biggest roles of a game designer is to be the team’s best communicator.  I worked to embody that ideal throughout the development process by deciding, recording, and distributing key information early and often.

Two examples of this include:

  • While coming up with the combat abilities, I outlined every default property I would like to have easy access to.  This minimized rework for the programmers and allowed us to reuse the code to make interesting new abilities by changing only simple properties.
  • When the designers were concepting out their levels, I created a simplified Micro LDD template so they could have a forum to quickly communicate their visual ideas and asset requests to the artists.

Everyone might look happy sorting out the details of a new programming component, but it’s only because I threatened to take away their coffee if they didn’t smile for the picture.

Tutorial

The initial starting area for the player is completely devoid of enemies.  This gives players a chance to get used to the controls before they encounter their first enemy a little later in the tutorial.  Once players eventually encounter enemies, they learn all of the basic elements of combat by playing through sections that introduce mechanics and enemy types at a gradual pace:

  • 1st Encounter: Player fights a single melee enemy and then two melee enemies to learn the two equipped abilities
  • 2nd Encounter: Player fights two melee enemies and a ranged enemy; player must lock on to an enemy to progress
  • 3rd Encounter: Player fights two ranged enemies; player must dodge to progress
  • Final Encounter (Boss): Player fights ranged boss with a pair of melee enemies spawning occasionally; boss’s attacks emphasize the lock on and dodge mechanics

Voodoo dolls run about, argue, and lay around in the starting area. This helps set the peaceful scene and sets the light-hearted, yet creepy tone for the game.

Later in the tutorial, the player sees scenes of destruction like this knocked over statue and wrecked carriages, two details that foreshadow the boss in the first full level.

Shadow World

This level is a circular arena where players fight the final boss of the game, Baron Samedi.  Because it’s in the world of the dead, this level is unlike every other in look and feel.  I created more than a dozen new materials from existing ones to achieve a desaturated look with sickly green highlights.  I also scripted the enemies on top of the columns to randomly choose among several different taunts during the fight.

The taunting enemies on the columns, rotating glyphs on the floor, and wandering chicken in the graveyard makes the level feel dynamic and alive (or … dead, I suppose).

The graveyard is host to dozens of levitating candles and hundreds of graves–all standing before the door to the worlds beyond.

Chicken Bombing Run

Originally, the final boss fight was going to be a giant skeletal chicken with a top hat and monocle.  We had to trim down the fight because of time constraints, but I kept the spirit of the first concept alive by creating a custom attack for the final boss where he summoned a giant chicken that dropped a trail of explosion chicken bones.

I set the chicken skeletal mesh to fly in a criss-cross pattern over the boss arena several times. By creating events at key points in the flight pattern, I was able to trigger sound cues and attacks at the appropriate times.

This center bit of scripting controls all of the ancillary effects of the chicken run (e.g., sound cues and particles). One of the interesting bits is the toggling on and off of a green fire particle at the start and end point of the chicken’s attack–providing important telegraphs to players.

Because the dummy fire can only be trigger once every so often (and only with separate nodes), I had to create several instances of the attack firing. Once the chicken fires the attack three times, the attack goes into its cooldown phase.

Hub Boss

Because we were pressed for time before alpha, I opted to script the entirety of the hub boss to free up some time for the programmers.  In addition to creating new weapon and enemy classes in UnrealScript, I scripted the actual boss fight that constitutes the end of the tutorial.

The first boss of the game utilizes one of the custom ranged abilities I created for him.  I based the attack off the standard ranged attack, but I adjusted the spawn position of the bone needles and the attack animation (in addition to other obvious changes like velocity, damage, range, etc.).

The set up and death conditions for the boss fight contains an interesting element: a node that changes the material fresnel (yellow to red) on the boss to indicate how close it is to death.  I found this to be less intrusive and more cost-effective than a unique health bar, and the rest of the team adopted this method.

The boss has two distinct states: during the first he uses the standard ranged AI for his enhanced range attack, and during the second he disappears while a circle of bone needles appear around the area and shoot toward the player.  The boss then teleports back to one of three random places in the area.

Interactive Tutorial

Although I created the tutorial to be a logical progression of the game’s core mechanics, some player’s didn’t remember the lock on and dodge mechanics because they didn’t necessarily have to use them against such simple enemies.  To give the player hands-on experience with each mechanic, I created a system where players use each mechanic in different situations to progress through the tutorial.

I used everything from visual indicators to audio cues to text on the screen to communicate the mechanics of the tutorial.

The core element of the script is the gate (located at the bottom right) that opens when the player enters the appropriate tutorial area and activates when the player presses the appropriate button.

Player Abilities

To satisfy the demands of both the Customization and Combat pillars (see the Game Design tab for more info), we designed the abilities to allow players to play whatever way they wanted and still feel powerful.  To that end, we balanced the abilities not only according to their core functionality, but also according to their range and number of potential targets.  To create a proper balance between the danger of melee combat vs. the relative safety of kiting, we added a life leech to the two core melee abilities (Bear Hands and Spirit Rush).

  • Needle Barrage: Summons a rapid-fire shower of needles that shoot forward
  • Bear Hands: Use a three-hit combo to strike enemies with massive bear hands that steal health
  • Spirit Rush: Dash forward to cause area damage and steal health
  • Feeding Frenzy: Chomping alligator skulls emerge outward from the ground in a cone
  • Tarot Reading: Tarot cards  spin around Virgil, reducing incoming damage and hurting enemies
  • Bone Chicken: Toss a grenade-like chicken that sucks in nearby enemies and explodes

Every quadrant and axis is as balanced as possible with six abilities.  The only two that lack perfect balance are close-ranged single target (less important when the average mob size is 3-5) and long-ranged multiple target (which has the propensity to be over-powered).

Enemies

To go along with the pillar of elegance (see the Game Design tab for more info), we based nearly all of the enemies off of the existing player abilities.  By adjusting the different variables of the attacks (speed, damage, range, etc.) and creating new particles and meshes for the attacks, we were able to differentiate these from the player attacks in a way that made them seem like completely new abilities.

Using the base code for the bear hands ability, the Creep attacks with a short-range melee attack. They almost always attack in groups because of how weak they are.

The Witch Doctor uses a variation on the pin needles attack, and it is the typical ranged foe. Both this enemy and the creep appear in every level to fill out the various mobs.

The Firemouth is the one enemy that uses a completely custom attack: when it moves within range of the player, it stands still and lets out a cone of fire. It acts as a sort of mobile turret that dynamically creates hazardous areas.

The Bomber utilizes the same functionality as the bone chicken, but it uses it on itself to suck in enemies and self-destruct. Their high damage and short fuse adds a unique and frantic dynamic to encounters.

Gargantuans use the same attack as the Creeps, although the area of effect, damage, and knockback effect are much larger. They have a custom pin cushion mesh attached to their hands, and they are also the largest standard enemy in the game. All of these attributes point to an enemy with high damage and high health.

The Conjurers use a modified version of the player’s Feeding Frenzy. They complement the Witch Doctors by providing slower ranged support across a wider area.

Although the Berserkers use an attack that is similar to the player’s Spirit Rush, seeing them rush toward Virgil is still a terrifying experience. Sound effects and a wind-up animation forecast his attack, but players who fail to dodge are punished with a momentary stun effect.

Fortune Tellers have the lowest amount of health, but they are invulnerable when their cards are up. This creates an interesting dynamic where players must dodge and flee one moment and aggressively pursue the next.

Resume/Contact