Rage


Platform

360, PS3, PC

Published

Zenimax, 2011

Overview of Work

  • Game Design – Enemy design, combat design, enemy navigation system.
  • Level Design – Blockout, mission design, gameplay & scripting for two levels & five missions.
  • Art – Final geometry, UVs, first pass lighting, fx, and post processing for a few areas & props.
  • Code – Heavy use of DoomScript, an object oriented scripting language similar to C++ with inheritance and threading capabilities.

One of the main reasons I joined id was because I wanted to grow as a level artist. Some amazing environment artists worked for id with technical backgrounds for tools & scripts to expand Modo. Every chance I got I would shadow or learn from these artists. For the first few months I’d get in early every Friday and spend the morning learning modo & practicing. Some of those results were put to practice in a few areas in Rage, Rage DLC, my personal project TE120, and later for Doom.

Level Design Process

My ideal level creation process is best represented in the write-up for Doom.

Videos of Work

I implemented all gameplay & scripting on this level but I also worked with the lead AI programmer to help create the Jackals. They are a wild clan of savages with their own language surviving in the outlands of Rage.

On Rage we put a ton of effort into enemy hit reactions & enemy world navigation. This video is a great example.

For enemy world navigation designers could create links with special traversal animations like a wall climb, ledge jump, etc. We populated the world with hundreds of these traversals for multiple NPC types on the chance an NPC may use them during combat. In this map we had Jackals swinging across canyons and jumping from cliffs to engage the player.

Finally, we had dodge traversals. Given the right situation enemies would optionally dodge when charging toward the player and being targeted. In this video you can see Jackals jumping & kicking off walls when running toward the player.

Code Sample

During Rage when we setup horde combat scenarios which required a lot of tricks to make a limit of 6 AI feel like 30. For example, when a mutant was killed another one would spawn but only if you were looking in its general spawn direction. Below is code for a set of tools I wrote for the design team to make this task much easier:

spawnManager.cpp
spawnManager.ss

An ss file is like a header file, it is used to generate a header file.

Art Samples