Typewriter Post Mortem


This is specifically related to my experience with using Aarthificial's Typewriter system in it's pre-release beta form.

I realize that most of these things could be fixed by me implementing Typewriter in a different way- being under the time crunch I made due with what worked instead of what would be best. So, when I explain how I approached using it and the difficulties I faced- those are reflections on my own implementation of Typewriter- not Typewriter itself.

I had 3 main objects that helped things integrate with Typewriter: A singleton repository of various events and facts that I wanted to reference programmatically, a chat bubble, and a chat bubble manager.
The singleton was used to read/modify facts and look up which game object represented which speaker.
The chat bubble manager was in charge of spawning new chat bubbles (a feature I ultimately did not make use of) and making sure that only 1 chat bubble was active at a time.
The chat bubble object was a heavily modified version of DialogueResponse from the VisualNovel sample that came with the Typewriter package.

The chat bubble was the big star of the show (It really should have been split into multiple parts). It pretty much tried to do every job that was explained in your video. It was an interaction handle (Lines 68-74, 80-84, and 114-128 ), a player detector when the event is configured correctly (Lines 86-100 and 381-391 ), a dialog sequencer (Lines 120-128 and 241-379 ), and a chat bubble (Lines 148-235 ).

Each chat bubble would have it's own dedicated source Event that all possible branches would connect to. That event was given to the chat bubble as "this is your whole universe". That event was given to the chat bubble as "this is your whole universe".

The events connected to that source event would be the different branches of dialog that could happen from that source location.

Image

A better approach may have been to have a single dedicated Dialog Sequencer. It would allow for multiple events to be triggered at once- and to choose the highest priority event. It would also allow events to interrupt current events if they have a higher priority. The chat bubble and the player detector should have also been decoupled. (Both of which are how I think Aarthaficial explained them in his video).

Get Slime Twist

Leave a comment

Log in with itch.io to leave a comment.