Simply Dialogue System

Disclaimer: This is a work in progress. UI aesthetics and other elements doesn’t reflect the final product.

TL;DR

Final users can: 

  • Primarily focus on writing the script.
  • Change dialogue design on the fly.
  • Have each dialogue actor from NPC (non-playable character) to a level trigger volume can have their own Excel file with their aesthetics.
  • Also, have each line of dialogue have different background and transition.
  • Have up to 1,048,576 rows of dialogue per Excel file.

Power users can:

  • Relax about troubleshooting because this tool uses only one widget blueprint.
  • Easily add more effects, such as typewriting.
  • Give final users more controls through the use of structures and enumerations, eg: dialogue positioning, font style (size, color, type), etc.
  • Add to another project, just copy and paste :).

Short intro

A point and click 2.5D pixel art story-driven indie game based on the works of Algernon Blackwood, Edgar Alan Poe and H. P. Lovecraft.

Goals

Third party agnostic, meaning no use of external plugins, scalable, simple to maintain and upgrade, modular.

Constraints

At the moment, this will be a mix of my limitations and vanilla Unreal Engine 4.

  • Lack of C++ knowledge.
  • UE4 doesn’t come with any dialogue system.
  • Third-party independence, as mentioned in the goals section.

Doing what you can, with what you have.

After some documentation research, I discovered UE4 could manipulate data table via blueprints, in this case, .csv files, the same type of file used on Excel.
Allying this with string manipulation, I ended up with the dialogue tool below.

A small breakdown

Below is an overview, without going too technical and too long.

That selected block is what we call a trigger volume, when the player character walks into it, an event will occur. This event will execute all the logic for the dialogue system to works.

START Dialogue Index and END Dialogue Index, corresponding to the Excel spreadsheet row index (column A).
For example, I used START Dialogue Index = 1 and END Dialogue Index = 3.

The dialogue system will display what text is in rows 1, 2 and 3, as shown in the video above.

What about that “Alternative Background”??

When checked the user can choose which style he wants to use on that selected dialogue.

Below, full blur background style