Level Design and Scripting

A page presenting some of the work I performed on selected projects.

Video Block
Double-click here to add a video by URL or embed code. Learn more
 

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