Firefall – PC
Firefall is a free2play MMOFPS set in a post-post-apocalyptic paradise where humanity uses crystite-powered battleframes to fend for survival as aliens attack their last haven. Firefall’s primary focus is Open World PvE, but also includes Arena PvP and 5-player instances.
At Red 5 responsibilities shift a lot, and I ended up touching quite a lot of systems. I really enjoy learning how things work, so this was a great opportunity to extend my expertise across code, systems design, and content creation.
Much of my work focused around procedural and dynamic methods of creating game content. Here are some examples:
- Procedural mineral placement for our mining mini-game
- UI elements themed as Augmented Reality displays for directing players to dynamic objectives
- A monster spawning system that selects which monster an encounter should spawn based on requested difficulty, combat role, and biome
- Tech to annotate dungeon spaces so ARES Mission dynamic encounters could make intelligent gameplay choices based on the dungeon layout
- An A.I. driven Activity Director which orchestrates player pacing and objectives
- Numerous open world combat encounters
At Red 5 we defined a dynamic event as: a gameplay event which
- Can happen in any location where the fiction of the event is valid
- Is shaped by the environment it happens in
- Shapes the environment around it as it plays out
Here’s an example of how these 3 rules might work: the Motorcycle Crash event happens anywhere players can drive 2-wheeled vehicles: generally anywhere on the ground, but not inside buildings (rule #1). If (and only if) it spawns along the coast, the pirate faction sails over to salvage the Motorcycle, which adds a time limit before the event fails (rule #2). If a player successfully salvages the motorcycle, vital reconnaissance is recovered, and the surrounding area becomes less likely to be attacked by Chosen Patrols (rule #3).
As I lead the creation of over 10 open world activities in Firefall I kept coming back to the question of how to deliver dynamic events without sacrificing content quality. By adding this degree of dynamism to the already uncertain nature of an open world MMO we had drastically reduced our ability to control when players engaged in various activities, which meant we had almost no control over pacing, content order, or teaching. Playtests and community feedback showed that these issues were significantly impacting player enjoyment and I believe that many past efforts at creating high quality procedural content failed because of similar issues.
To solve this problem we created several systems which allowed us to dynamically impose pacing, order and teaching moments into an individual player’s experience. A key part of that effort was our Activity Director, Otto. Otto is a suite of technologies on the client and server that allow individual game clients to customize how the game communicates with the player. Each player is given different objectives and directions in the open world. This meant that the arc of a “quest chain” essentially becomes the intelligent combination of several procedurally generated events.
Working on Firefall, I came to believe this approach to procedural pacing of dynamic events is going to be key in keeping up with continually rising demands for content in AAA games, and I’m proud to be on the forefront of its development.
Here’s a video where my team and I describe some of the dynamic events we developed:
As a Technical Designer, I also pulled double duty helping the tools team develop the technologies we needed to make Firefall great, as well as maintaining uptime and stability. Some of this work included:
- Player metrics collection and encounter instrumentation
- A Lua API for encounter creation
- VO management processes for writing, recording, and importing thousands of lines of dialog
- Techniques and tools for asynchronously communicating between independent dynamic events
- Code maintainer for 20+ open world dynamic events
- Lua library development for doors, towns, score keeping, encounter spawning, UI compatibility, and data storage
- Zero-downtime encounter patching of live servers
Firefall is built on a heavily modified version of Project Offset and most of Red 5’s tools are internally developed.
One of my favorite parts of working at Red 5 was being able to train and mentor other designers and employees. My very first assignment at Red 5 was to learn all the tools and create tutorials for future designers. I discovered that there was zero documentation available for any of the tools. Two years later, the last thing I did for Red 5 was to hand off my training binder full of an extensive curriculum and teaching notes.
While at Red 5 I trained or oversaw the 3-month training of 8 new designers, taught company wide classes on Firefall’s tools, and did culture and values evangelism throughout the company.