Ron Newcomb advocates using modals in his recent blog post. And I agree, we should use modals in IF. And I thing we would use them if we could easily.
So I think we should ask, what would be needed for us to use modals?
Ron uses the analogy of strategy games like chess to motivate his arguement. Just as players in chess have plans and intentions, so NPC intentions could be queried in-game by the use of modal sentences.
My reply to Ron is that, I think that’s great, but it’s really not about modals.
In order for this kind of thing to even be an option, you *first* need to have a strategy game with well-defined rules. That means the game must have a logical space which the NPCs can make moves in. They must be able to sort for contingencies, in much the same way a chess program sorts for contingencies.
Really, that’s the challenge: making that happen in a way that’s still story-like. We will return to the “story-like” question in a moment.
As I currently see it, the programming end would require:
A sufficiently deeply-implemented simulator, to act as the “board” of the board game.
NPCs must be able to evaluate the board for value. (This would be tied in to the NPCs goals.)
NPCs must have a menu of options which will change the board status.
–Now, I’ve said in the past that it would be fascinating to implement a minimal dungeon with a few locked doors and thorough attention to NPC verbs, that allows the NPCs to “play” the game ahead, in simulation, a few moves. In other words, in this simple proof-0f-concept game, the NPCs would use the game engine itself to look into the future.
In other words, they would be omniscient and, for a move or two, prescient.
A year or so ago, Emily Short burst my bubble by pointing out that, to *really* get this to work, with every NPC having its own understanding of the game-board, you’d have to model the entire game once per NPC. And, you’d have to model each NPC once for every other NPC…
However, I don’t see that as the real problem in creating deeper NPCs. The real problem is simpler:
In general, we don’t understand human emotionality well enough to create NPCs that react to the simulator in emotionally salient ways. So creating believable NPCs isn’t something we know how to tackle; and believable NPCs is a prerequisite to narrative.
But, we can probably fake it. The Sims [TM] is a game that does not offer believable NPCs, but they are, apparently, “believable.” — People get sucked in. In general, it seems a little bit of emotional salience goes a long way. The lesson of the Sims ought to be that we don’t need to get a perfect portrayal of the human animal to make a good game.
(The reason the Sims is not a text game is that the graphics go a long way to sell the “humanity” of the NPCs: another, less welcomed, lesson.)
I’m currently working on developing (in TADS 3) some interactive creatures. Currently, I’m only to the point where they can find paths through an arbitrary map — provided the map has no one-way connectors. Soon they’ll be able to wander on an invisible tether, respond to hunger, and chase and flee each other.
I’m thinking this could be useful in two ways: one, to create a social backdrop against which the gameplay could happen; and two, to make the map more easily dynamic. On this second point, for example, perhaps you couldn’t rummage through Lord Winston’s closet when the servant is around, but if you use a sausage to lure the hounds into the house, she’s too preoccupied to worry about you.
This is currently doable, of course, but having a set of general tools I think would make designing these dynamic, social puzzles easier. You would no longer program a series of flags and state changes, but a set of behaviors.
Creating NPCs that strategically pursue emotionally salient goals is a long way off, but creating instinctively driven NPCs, that can learn where the food is, behave territorially, and dynamically make friends and enemies seems a first step.