Project Oscar was a tactical brawler reminiscent of a MOBA. The client
had soft-launched a real-time tactics project and found it was not
meeting its financial potential. Demiurge was tasked with taking over
the project and making it more profitable.
My work on the project focused largely on using Unreal Blueprint to
stand up potential features in order quickly decide whether they were
worth pursuing further.
The first easy win that we wanted to pursue was playing with map size
and layout. Unfortunately, most of the game's systems assumed that
levels would be User-Generated, and built within a strict ruleset.
Efforts to try new level layouts required saving and retrieving data on
some external server. Our rapid prototyping phase was not as rapid as we
needed it to be.
After a few sprints of slow progress, I pitched the idea of spinning off
a small prototyping strike team. This strike team would take some time
experimenting with new moment-to-moment gameplay mechanics that might
keep players engaged.
This is the result of that
Using Unreal Blueprint, we explored how we might encourage players to
leverage different aspects of the environment in order to gain an
advantage over their enemies.
Our first pass involved tall-grass volumes that players could hide in in
order to toggle their visibility to the enemy. This was fine, but made
for very obvious jack-in-the-box locations.
The stealth element really began to shine when we gave players players
an opportunity to be more expressive with their sneaking. We allowed
them to hide themselves against low-cover and behind corners in order to
toggle their visibility from opponents on the opposite side of their
cover. This allowed them to stay hidden as they moved and pick the
angles that would protect them from damage.
I was able to quickly whip up a bunch of new characters for the
aforementioned MOBA by quickly scripting new abilities for them using
Unreal Blueprint. The modular, component-based nature of their
construction made it easy to try out new kits that recombined features
from other characters. For example, we were quickly able to throw
together a burst-fire cone-damage sword attack by using components from
our brawler and SMG characters.
Project Foxtrot was a music game that helped users create and share
user-generated content.
Most of the work that I did involved the around-game menus and
play-session flow. I focused my efforts on developing workflows and
assets that made the screen-building process faster and less
error-prone.
I wanted to try to consolidate the behaviors of common input actions
across multiple screens. I implemented a system that utilized an
abstracted layer of input assets that defined common behaviors for
actions such as "Delete List Item". These assets helped a screen know
which input events to listen for, and how to react to these changes in
input state. In the "Delete List Item" example, the screens would know
to use the appropriate glyph on each screen, and would always trigger on
the appropriate input state change.
I wanted to reduce the amount of conditional checking that needed to be
made during each input event. For example, if a screen featured multiple
lists that could be navigated, I didn't want to have to check which list
was highlighted when deciding which item to activate. Checking at the
time of input not only required a great deal of corner-cases, but it
also required any new scripters to have complete knowledge of what
states they might need to check for.
To get around this, I developed a "nested input context stack". For
example, in a screen with multiple lists, each list would be its own
input context that could be nested within the context of the screen as a
whole. When the list was highlighted, it would add itself to the stack
and vice versa. Furthermore, when a popup was placed on the stack and
blocked input from the context of the screen below, it would also block
input to the list nested within the screen.
We wanted to make it easier to consistently stylize widgets used in
various screns. For example, when an artists placed a text box, we didn't
want them to have to copy-paste all of the settings from text field to
text field. To avoid this problem, we created a "stylized text" widget
blueprint upon which an author could choose from a set of artist-defined
"text style" data assets. When the author chose a style, the properties
defined in the data asset were automatically applied to the widgets
within.
When the player visited the vendor, we showed them the Shop Screen. It
allowed the player to purchase and upgrade gear for their character.
Building the screen was a fun exercise in positioning panels in a way that
was easy to navigate for the player, but also immersed the player in the
space.
Ratchet & Clank 2016 was a remake of Insomniac's classic PS2
third-person shooter/platformer.
Most of my time on the project was spent on the card collection screen.
It was a fun opportunity to work with Flash’s 3D functionality.
Sunset Overdrive was a third-person shooter/platformer with an
irreverant tone.
Most of the work I did on this project was UI scripting. As data was
passed into the screen, I would send it to the appropriate fields.
Bug Hunt is a wave-based, co-op PvE mode released for Aliens: Colonial
Marines. By the time I was brought onto the project, most of the level
layout was nearing completion. Most of the work I did involved scripting
enemy wave composition in the map “Tribute”. When the engineers were
swamped, I used Excel to smooth out some of the edges in the scripting
process to improve the workflow for the design team.
I worked as a designer on the team that put together Mass Effect's
"Pinnacle Station" DLC. The project provided a bunch of awesome
opportunities to wrap my head around the Unreal's Kismet scripting system.
Whipping up prototypes for each game mode ended up being a total blast. I
also managed to rig up much of the scoreboard system using kismet. It was
cool getting to kick around in BioWare's conversation tools, which I used
to set up the mission selection conversation.
The level design work that I did on Shoot Many Robots was primarily
focused on the survival missions. These missions were wave-based, PvE
arena battles for a side-scrolling shoot-em-up. I started each level with
a graybox level. On each level I focused on the expected theme for the
paths that players would be taking throughout the space. For example, in
some levels they would be following a shallow up-and-down pattern. In
others, they would be diving into deep trenches and then battling their
way back up.
Fuser took the mashup-making magic of Dropmix and brought it to
consoles, enabling players to make and share their mixes.
Most of my work involved requesting data from code and then routing the
data that was returned to the the appropriate fields on the screen.
The Crate Screen made good use of a lot of the reusable widget kit that we
built up for the screens in Fuser. A main frame widget had a space for a
screen title
The main menu was a great example of our live data-fetching work. When
players opened the menu, the game would ask the server for any promotions
and featured mixes which could be displayed once the information was
received. The art team was critical in making sure we were accounting for
all of the different states that a panel's skeleton would require and they
came up with a great visual language for each of those states. These
states included things like "fetching data", "fetch failed" and "no data
found".
For some reason, finding good ways to organize settings data and widgets
is super satisfying for me. Each of the widget blueprints just treats its
current value like a number, and when that number changes, we adjust the
appropriate settings accordingly.
Feral Rites was a brawler built for the Oculus Rift.
Most of my efforts were focused on prototyping 3D layouts and routing
screen data into the appropriate fields.
The Shop Screen that I helped build on Feral Rites. The panels are all
angled toward the player, similar to the way one might rotate their
screens in a multi-monitor setup. I did the majority of the scripting on
this screen. I also built the 3D model that the menu was projected on. I
laid out the panels in Flash to work as a UV map for the menu mesh.
An additional confirmation panel that pops up when you want to buy
something at The Shop Screen. ActionScript: Me, until I left Insomniac.
Wrapped up by Insomniac East, I believe. / Code Hooks: Insomniac UI
Engineers / Art and UX: Insomniac UI Art Team
The Holocard collection was feature that rewarded players for exploring
the world of Ratchet & Clank. By collecting complete sets of holocards,
players were able to unlock bonuses for their characters and weapons.
The card collection screen allowed players to view their progress on
their collection and the effects of completed card sets.
In order avoid frame-hitching while loading textures, we played a
vector-based "hologram resolving" animation each time the player
scrolled to a new card.
The Challenge Browser Screen combined some of the most complicated screen
elements I worked on. The map needed to pan to the correct location, and
the leaderboards needed to talk to the code to coordinate retrieval of the
correct leaderboard data.
The Mission Results Screen. Mostly a matter of routing data passed in from
code into the appropriate UI elements. Images were loaded and placed in
the proper locations.
Two-Hat Jack is a shop where the player can purchase ammo and new weapons.
I ended up implementing a bunch of the tutorials for the menu screens. The
amps tutorial was particularly gnarly because it forced us to fix a bunch
of corner cases that would soft-lock the player's save if they managed to
mash the controls at the precisely wrong moment.
Once the HUD messages were gray-boxed, I helped to migrate in the art from
the concepts that our Artists had created.
Spawn points needed to be placed in positions that would allow enemies
to be hidden from view when they spawned in. For example, I placed spawn
points for human enemies behind large containers or in side offices. A
bunch of effort went into making sure the alien spawn points in the
vents were positioned just right so that players couldn't fall into the
vents, but the aliens could still climb out.
In order to wall-climb and pounce around the levels, the xenomorphs used
hand-authored grip points. The grip points served as a great way to
prevent the player from just turtling up in a corner, as an alien could
come bounding over a stack of boxes at any moment. As we discovered
these turtling-points in playtests, I would add jump points to the walls
in order to give the aliens new paths to the player.
A scene from later in the "Tribute" map. As players progress through the
various waves, we started introducing stronger variants of each xenomorph
class. These stronger variants were distinguishable by meshes attached to
their base meshes.
An outdoor scene in the "Tribute" map. Level Geo: Demiurge Art and Design
team / Level Markup: Me / Code: Demiurge and Gearbox Engineers / UI Art
and UX: Gearbox UI Art Team
A screenshot of the capture-and-hold game mode built for Pinnacle Station.
I built the game mode logic graphs in Kismet 3, and we just had to
copy-paste them for each instance of the game mode that we used.
Building the results screen was super tricky! We didn't have access to any
of the usual UI construction tools, so we had to basically just bake our
text into textures, and then swap out the textures used in the materials
on a series of planes attached to the camera.
The first survival mission that I worked on, 'Farmland Siege' also ended
up being my favorite. It has two nice bowl-shaped arenas on either side of
the map divided by a hill in the center. The platforms are positioned in a
way that not only allows enemies to fire from an elevated position, but
also gives the map a nice figure-eight path. Once the first blockout was
completed, one of our artists jazzed up the surrounding environment with
additional props and lighting.
'Outskirts Ambush' flanks the player with enemies and drives them to the
center hill. The center hill provides two major combat moments: battling
one's way up the hill to attack enemies on the left, and leaping across
the hill into the fray on the right. After the initial geo pass, art added
some awesome props, lighting and animated life to the background.
'Cliffs Survival' makes a little more use of vertical space. Stationary
ranged enemies and fliers fire down at the player, luring the player up
across the platforms to engage them. Once the initial geo blockout was
done, an artist raised the snazz level with additional props and lighting.
Our lead designer also took a pass, adding in the interactive objects that
can be detonated to damage the robots.
My goal in 'Downtown Roadblock' was to cycle players toward the edges of
the map, up onto the platforms and then back into the center. Ranged
enemies drive the player under the ledges the edges of the map, and then
surges of melee enemies from below chase the players up and out. After an
initial graybox and rough prop placement, one of our artists did an
awesome art pass on the props and lighting.