Project Details

Each experience's section below has one or more subsections for details.

warDrive

warDrive is a casual rail shooter and idler. Lock-on then unleash a barrage of cyber attacks. Dismantle enemy drones, pickpocket crypto wallets, and fight your way to freedom. Buy upgrades, passive crypto mining, and progress through the story.

Engineering Responsibilities

Architecture

Content is split into two scenes. The Main scene contains the player and all elements shared between levels. Each episode has another environment scene that is loaded additively.

Special effects, events, and config files are all implemented using an extensible ScriptableObject solution. This structure allows me to avoid unnecessary singletons and leverages the Unity's Asset Database as a means of loading default managers and initial configurations.

Narrative content is broken into chunks called Episodes, Chapters, and Beats, each one more granular than the last.  Episodes are mostly just a collection of Chapters with some additional metadata attached such as an environment config file. Chapters are mostly a collection of Beats, but will also have triggers for events like unlocking content on completion of the chapter. Each session of inner loop gameplay is a playthrough of a chapter. Lastly, beats are the most varied as the derrived beat types are responsible for things like dialog, cinematic effects, and enemies spawning. 

Movement

The player is stationary other than moving up, down, and around the origin position of the scene. Traffic, Enemies, Buildings, the road, and everything other than the player is on a conveyor belt. This method, used with careful pooling, creates an illusion of endless elevated highway.

Engineering Responsibilities

Content Tooling

A feature isn't complete if the available tooling isn't accessible or efficient enough for the people who need to use it. Effective tooling doesn't just enable a workflow, it accelerates it.

The core of narrative content creation in WarDrive can all be accessed through a single window.
Every chapter and beat of the episode is listed concisely with summary, while providing buttons for navigating and editing the content.

While scriptable object based content architecture is very useful, this purpose-built tool is more practical for editing and navigating dozens of separate asset's than using multiple inspector windows.

Design Responsibilities

Overview

Aesthetically, warDrive is a 90s fiction inspired setting. Neon cyberpunk colors highlight a grungy dystopia. The layout and controls are designed for a cross platform delivery, with an emphasis on touch based control support.

Inner Loop

The inner loop is rail-shooter inspired cyber warfare. Pressing/Clicking and holding puts the player into lock-on mode. In lock-on mode, the player drags their finger over the various targets for cyber attacks and establishes multiple target locks. When the player releases their finger, the targets are attacked.

Campaign play revolves around multiple predesigned stages. Enemies attack and defend, so targeting the right enemies first is paramount to efficiently passing levels.

In addition to the predefined course, a 5-point general security meter rates the player's perceived threat level. An increased threat level triggers the spawning of additional enemy forces. During campaign play, it's important to manage your threat. Sometimes instigating the corporate overlords is the only play.

The use of buttons is generally avoided in favor of a more diegetically cogent input like pressing/clicking directly on the target. The input scheme focuses on a single touch or click at a time. 

Hacked targets drop data packets that can be sniffed up to add to the player's resource pools or manipulate the environment or security response.


Outer Loop

Between rounds of wardriving, the player can invest collected resources into passive resource generators in the style of Cookie Clicker. The primary divergence from Cookie Clicker is the giant clickable cookie is replaced with the inner loop.

In-game crypto currency can be spent on

The upgrade and incremental shop/inventory are also used as gates on narrative progression and a resource sink. 

Until You Fall

"Until You Fall is a 2020 hack and slash roguelike video game developed and published by Schell Games. In it the player plays as a Rune Knight who has to fight back The Calamity. The full game released for Microsoft Windows on October 27, 2020."

Engineering

Supers

Every weapon has a fillable super meter. When the meter is full, the player can activate their weapon's super. 

The projectile supers direction is mostly based on the direction you look, regardless of what direction you swing your blade. Soul burn's projectile effectively locks onto the enemy most central and closest to you when you swing your blade. The shard storm projectile is a slow moving area projectile that moves horizontally even if you look up or down.


Enemy AI / Navigation

Enemy Navigation utilize Unity's NavMesh system. The enemy's NavMeshAgent automatic traversal is turned off. The Animator is driven to move the character along the NavMeshAgent's calculated path, but will deviate in some circumstances.

Generally enemy agents are directed to stand and some distance from the player, and at some angle in front of the player's field of view, depending on the state the behavior tree is setting them to. When the ideal location is obstructed, a binary search of the next best locations is performed to give them an appropriate position.

Night Shift

Night Shift is an adventure video game for the iPad where the player is an emergency medicine physician faced with various critical care situations.

Engineering Responsibilities

Context

The point-and-click adventure genre served as the structural backbone of the game, and it weaves a mystery narrative into emergency medical scenarios.

User Interface

The GUI holds most of the interactions. GUI features include drag-and-drop, data driven and dynamic patient medical chart information, and branching dialog trees.

Dialog System

Built on an in-house graph tool, I made a set of dialog nodes for the designer to build the dialog trees. Dialog nodes could effectively have any number of children. Logic nodes gate dialog choices, allowing an evolving conversation.

Save the Park

Join national park volunteers on their quest to save the parks in this fast-paced running game. With a unique twist on endless runners, control two characters at the same time to unlock levels, score combos and find hidden objects.

Design and Engineering Responsibilities

Context

The point-and-click adventure genre served as the structural backbone of the game, and it weaves a mystery narrative into emergency medical scenarios.

User Interface

The GUI holds most of the interactions. GUI features include drag-and-drop, data driven and dynamic patient medical chart information, and branching dialog trees.

Dialog System

Built on an in-house graph tool, I made a set of dialog nodes for the designer to build the dialog trees. Dialog nodes could effectively have any number of children. Logic nodes gate dialog choices, allowing an evolving conversation.

Lexica: The Seeker

The Create & Learn App, developed with Fisher Price, is a learning tool that provides hours of game-play for young kids learning the alphabet. 

Engineering Responsibilities

Summoning

Throughout the game, the player may has have access to one or more literary companions with special abilities. Summoning these NPCs in combat is one of the most satisfying experiences in the game. 

William Blake's "Burning Tiger" leaps forward, burning away dangerous brambles then unleashes waves of fire at enemies where he stops. Tik-Tok, the robot from Oz, shoots a big puff of steam to knock enemies back.

Every summoned companions has both a straight forward damaging effect for combat and a non-combat effect that interacts with some other system. The Raven is both a single target high damage skill shot and tool for triggering unreachable levers and buttons.

Pelé: King of Football

The gameplay is simple and you can get into the action straight away. Choose from hundreds of uniform combinations, use special power-ups to help you through tricky levels and watch exclusively recorded interview footage of Pelé. 

Design and Engineering Responsibilities

Power-ups

Several power-ups were available to activate before kicking the ball. The fire ball had the added effect of setting some environment elements on fire, but don't worry. The ice ball puts it out. The magnet pulls the ball towards the center of the net.

Flick Input

Straight forward flicking isn't enough here. Pelé is a legend for several reasons, including curving his shots, so that is a key feature to success when playing. Fine tuning the flick formula for consistent flicks and curves was challenging

Level Designer

I made content creation editor tools to help build levels, placing the enemy team members on the field, configuring them with movement, and setting the player's kicking location.

AHA - Rhythm Rescue

Presented at the American Heart Association annual Heart Ball, this cross-platform interactive game that serves as a rallying point for hands-only CPR. 

Engineering Responsibilities

The Rhythm Rescue experience was run live at the American Heart Association's Heart Ball, a gala-type event. I was responsible for building the main Unity 3D based client that was projected on the screen and also available on the web for some time following the event. Players connect via a mobile web interface and tap along to the beat of the music, triggering lives to be "saved." 

Unity Client

The main elements of the experience included the heart beating and music visualizations, Spawning randomized dancing characters. 

Create & Learn

The Create & Learn App, developed with Fisher Price, is a learning tool that provides hours of game-play for young kids learning the alphabet

Engineering Responsibilities

Paint By Numbers

The Paint By Numbers feature primary challenge was developing the process of adapting the SVG files created by a contract artist into functional experience. By defining requirements for SVG layer names and structures such as having all paintable areas be created as closed shapes, I was able to create a reliable import pipline. The end result was a series of grouped static convex mesh colliders and a Paint By Numbers assets that went came from an SVG file, in one click.

Augment Reality and Asset Management

Both every activity in the app and every 3D asset in the Augmented Reality activity was built into manually managed asset bundles so as not to crash the early iPads.