Dead Bug CrEek
A passion project my partner and I have been working on for the last few years, slated to release as our first self-published title for PSVR.
Creative Direction, All Art (from VFX, UX/UI, and shaders to models, textures & animation), Engineering, Concept Development, Interaction Design
Languages: C#, HLSL, Cg, MEL | Tools: Unity, Zbrush, Maya, Adobe CC, 3DS Max
Team Size: 2 (1 full-time, 1 part-time) | Duration: 3+ years
I create all the concept art, environments, color scripts, props and characters for DBC.
MODELING & SURFACING
I handle the complete loop for authoring character assets. Usually beginning from concept design, turnarounds, and emotion sheets to final models, textures, custom shaders, rigs, and blendshapes. Once in Unity, I'll configure the model, hook up its animations and evaluate veffects or custom shaders the asset will need.
We use a phoneme system paired with blendshapes for our characters, integrated using a powerful package for Unity called LipSync. I did modeling, blendshapes, plugin integration, animation timing, and first passes of integrating LipSync with our AI system.
Color and Light
The game’s nighttime setting allows light to be a driving force in helping the Player navigate the world intuitively. Beacons on the horizon draw the Player towards them, using canned light emanating from doorways and within buildings to indicate areas of interest.
Learning From themed attractions
Much of the game was influenced by circulation techniques in theme park attractions and museum exhibitions.
The motel sign in our main area can be seen from almost anywhere in the game. It signifies a central hub for players to come back to, with each important area branching from the sign's location.
Vignettes & Framing
Dead Bug Creek’s environments have been crafted to elicit the best possible VR experience. When the game begins, the Player sees a sweeping view of the game world from the top of a hill, giving them a moment to view the map and acquaint themselves with the world and atmosphere.
Shaders & Technical Art
One of a few prototypes exploring hair shading. This shader isn't used in game, as I instead chose to favor shape and contrast over detail.
This shader projects UVs in world space, blends multiple textures using vertex colors and a mask for soft transitions between them.
ANIMATED GUI STATE
A diffuse shader with an attract animation is used in our GUI to show which states are active with vertex animation and a little displacement.
Everything interactive receives a highlight pulse when gazed at. This shader plugs into our AI system and works with a Material Property Block for sharing materials across multiple gameObjects.
Game Guts and C# Implementation
Since Dead Bug Creek uses gamepad input rather than motion controls, we grappled for a long time with whether the Player should have an avatar. The design I landed on reduced the Player avatar down to arms only.
This solution helped mitigate the Player moving outside tracking bounds and becoming detached from their avatar's body, revealing an ugly stump where the head should be.
There will usually be multiple interactive objects within the Player's field of view at a given time, which was the primary driver of our in-world GUI system's design. I wanted GUI prompts to be hidden from a given distance, for interactive objects to be marked in a special way, and to be able to share assets across gameObjects and instances.
NPC AI System (Greenroom) & Player Avoidance
Characters in Dead Bug Creek give dialogue, take direction, follow you, and ask you to follow them. Greenroom is a modular system we developed which breathes life into our characters. It functions as an editor extension where we build quests and interactions without spending hours doing per-event programming.
I began to feel NPCs would need to react with discomfort when the Player moves too closely to them. I ended up adding this to the base Greenroom system my partner was implementing, and it gave a surprising extra layer of perceived intelligence to our characters.
It works by triggering a new "too close" state once the Player passes a particular threshold, where we grab two arrays of animations with which the character will discourage the Player from being in their own personal space. The dialogue and animations are chosen from at random from the array, with each piece meant to fit together in any combination.