Skip to content

Dialog rendering #6

@kriskowal

Description

@kriskowal

We intend to render game dialog as speech bubbles, to evoke text messages. Game dialog is defined in the Emoji Quest spreadsheets:

https://docs.google.com/spreadsheets/d/1U8JJM-g7Br0ePrjH7kg7tJ3N2eb0Mab2y5GDiJo1Tx8/edit#gid=2082650385

To implement the dialog, we will need to flow text in a bubble, with interpolated emojis. Since we can’t use an emoji font, we’ll have to roll our own text flow.

The first chore is to convert the dialog spreadsheet into lobster code. The lobster code will drive the renderer. The second core is the renderer.

The driver code might look like:

func dialog_gym_0():
  first_person(gym_emoji_id)
  write("Hi, I’m ")
  bold(): write("Gym")
  write("!")

func dialog_apple_tree_hardwood_10():
    render(axe_emoji_id)
    write(" ")
    bold(): write("Axe")
    write(" me no more questions!")

var apple_tree_dialog_funcs = [dialog_apple_tree_hardwood_1, ...]

My intention is that the player will keep track of the dialog number for each entity or entity type and each time the player bumps into a tile without invoking another recipe, the dialog number will advance modulo the number of dialogs for that entity, and display the corresponding message. Some recipes will also effect dialogs, based on the corresponding column of the Morphs or Recipes sheets.

Whether the dialog number resets when the player breaks a sequence of bumps (as would feel natural with conversations with people) or never resets (as would be good to rotate through bump dialogs for all the trees in a forest) may need to become a parameter on the Tile sheet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions