Ashenford
Role / Responsibilities: Technical Art, Game UX, Technical Design
Team: Small Group (4)
Tools: Unreal Engine, Blender, Substance Painter, Substance Designer, Embergen, Liquigen, Google Documentation Suite
Development: 6 months
Game Overview
Ashenford is an action horror FPS game set in a small town that’s undergoing a zombie apocalypse.
Players must attempt to escape the town with the assistance of a trapped stranger in the towns radio tower.
Inspired by games like Silent Hill and Resident Evil, Ashenford builds an eerie small town vibe and utilize environmental storytelling to build a compelling town and narrative.
Intractable highlight shader
Directional damage UI texture
Grenade mesh
Building Gore FX
Sublevel “load zone” plan
dithered glass material (shader complexity view)
Project Responsibilities
Throughout the project my focus was on improving player feedback through VFX, UX and Audio Design among aspects of optimization and game design.
Project aspects I worked on include:
Making all VFX assets including weapon VFX, enemy gore VFX, environmental falling leaves and fog FX and various surface hit FX.
Grenade explosion logic, mesh, texture, sound design and explosion VFX.
Directional Damage UI Indicator and texture
Contributed to findable lore notes
Contributed to level design areas
Created item highlight and low health post processing shaders.
All audio setup using Unreal Metasound for dynamic sound setups.
Scientific report lore note
Optimizing the Project
The work I’m the most proud of on this project is the optimization I was able to achieve.
I was able to bring the build from 20-25FPS on high to 90-110FPS on all machines I tested with. I was also able to bring it up from 10-15FPS to 60-90FPS on ultra.
I used the Unreal Insights tool extensively to locate performance bottlenecks and begin implementing fixes.
By using insights I was able to identify that the render thread was doing large amounts of work during runtime and so I focused my optimization fixes there to get the most amount of performance return for my work.
I optimized the game on both the asset level and game level and made various changes:
I built a new glass material with dithering, resulting in a “frosted” effect that removed all transparency from windows.
Grouped all building mesh pieces, fence pieces etc. into single meshes.
Instanced all identical meshes where possible.
This change saw a large improvement in stability, especially when loading the level initially and all other sub levels during game play.
Moved all interiors and exterior builds and props into dynamically loaded / unloaded sublevels based on player path.
This was the most significant improvement to the overall project performance. Implementing constant loading and unloading where possible, especially around level valves freed up the render thread significantly.
Made a fog post process shader to be able to cull distance objects outside of fog range.
I build the all VFX for the project using various tools and techniques. Much of which I incorporated within the gore FX:
Liquigen for simulating liquid bursts and generating flipbooks.
Blender for 3D Gore Chunks
Substance Designer for various blood droplet textures.
Unreal Niagara / Material Editor for the particle system setup, Custom data decal placement system and blood material.
I also used Embergen for other FX within the project such as grenade explosion and muzzle flash.