Level Design and Scripting
A page presenting some of the work I performed on selected projects.
WWE 2K20 (PS4, Xbox one, PC)



I designed the Boiler Room, Darkside Boiler Room, Movie Set, Cemetery, Wretched Mire Yard, and Cabin levels in the retail release:
Concepted unique interactions and 2D layouts per level, based on existing concepts and prop needs from Content team
Modeled initial blockmesh and prototype props in Maya
Collaborated with Environment Art team to determine final art needs
Set collision data for Character and AI pathfinding using custom Maya tools
Staged props, weapons, and interactable triggers in our proprietary engine
I scripted functionality that effected all aspects of the game, including my levels:
Scripted nodes and branches for our AI Behavior Trees using json
Set events and triggers for character and camera data in our cutscene editor
I also designed an unconfirmed amount of levels for the four upcoming WWE 2K20 DLC packs. Will add as they are released.
A Hat in time (PS4, Xbox one, Switch, PC)
I contributed to the design of the Purple Time Rift level pack that came as part of the “Seal the Deal” DLC update:
Concepted 2D layouts per level, starting with a “peak” experience and tutorializing backwards from there
Designed new ways of implementing existing mechanics into additional levels
Modeled initial blockmesh and prototype props in Maya
Counter Strike: Global Offensive Modding (PC)

I developed a mod alongside a small team for CSGO that forces a playable singleplayer mission into the mp game:
Created concept for “Retribution” Level, including story brief, 2D layout, and basic progression
Designed Mission with high level story beats to hit
Determined scripting needs based on previous singleplayer implementations created in CSGO (a multiplayer only game)
Blocked out level in Hammer Editor
Scripted gameplay events, cutscenes, and custom minigames using Lua
Balanced availability of weapons and equipment drops to suit player progression through level and enemy spawns
Level design toolkit (PC)
I create small level and scripting demos every once in a while solo to test out new concepts and recreate gameplay from my favorite titles.
I make my prototypes as modular and reusable as possible. I do this with the goal of having an ever growing library of scripts, models, and tools I can pull from to make future level designs quicker to iterate on.
Main Components:
Character Controller
Contains 3 base animations: Idle, Walk, Run (Best I can do solo)
Uses IK effectors to change stances: Standing, Crouching, etc
Smoothly transitions between Blend States to cover level interactions (picking up objects, jumping, etc.)
Characters can look toward Points of Interest designated in the level
Context sensitive button inputs that trigger events and flags with level script, character, and camera
Camera
My TAG (Track, Arms, Gimbal) “Physically based” Camera System that allows for 100% smooth transitions between Camera States and Positions
Camera is scripted as if it is on a physical rig - Camera Movement is restricted to the virtual Track, Arms, and Gimbal - they need to be manipulated as such, making for more realistic panning and shots.
Camera States that can be easily authored based on behaviors the designer requires
Examples:
State - Player Orbit (OrbitObject player, Offset thirdPersonOffset, PlayerControlled true)
Orbits the player object and is offset to an over the shoulder view
State - Player Orbit + POI (OrbitObject player, Offset thirdPersonOffset, POIObject target, InFrame true)
Orbits the player, maintains third person over the shoulder view, focuses on point between the player character and target, zooms to keep all in frame
Exposed variables in editor for getting / setting of Camera params at any time
“Maintain Composition” setting that allows for the Camera to keep an object in the same framing if the character is 100 meters away, or 3 meters away
Does calculations to maintain the same amount of screen distance between the character and POI whenever the POI appears on screen
Level Script
Can be called from any script that imports my LDST (Level Design Scripting Toolkit)
Maintain a Singleton in your scene that holds your Director C# file
Setup a Script Coroutine in your Director Script
Tell your Script to Pause and Resume depending on certain flags being met
Set flag conditions in the inspector, Add flags to any game object in the scene
Manages objects in the level and assigns player objectives as they progress
Projects LDST came from:
Arceuil Level
Blocked out level geo and props in maya using Henri Matisse painting as reference for perspective and shots
Came up with the setting of a woman trying to reunite with her family - having to escape the town
Scripted character controller, dynamic camera, and in game events
Door Prototype
Created interactable demo showcasing a door that needs to be opened
Player can perform button inputs on a controller to engage with a winch that pulls open a door
Juicy button input UI reacts to the player button inputs in a way that gives weight to their presses and shows the current status of the door (progress towards open, losing progress, complete)
Scripted slack and tension in chain and winch that pull door open. Door gains and loses progress towards an “opened” state in a way that shows weight and polish to the object.
Additional events like smoke particles, broken geo falling, dust, and screenshake sell the door being weighty and falling when the player fails
Opening the door completely reveals a framed rewarding point of interest in the background with a path that would lead the player to the next part of the hypothetical game.
Truck
Scripting
Car Escape
Level Design
Scripting