» Skip to content

Project Element Devlog #4

» Skip Summary

Tag: Himig »

Summary

More dialogue system shenanigans.

Content

Note: This is an old development post that was previously only available on Patreon (back when I had one) and Ko-fi. Himig was still called “Project Element” at the time.

Note: Replaced old GIFs with JPGs to save space.

A school girl talking to another girl with the same 3D model about how hungry they are.

Hello! Progress this time has mostly been minor adjustments and behind-the-scene things, like adding more functionality to the game’s dialogue system. (June’s rough build will be uploaded in a bit.)

Back in Unity, I was using Yarn for dialogues. I like its node-based system, but I keep finding myself still typing the lines in Notepad and copy-pasting it into the nodes… I tried doing a custom system for fun in Unity years ago (which I barely used, but it was still a good time), so I figured I’ll try making one again! (There’s also Ink which I haven’t looked into much yet, but people seem to recommend it so if you’re dealing with dialogues too, that might be worth a look. Fleece is a new one too, if you’re in Unity land.)

Snippet of the dialogue system.

For this game, I made an indent-based dialogue… parser(?) called OnionSpeak. It’s still quite simple, but right now it can process:

  • Dialogue lines: The default. Information about the type and positioning of the dialogue bubble is contained at the beginning of the line.
  • Side lines: Denoted by a closing curly brace (}). Same as dialogue lines, but for dialogues happening in the background while the main dialogues play. Entirely optional to read through them.
  • Choice lines: Denoted by a greater-than sign (>). For… choices. (Still unsure on how to visually represent them… I was gonna add arrows at the edges of the bubble, but it looks too… game-y? I’ll leave it as just dots for now.)
  • Action lines: Denoted by an exclamation mark (!). This is basically used to call game functions like switching cameras, delaying dialogues, saving dialogue flags, animating objects, etc.
  • Queries: Denoted by a question mark (?). This can be added on any line, which makes its contents (and other indented lines beneath it) not be processed if the queries in it aren’t accepted.
Testing screen fading as a school girls walks in circles.

Changing locations is also possible now (with a pause-then-fade transition which was satisfying to see)! There’s only one location right now, but the spawn location for the player is settable depending on where they left the previous area from. Neat.

Saving and loading also exists, as I needed it for dialogue flags. I’m only using saves that get deleted as you exit the game for now, but the bases for auto-saving and save slots are already in there.

That’s all for now. Thank you for reading! See you next time.

» Back to top