Project : DUST
Engine : Unreal Engine 5
Platforms : PC
Status : WIP prototype
Date : 2025
DUST is a 3rd person shooter survival / exploration prototype that I’m currently making from scratch, using Unreal Engine 5.
For systems and mechanics, I’m taking references from games that likes to have minimalistic and diegetic ones. ( Astroneer, Dead Space etc.)
Core pillars/intentions are :
I will try to add multiplayer because I’d love to play around 2 player exploration focused actions/puzzles, including traversal and combat.
I wanted to strengthen my visual scripting skills and learn how to have a better project’s scripting architecture. (No spaghetti code allowed in here!)
And I simply find it fun to do visual scripting and learn new stuff on Unreal, so doing it by crafting a narrow scoped experience looked like a good idea.
DUST is made from a blank project, where everything will be added through visual scripting.
I started to make the project’s basic systems and mechanics while focusing on readability and flexibility.
Things will be added to the base skeleton and not making it a nightmare is a big concern!
I’m adding metric tools at the same time I’m doing mechanics like jumping, mantling… so I can quickly test by building gyms.
Visual scripting examples will be shown on my implementations!
There is a basic movement system using X & Y inputs, allowing our character to move in all eight directions.
I’m also using these inputs to get directionality, that would be used later as an animation parameter.
Sprinting & FOV changes
I added a sprint, including camera FOV changes, and a jump action.
I made a state machine to control the character’s move state, using an Enum and booleans. This Enum is used to set the different speeds our character can use.
Typical states to know if the character is jumping or falling are also added.
Clean states debug were added too!
I wanted the project to have an original look and I love the pixel art & 3D world mix (Like Octopath Traveler). I got sprites from Itch.io and integrated them.
While dealing with states, I made the character controller’s animation tree using the PaperZD plugin, a tool for 2D animated projects.
I made my animations assets and linked them with the retrieved directionality from move inputs. The state Enums are used for the AnimTree’s conditionals.
For cameras, I wanted 2 main types :
One of the core traversal mechanics will be mantling. The mantling is based on having tagged ledges that can be grabbed by the player. When grabbed, the player can mantle over it.
I wanted this mechanic to feature the haptic feeling of grabbing a ledge & be easy to execute as a player.
To convey a good feel, grabbing a ledge needs you to hold your jump input when going towards it.
Holding the spacebar will grab the ledge if it’s close enough.
Keep holding will not release the ledge.
Climbable ledges have a component on them, tagging them to be visible by the line trace.
Releasing will resume movement and launch the player upwards.
Detecting climbable ledges with tracing
I’ve had a lot of fun working on this project so far.
It’s nicely coming along and the overall project architecture looks very clean.
Adding the multiplayer was a real pain at first (I must admit) but now I’m feeling confident about creating new mechanics and prototyping fun 2-player gameplay modules with exploration, traversal and puzzles.
W I P