What is a round character in literature

This is not about fat, this is about versatile non-player characters - and how you could program them (using the example of TAG).

The novelist E.M. Forster introduced the distinction between flat and round figures in literary theory (namely in Aspects of the Novel from 1927). A flat character in a novel always behaves in the same way, while a round character can show himself from different sides. Foster also pointed out that characters in a novel do not always have to and can not be round - depending on what role they play in the structure of the novel.

In text adventures, however, there are almost exclusively flat figures. How do you even create a round character?

In contrast to fictional characters, the number of dimensions of a text adventure figure can even be determined numerically. It is the number of states in which a person in the game can encounter the player. So we define (example TAG 2.0):

State neutral 'bored' state angry 'angry' state calmed down 'calmer than before'

Depending on the state, the figure should react differently than before. Let's take an older man as an example, whom the adventure player meets in a liquor store:

Obj Kenner Name 'Whiskykenner' m Adj 'graying' Before 'whiskey' Subst 'herr' m 'man' m 'connoisseur' m Attr Person Location Bar First 'A graying gentleman probes the whiskey bottles.' Besch 'The graying gentleman chooses a whiskey. At the moment he is working. ' Neutral condition

Since the player of the adventure is looking for a suitable whiskey bottle for his uncle Albert, he will surely ask the gentleman about the whiskey he is studying. Because the staff in the shop cannot be seen or they don't know their way around very well. We take the verb from or from the standard command file of the TAG package. We add the following lines to the definition of the connoisseur:

VorAusf (ask) Depending on aObj (Whiskey) Bed /(Kenner.Zust = neutral) 'You ask the gentleman about the whiskey bottle, but he asks you to make your inquiries with the staff of this shop.' Bed /(Kenner.Zust = angry) 'You ask the graying gentleman what kind of whiskey he is studying, but he just unwillingly shakes his head.' Bed /(Kenner.Zust = soothed) 'The whiskey connoisseur answers your question with a relaxed smile. "Well, young man, as you can read on the label, this is a 10-year-old Springbank. You know, don't you, that Springbank is the last active distillery in Campbeltown?" Text '*** Program error - state not recognized! ***' (otherwise) Text '"Hmm." The man didn't really listen. "How?"' Ende EndeAusf

We already have a programming approach for a round character in the adventure. Now start the hard work: We would have to define how the expert reacts when the player asks him for an umbrella, we would have to give him a command so that he also reacts to commands (dismissive!). And we would have to define how the player makes the whiskey connoisseur angry, and how he appeases him again. Perhaps he throws down a bottle and then gives the connoisseur a good cigar? Only the author of the full adventure will find out.

By the way, our figures never get really "round" this way, but the more sides they have, the better they roll - think of a six-sided and a twenty-sided die.

May 7, 2001, Florian Edlbauer

five
Different ideas around a topic

Refuel
Short drafts for adventure

spare Parts
Craft objects, commands and spaces for adventure

Workshop
Mechanics and inner workings of text adventures

test drive
The road situation of German adventures

Grand Prix
The text adventure competition

Turn
Worthwhile back roads

Intern
What textfire.de wants, who does it and how to participate