Eva Grillova's profile

3D dialogs for a zoo game

Dialog systems for unreleased game
(Stopped in production)
My role: System design
Credits (art): Vittorio Truffarelli, Nils Camin, Christian Nauck, Marcus Mestrov, Calvin Verhoolen, Tamas Molnar

Summary
The challenge: Coming up with a rule set for display and handling speech bubbles in a 3D environment, with focus on readability. 

The game contained a 3D environment with animals moving around and communicating with the player. Story-telling was focused into two  channels: While in the area, animals could have shared their thoughts or interact with each other, dropping pieces of the story randomly or as a response to players actions in the area. The main narrative means was a system of 2D dialogues on the UI layer, that required player's active participation and focus, and is described in a separate story. 

In-game dialogs
The challenge was to come up with a set of display rules without having all the story requirements on the table, to hook up the system into the existing Animal control system and to make the dialogs readable throughout the game. 
System overview
Bubble types and size
Story requirements brought us to three types of bubbles: speech, think and shout. The think bubble added another level into animal behaviour, and enabled to show lots of humorous situations. The shout bubble, while partially replaceable by the speech bubble, brought more comics-y and light feel and served as an occasional spice up of the story.

Through iterations, we landed on a scalable system for the speech bubbles. For think and shout, dynamic solution wasn't easy at hand, so we decided to use several sizes of sprites, with the cost of having a maximum character limit. This was not a hard decision, as chaining up multiple bubbles was always a possibility, and additionally didn't shower player with long texts. 
Bubble controls
The existing system allowed us to control lots of parameters already, mainly display time or delay. 

When it comes to the setup of the text itself, we went for TextMeshPro -- so that from the definition of the text we could call a different colour of the text, smaller or larger than general font size, even a generated (and not so pretty) italic. 

Additionally we implemented system of variables that could have been also displayed in the text, especially in regards to future features (player name, generated animal names and similar). 
Bubble readability
We made two main decisions with the implementation:

First, bubbles are part of UI layer, which maintains the same size wherever on Z axis the animal is. 
Second, from player's perspective, bubbles are part of the animal world. They stick to the animal, and if player scrolls away, the bubble remains by the animal. 

From our perspective, this decision was not only making our job easier as we didn't have to deal with edge cases when player would scroll around, but it also further conveyed the idea of the animals living their independent lives, while the player is an observer that is occasionally noticed by the animals for story purposes.
3D dialogs for a zoo game
Published:

3D dialogs for a zoo game

Published: