Video has been edited to remove larger walking segments.

Team Size: Solo Project
Development Time: 6 Days
Tools Used: Unreal Engine 5.3, Blender, Photoshop.
This game was created for the Retro Horror Game Jam in October 2024. It was focused more on developing a designer friendly dialogue system and exploring some unfamilar tech art processes.
Dialogue Blueprint Component

This was the main focus of the jam and something i've been wanting to develop for a while to re-use in my other personal projects. The aim was to have a blueprint component that can be attached to any actor and will pull data from a table that can then be utilised by a widget it spawns.
The main setup has a function start it off when a certain condition of my choice is met, which will spawn the widget and feed it the relevant information. The component is responsible for updating the widget and its spawned buttons with information from the data tables with two pure functions.
The components primarily talk to each other with Blueprint Interfaces, as this gets around some of the referencing issues you encounter with a nested component setup like this. It also makes it a bit more performant, as the widget and parent component can talk to each other directly rather than going through the widget component.
Pure function used by buttons to get text required for buttons, and the relevant response from the NPC.
Pure function used by buttons to get text required for buttons, and the relevant response from the NPC.
An example of the way interfaces are used. The above function is standard for many responses. The second function is used when we need to end a conversation early, and is normally called by something like a timer or another condition.
An example of the way interfaces are used. The above function is standard for many responses. The second function is used when we need to end a conversation early, and is normally called by something like a timer or another condition.

The data table used for the main dialogue. There is a separate one that the player response buttons pull from. These could have been combined into one, but I decided it was easier to work on if I could keep them both independent. The Row Name is used as Dialogue ID by the lookup functions.

Back to Top