Text Description SystemNarrative

World state and room content are communicated to the player primarily through generated text rather than graphics.

The room is conveyed through generated text typed into a panel rather than graphics.

How text description system works in Godot

The screen is mostly text: room state and interaction results are communicated as prose, with a label as the primary “view” of the world.

RichTextLabelnode

The main display. Set it from the active room's description and use BBCode for emphasis — this label is what the player actually “sees”.

$Desc.bbcode_enabled = true
$Desc.text = room.description

Resourceprimitive

Descriptions live on the RoomData record, so the text the system renders is authored content, not hardcoded strings.

# RoomData.description holds the prose;
# the label is just a window onto it.

Arrayprimitive

Keep a log: append each interaction result and re-render, so the screen reads as an accumulating account of what the player did.

var log: Array[String] = []
func say(line):
    log.append(line)
    $Desc.text = "\n".join(log)

In short: RichTextLabel updated from RoomData.description; interaction results appended as log entries

Retro games that use text description system

4 catalogued game(s) use this mechanic, spanning 1989–1991.

Related narrative mechanics

▶ Explore Text Description System interactively — see every game + the Godot system