Anacrusis


Platform

Xbox One, Xbox Series X, PC

Published

Stray Bombay, 2022

Overview of Work

  • Game Design – Helped on initial weapons design, enemy design, and combat design.
  • Level Design – Concept, blockout, gameplay, and scripting for ten levels.
  • Art – Final geometry, UVs, first pass lighting, fx, and post processing for multiple areas.
  • Code – Implemented suite of networked world objects such as doors, panels, shields, elevators, triggers, etc.

Level Design Process

My ideal level creation process is best represented in the write-up for Doom.

Technical Design

On this project I created a suite of networked world objects in blueprint such as:

  • Destructibles
  • Doors
  • Elevators
  • Toggleable Emitters, Meshes, Lights, Sounds
  • Fans
  • Jump Pads
  • Meters
  • Panels
  • Triggers and Trigger Volumes
  • And a bunch more!

Each of these actors implemented a simple “activation” blueprint interface so they all could interact with each other in some form. For example, when a door has completed opening it could activate any of these other actors. Or if an elevator started or reached its destination it could activate any other actor. Many of these actors supported 1-4 players including player bots. Besides the above I created a set of Utility actors to help in the creation of any blueprint actors as well as a set of editor utility scripts to help with various level design & environment art related tasks.

Below are links to a sample set of blueprint for a system that enables the trampling & folding of foliage.

  • Event Graph of a player component

    First it checks to see if any foliage exists in the world, and if so enable this interaction system. “Space force” is an internal term for a 360 energy pulse mechanic that pushes back enemies. If this ability is in use the tramplers grow to match the bubble, flattening foliage from the energy pulse.

  • CheckToSpawnTrampler
  • This function runs through a series of checks to see if its ok to spawn a “trampler”. This object spawns a hidden mesh which utilizes mesh distance fields (MDF), the foliage material I created does MDF checks to appropriately bend foliage.

    The tramplers have a lifetime and eventually shrink & disappear. Initially I built a trampler manager in BP to track & limit them to a pool, eventually we moved this into C++ for a more efficient sub system.

  • Event Graph of BP_FoliageTrampler
  • Quick Delete of BP_FoliageTrampler
  • Shrink of BP_FoliageTrampler
  • If the pool hits a limit the tramplers have a method to quick delete upon request where they shrink and remove before their lifetime expires.

  • Vertex shader section of foliage material to bend from nearby MDF meshes.

    This shader looks for nearby MDF to bend foliage, this method is fast and allows any unique shape to bend foliage. Being a fast GPU shader was vital for this game which can spawn 50+ enemies and 4 players.

Player spawning tramplers, leaving a trail through foliage.

Arbitrary shapes bending foliage.

Tramplers in action.

Below is a sample networked actor.

  • Networked Door Event Graph

    Door implements activation interface to be triggered by any actor. Door can be activated or set to auto mode to open & close based on proximity.

  • OnActivate
  • OpenDoor
  • OnRepStatePosition

    This function runs on each client whenever the variable is changed.

  • ProcessOpening

    Processing of opening door on each client. Runs from tick which is temporarily enabled when the door is moving.

Screenshots of Work

All comparison shots below I owned concept, composition, blockout, partial world building, and final gameplay & optimization.





(NOTE: May need to reload page when done loading to see above images.)

Early blockout shot on level owned from concept to final.

Owned concept, blockout, final gameplay & optimization.

Owned concept, composition, blockout, partial world building, final gameplay & optimization.

Early blockout shot on level owned from concept to final.

Owned concept, composition, blockout, partial world building, final gameplay & optimization.

Owned concept, composition, blockout, partial world building, final gameplay & optimization.

All screenshots below are areas I did final world building, partial mesh creation, lighting/fx/decals, gameplay & optimization