Project Mirabelle - Blog

Signs, dialog options, and some assets

Written by ♫Dex, published 2024-07-30

Note: This article was written on 2025-01-04, as a summary of the events happening on Discord back during this development log

I ended up adding a few new things to the engine. Most of the work was in the new dialog UI, but I also added signs with visible text, and a new pose asset.

On July 24th, I started working on signs. The idea is to show text on them, to allow diagetic information in the game.

Image of several with the text

The way it works is by placing a small canvas texture a few fractions of an unit away from the end of the mesh. This is similar to the text bubble shown above character's heads, but it is based on the mesh position and so requires to be more careful.

Once I implemented the sign, I started working on a dialog UI, which got finished on July 26th.

The idea of the dialog system is fairly simple: an interactible entity has a dialog: [] array on it, which contains a series of steps. Each step has a speaker name, a dialog text, and (optionally) a camera position. Then, the step also has a choices: [] array that has either one choice without text [{ choice: "", next: {...} }] or one or more choices with text that the player has to click on. Then, the next object of each choice either points to a { type: "nextScreen", id: "<id>" } object or to a { type: "end" } object. And this describes the whole dialog tree!

Once that was done, I then took a small break from engine work, and added a one-bar prison asset. This was inspired by some discussions in the discord server of Teananny's My Pretty Toy project