Original Concept / Solo Project
SCAVENGER

Software used:







Project last updated 2025
Scavenger is a top down game with a focus on story, quests, resource management and building. The player is a robot waking up after an apocalypse, teaming up with a mutant slime named Gooblin to survive. The game currently has all of it's core gameplay systems complete, and I am continuing to fill it out with more quests, building options, NPCs, etc.
This game is a remake of my "The Forest" project that won Gnomon's Winter 2022 Best of Term for Development in games.
I was responsible for:
-
Gameplay design & systems
-
Character models & design
-
Character rigs & animation
-
Environment art & design
-
Prop art & design
-
UI art, design & functionality
-
SFX & music
GAMEPLAY SYSTEMS & SCRIPTING
In creating this project, I wanted to tackle a robust set of systems that could all interact with each other to create a responsive, smooth experience for the player. The main goal was to have:
-
A fully controllable player character with integrated animations.
-
An easily expandable inventory system and resources.
-
Dialogue systems for NPCs that can be added to and changed at any time through simple Data Tables.
-
A quest system that similarly runs off of Data Tables and can track the current player mission along with the requirements to progress.
-
A cutscene system that can play level sequences from one simple node, adding the ability to pause and skip controls, with cutscene events (visual changes, player & NPC placement, quest updates, etc) tracked and applied on skip.
-
An upgrade & building system where players can place workbenches in certain areas, and build new upgrades, structures and more at a cost.
-
Tutorials to guide the player through all of these systems without overwhelming them.
I felt that with these core gameplay systems working in tandem, I could build out a fairly engaging vertical slice of gameplay. Below, you can find spotlights on some of these systems- and how they work.
INVENTORY
When the player is first given access to the inventory, they are given a quick tutorial on how to open it and view their items. At any time after, the player is now able to collect resources scattered around the world, and open their inventory to view current amounts.
The inventory is given a simple, unintrusive spot on the constant HUD, with smooth animations for the UI and player character when toggling the menu.
Available resources can be easily customized and expanded at any time via Data Tables. All the developer needs to do is duplicate the master "resource" blueprint, add in a new unique art asset and name, and add the necessary matching info to the global resource Data Table. After that, the resource can be placed in the world and is ready to be collected!
As resources and items are collected, an "inventory manager" blueprint tracks and stores amounts, types, relevant art, etc, in an easily accessible array. This "inventory manager" is fully compartmentalized and can be applied to any actor the player may control.
The inventory manager can also be exposed and accessed by any other system in the game: for example, at any time the quest manager, dialogue system, or NPCs can call upon and track it for mission requirements, give the player a defined amount of any item(s), remove items when building new structures, etc.

Click to expand image
DIALOGUE
When a new NPC is created from the NPC master class and placed in the world, the player is able to interact and talk with it. Upon talking to any NPC, the current quest is cross-checked with the NPC ID, and relevant dialogue is displayed per quest stage.
Dialogue can be a single page or multiple, and the NPC name is displayed alongside the text. Each NPC also has it's own dialogue camera, which is automatically blended into upon dialogue starting. During dialogue, you can also assign a spot for the player character to be moved to, so that conversations are staged naturally.

Click to expand image
Dialogue for any NPC can be added easily by any developer, similar to the resource system. A data table holds all NPC dialogue, defined by NPC ID, Quest ID, and Quest Stage in the dialogue ID. Based on this, dialogue UI is populated with the correct content.
In each defined dialogue row, you have a number of options for how that dialogue should be displayed, and what should happen, examples include:
-
Define if the dialogue row should exit the conversation after, or move onto the next dialogue for that quest stage.
-
Define if the dialogue row should set a new quest stage when displayed, and what quest to set.
-
Define if the dialogue row should fire off a world event when displayed
-
Define if items should be given or taken when dialogue is displayed.
QUESTS
At all times, a quest manager tracks the player's current quest. Quests are split up into stages, or missions, and each comes with it's own title, description, and if needed- requirements to progress. Quests and missions can be set/progressed either manually through world events or dialogue, or can automatically progress based on resource requirements being met.
Not only are quests robustly tracked, but are also fed into a visual UI representation telling the player their current quest, and what the goal is.
Once again, quest info is defined by a DataTable (seen on the right), allowing any developer to add new quests and edit existing ones. The quest manager reads this DataTable to fire off a variety of logic once a quest is assigned, defining progression, requirements, quest name, description, etc.
Quest IDs follow a naming format of quest number and quest stage, allowing for multiple stages within quests, and different popups for completing larger missions vs. smaller objectives within them.

Click to expand image
CUTSCENES
As the game features many cutscenes and cinematic moments, I needed to create a cutscene manager to universally handle logic around them. This cutscene manger allows the player to pause cutscenes with a custom UI, smoothly transition from cutscene to gameplay, and skip cutscenes. As well, the cutscene manager tracks all events that happen during the cutscene (player and NPC movement and final positions, world events, visual changes, quest states, etc) and apply them when the scene is skipped- ensuring a seamless gameplay experience.
UPGRADES
When the player progresses far enough into the story, Gooblin will teach them how to build a workbench in certain pre-defined locations. These workbenches unlock upgrades and building- allowing the player to spend collected resources and items in order to fix up areas, build new structures, and make all manner of furniture, decorations, and interactable objects within the area.
Upgrades are once again driven by a Data Table, read by the "Upgrade Area" blueprint. Developers can easily create a child of the master upgrade area blueprint, allowing infinite building areas. The upgrade area blueprint also allows you to set and edit what is available for build in that region live in gameplay. Developers can add an infinite amount of upgrades per area, and pre-place and customize the upgrades in the environment.
ASSETS & ART CREATION
All art assets for this project were created by me, using Blender, Adobe Substance Designer & Painter, zBrush, Photoshop, Gaea, and assembled in Unreal Engine 5. This includes all environments, props, character models, rigs, animations, shaders, and VFX. Below, you can find a look at assets and the creation process.
PLAYER CHARACTER
For the character you play as in the game, Bentley, I created low and high poly character models, rigs, and animation sets from scratch. Below is a breakdown on some of his assets.
BENTLEY
Bentley is the player character in Scavenger, a humanitarian aid unit leftover from a war long ago. After waking up in the wreckage of the ship he went down in during the cataclysmic conflict on Earth, he finds and aids Gooblin in building shelter and saving his other slime friends.

Low Poly
High Poly
Low Poly w/ Baked Details
(20k tris)
(4.3mil tris)
(+Substance Materials)
For Bentley, I created a full animation set for his movement, as well as numerous animations for cutscenes.
BASIC ANIMATIONS
In the above video, you can view 7 of the most commonly used animations in the game for Bentley's movement and inventory.
CUTSCENE ANIMATIONS
In the above video, you can see an example of cutscene animations I created for Bentley; specifically the game's opening cutscene where he wakes up.
ENVIRONMENT
In the game, you explore a post-apocalyptic frozen landscape, dotted with abandoned buildings and structures. For this, I made a collection of assets to fill out the environment. Asset creation followed a standard games pipeline- high poly sculpts in zBrush, re-topologized down to low poly assets in Blender, with high poly details baked down onto the assets in Substance Painter, and materials created in Substance Painter and Substance Designer.
ASSET SHOWCASE
In the gallery below, you can look through different showcases of various assets around the game environment. You can expand the current slide's image by clicking it.
SHADERS
A wide range of shaders were created for the game, from a comprehensive master material for standard assets, to specialized shaders for certain VFX and characters. All shaders were designed with instance options in mind, for fast iteration.
MASTER MATERIAL
I created a master material for standard assets across the game, with options for common art direction needs in the environment.
SPECIALIZED MATERIALS
Below are examples of more specialized shaders created for specific scenarios.
For Gooblin, I needed to be able to change various color/subsurface/refraction/glow settings for different moods and story moments, as well as apply weather effects and more. Above shows an example of some of these attributes changing in realtime.
As the environment features many frozen bodies of water, I needed a visually appealing and easily customizable ice shader, that could blend seamlessly with the landscape. Above shows examples of these effects.
GALLERY
Click the thumbnails below to view high res in-game screenshots.



