Recognizing Behavior
It’s slow-going, but I’m making good progress on my text adventure about the X-Men. I ended up taking the three paths I had planned for Wolverine and mashing them into one and a half paths. “And a half”, because I’m still giving the player some freedom to play the character of Wolverine to a certain type and if the player makes a particular choice, it would be impossible to finish the level as written. That smaller branch covers for that potential permanent choice in a positive way and (hopefully) will make the player feel as if the game recognizes that behavior. Forcing the player down one of three branches as originally planned ended up feeling wrong when I went to actually implement them. I hope I’ve instead struck a better balance that reflects the messiness of the character.
More broadly, I’ve had a change of heart in how I’m going to implement verbs for this game. Verbs in text adventures are the actions you’ve programmed that allow the player to interact with the world. If there’s, say, a refrigerator to open in the game, nothing will happen until you’ve programmed the verb “open” to connect with the “refrigerator” object. The player types “open refrigerator”, the refrigerator changes state, and the player gets a bit of text I’ve written describing what they see inside. It gets even more complicated when you’re adding verbs that aren’t part of the default set in Inform 7, and for a game about mutant superheroes with eye-lasers and more, I’ve had to add quite a few of those custom actions.
Originally I was going to give the player a strict list of verbs they can use. That list would grow and shrink as the game went on, and as player-characters changed, but the verbs available to the player would never deviate from that published list. In part, it stemmed from my original designs to instead make a point-and-click graphical adventure; abandoned once I considered how long it would take to create the art and animation in addition to *everything else*. That genre traditionally uses a fixed set of verbs. But even as an adventure of pure text, it was a way to control the game’s scope and to make it easier on players new to the genre. I have no fondness or nostalgia for the old-school “guess the verb” style of parser interactive fiction where you spend hours and hours trying to guess an author’s intention.
(I feel like I should define “parser” for fear of skipping past a reader who doesn’t know the jargon. They’re a genre of game where the player only interacts with the game through typing in commands via their keyboard.)
Unfortunately for me, there are a lot of players in the interactive fiction community who *do* have that fondness for opaqueness. In their defense, I was dismissing an important reason people love parser games, and I learned that lesson after the release of my SeedComp game, His Majesty’s Royal Space Navy Service Handbook.
For that (much smaller game) I implemented a strict verb list. A significant percentage of my testers (and eventual players), despite the game telling them over and over again that verbs outside the list wouldn’t do anything, kept trying to use other verbs. I even programmed a little message to chide them after the fifth time the player tried a verb outside the list.
I know. I know. I choose to take it as a sign that you’re enjoying the world of this game and want to interact even more deeply with it, but this game was made as part of the 2023 SeedComp game jam and therefore I really needed to keep the scope focused in order to hit the deadline. I know you interactive fiction veterans are programmed to go around rubbing and sitting on stuff, and I really wish I had the time to write all those interactions, but for real, only the verbs in the VERBS list will do anything.
“I did find the author’s notes proselytizing about not using verbs not in the verb list a little annoying.”
“The author seems to have found the lack of verbs a weakness instead of strength; typing the wrong thing too many times gives you a big apology about how they didn’t have time to implement responses to everything not on the list.”
Some players did not like my approach.
I was underestimating the thing that people like most about parser interactive fiction: that the player’s options feel infinite and real. That the game might respond to whatever you type, even if it has no actual effect on the game. That the author might have anticipated your attempt and took the time to program some sort of response to it.
In Service Handbook there was a refrigerator that players could open and investigate its innards. “Open” was on the verbs list. “Close”, however, was not. That was one more verb I would have to program and there was no gameplay need to “close” anything in the game; so why bother?
A striking number of players wanted to close the refrigerator after they were done with it, and were disappointed when the game didn’t recognize that desire. Why? The digital food in the digital fridge wasn’t going to spoil. So what if you left it open? Your mother wasn’t going to show up in the game to scold you for leaving the door open. And again, I’ve *told* you that only verbs in the verbs list are usable.
But, the players wanted to play-act that action to make the game feel more real. In real life you close the damned fridge door to keep the food inside from spoiling.
Ok, ya’ll win. I’ll do it if I must. But, how the heck can I do that with a game of this size without adding another year to its development calendar?
After some thought, I’m going to stick with presenting a strict verb list to the player, AND set up an action category system. That way newer players, or players like me who don’t think randomly guessing verbs is fun, can have a more-guided experience, and then old school players can go around sitting on and rubbing nouns to their heart’s desire.
We’ll see how this works in actual practice, but I was thinking I’d compile a giant list of possible actions and their synonyms, and then sort them by general type. I’d then apply those general types to game nouns without having to write individual responses for every single verb. So, “sit on”, “stand on”, “lie on”, etc could be categorized as “Furniture”.
For instance, say one of the scenes features a set of chairs. The chairs are simply there for set dressing and have absolutely no effect on the game. Their description makes it clear that they’re there for ambiance. But, again, a certain cadre of players can’t resist interacting with them. So, I’d apply the “Furniture” general type to those chairs, and I’d only have to write one response for the group instead of three+. Instead of having to write, for example:
Sit on: “You sit on the chair and find it comfortable for the moment.”
Stand on: “You climb up onto one of the chairs and prepare for it to come crashing down, but instead discover that it’s far more sturdy than you expected.”
Lie on: “You bring a few of the chairs close together and use the connected platform as a place to go prone. The curved seats make it a mildly uncomfortable experience, and yet you’re tempted to linger.”
etc.
With a category system I could just write:
Furniture: “You find the chairs to be far studier than they appear, and while you’re tempted to linger, you resolve to continue onward.”
The player gets a custom response for their shenanigans and gets to feel like the game is listening, and I save a (little) bit of work. We’ll see how cheerful I feel about this idea when the reality sets in of having to actually do it for the 400 scenery objects I’ve already created…