Which is technically wrong. An expressed mental desire doesn’t necessarily translate to action.
“I feel I’d like I could murder Bob sometimes” is way different from >KILL BOB.
Which is technically wrong. An expressed mental desire doesn’t necessarily translate to action.
“I feel I’d like I could murder Bob sometimes” is way different from >KILL BOB.
Coming back to this after experimenting with it today, there’s a narrative layer and a mechanics layer. The question is to what extent you can and should allow a fallback LLM to affect the second. In a way, it needs to try and gauge your intent.
I’m currently trying to figure out to what degree that is reasonable to implement, because you don’t want the LLM to break the hand crafted fiction, while essentially just expanding the narrative space of the world.
I think what does help is to establish what commands it reasonably has access to while also just making sure you have the most sarcastic, world weary narrator voice for the LLM: You'd like to have that apple. Good for you. Are you going to do anything about it?
Color me especially skeptical on this one. The way disruptive new technologies tend to work, they get a bunch of venture capital to start out, operate at a loss to get customers locked in and drive their competitors out of business, then hike their prices up to make back their losses. See how AirBNBs are now often more expensive than hotels, and Ubers often more expensive than taxis. Or how Netflix now has more ads than the cable TV it replaced.
These data centers are enormously expensive to run, and the current consumer prices aren’t anywhere near covering it. Once adoption is widespread, I predict the prices will jump sharply to where they “should” be (to cover the costs of operating plus shareholder profits).
I agree.
Also those businesses are already discussing the possibility of adding ads to the output the LLM generates, to also help cover the same expected costs.
And while discussions I’ve seen have only mentioned the “chat” interfaces, I can imagine in a situation where a non trivial percentage of the prompting comes via API calls, they will want work out a means of increasing the monetization of that vector as well.
Because, by the time all the data-centers needed to reach the widespread adoption rate they (and the public?) want have been built, and all the training has been done to achieve the level of LLM(s) likely needed to “do everything”, the number of Billions spent to achieve these outcomes will be very large. And those Billions need to be quickly recouped, while trying to over the ongoing costs of “operating plus shareholder profits”.
Which is technically wrong. An expressed mental desire doesn’t necessarily translate to action. “I feel I’d like I could murder Bob sometimes” is way different from >KILL BOB.
You are correct, but the alternative being “I don’t understand that command”. For a new player, this is off putting. To me, it’s better to do the plausible. But each author must make these choices.
I think that situation is already here:
ChatGPT, with an estimated 300 million weekly active users […]
The platform processes 2.5 billion daily messages and 6 billion API tokens per minute […]
source
Let us respectfully disagree on that. The answer to a command as convoluted as that SHOULD be “I don’t understand that command”. That’s like those users who try to use I7 without reading the manual because they think it really understands everything they write.
Everything - every single thing - has a learning curve, and a learning curve isn’t a boogeyman. Using any software has a learning curve. Any game has a learning curve. Part of the learning curve means learning what is useful and what isn’t; how to interact with whatever you’re interacting. Tutorials are a (IMO great) way to reduce the steepness of that curve, and to engage the user.
When a new player tries something and it doesn’t work, sure, it’s off-putting. That applies to trying to do stuff in OpenOffice, or trying out a new strategy at chess, or whatever. That’s part of the process.
An IF game which absolutely cannot say “I don’t understand that command”? That’s a parody of AI, which goes to great lengths not to say something you don’t want to hear.
I am not sure that the design viewpoint you seem to espouse, and which I think is less to do with AI at this point, is useful. The trick to a huge majority of games is to give the player the illusion they have a lot more freedom than they do. In fact, that freedom mostly comes from finding, or being told, the limits/rules of that game, and then using them in interesting new ways that may surprise even the developers.
“I don’t understand command” is a necessity. What we need to do, though, as designers, is to ensure that comes up as infrequently as possible - and if it does come up, it does so at a time when it makes absolute sense. And that is absolutely within our grasp; we don’t need AI.
PS - Quite apart from what I say, Hanon is still right; and therefore between choosing “I don’t understand that command” and a command which doesn’t actually reflect what the player typed, give me “I don’t undertstand that command” any day.
Okay, small reveal on that project I mentioned.
I think I found a middle road after adjusting the prompt in the current iteration. Still need to stress test this, but it’s functional. It allowed me to throw cloak fabulously at hook, which parsed as putting the cloak on the hook, but with extra pizazz.
It also blocked the play command, as nothing was established to play with.
For anyone curious, I have been working on this for the past few days, and finally got it functional today. Take this as a potential test case for LLM-integration in parser fiction. It was fun to tinker on.
Do we want to teach the players that commands like that are good and the way they should be thinking? Part of any interface is showing the players what the limitations are so they can best interact. Is it useful to allow any and all input like that? Doesn’t such a free form method even distract from the story?
I agree ideally everyone would take the time to learn the 40 year old art of “IF parser language”. To me, it’s as natural as breathing. I learned my bastardized touch typing on Infocom. Heck, at least once a year I accidently type look on a command line instead of ls.
The reality is some large percentage of users will type a few things, get I don't understand that command or I see no 'want to take an apple here' or the user will refer to it as a fruit and the author forgot a synonym.. I see no fruit here… and give up.
You mean “OPEN MAILBOX”, “LOOK INSIDE IT”, “GET LEAFLET”, “LOOK UNDER MAT”, “GET KEY”, “UNLOCK DOOR WITH KEY”? The reason it’s natural it’s because it’s standard english with a reduced verbset which is easily graspable.
Some games will cater to newcomers more, some games less so. Some games are not very well made regardless of whether they do. This is not a new problem, and it keeps being experimented on, trying to solve it.
Well, I don’t want to just try to dissuade you altogether (I wouldn’t be able anyway, and I shouldn’t be able to, not if you believe in what you’re doing). I think it’s clear where we disagree, so I don’t need to keep at it.
I think you are walking an interesting path that combines Sam Barlow’s Aisle and the various attempts to make IF more accessible, which have included tutorials, keywords, making it choice-based. I don’t actually like any of these, and am thrilled that parser IF is still being made, because it’s the one that I actively enjoy. But far be it from me to dissuade anyone from making these other types; and that includes far be it from me to keep raining on your parade.
Consider it a challenge. Prove people like me wrong. ![]()
“take apple” vs. “I’d really like to have that apple”, some can disagree on.
”jump across chasm” vs. “I’d really like to be on the other side of that chasm”… that’s a bad place for things to end up.
Playing devil’s advocateto my own position, if the answer were something like “You’re right! Wonder whether we can achieve it… see something useful?”, it would be fine.
This means, of course, as you say, that “I’d really” should not be a command of intention similar to “I will”; and it should matter whether or not it IS possible to cross the chasm at all, because the AI taunting the player into an inacessible area is exactly the kind of deviation I’m worried about and where the art of design and signalling comes into play.
But, resuming my previous-established “don’t wanna be negative”, I don’t see why these two things can’t be addressed. Sure, though, it takes less power from AI and gives more of it to a human. Which may not be a bad thing.
I agree, but I also think there’s a lot of value in “I don’t understand that command. Did you mean: PUT THE APPLE ON THE TABLE?”
An excellent point; that isn’t just a point-blank refusal, which is Harlock doesn’t want (and really, I don’t think any of us want to; it’s a symptom that something went wrong, either with the game or with the player’s understanding of what the game could do. Delicate dance). That is a clarification request - or a suggestiong. It’s not “No”; it’s “no-but”. It’s not as good as “yes-and” or “no-and”, but it’s heaps better than “No.”
That seems like a better usage of the capabilities of AI, actually. Try to predict what the player may have meant, and put the suggestion to them. Hmmm, I’m pretty sure I saw stuff like that being attempted before. An autocorrect system? Parser suggestions? This sounds very familiar. And I personally seem to remember them being a bit annoying, but if it’s easily turned off…
But yeah, if you’re adding that possibility to the set of options, I also prefer it.
EDIT - Here’s a super-important thing about your example. It educated the player in the preferred syntax. After that, the player is more likely to use that syntax. As opposed to just accepting the command, and risk trouble later because of that, your command says it didn’t understand and then tries to suggest something useful (or clarify intent).
The bottom line is, it has the player then type a command it will understand. That’s the kind of educating I mean is invaluable, and only brings dividends.
100% agree. But this is why I think the multi-year future for LLM-IF is local models, not cloud compute. Local models are already highly capable, and getting better by the day; at the same time, new consumer hardware is being optimized for model inference, and new models are being optimized for consumer hardware. There’s a crunch now because cloud compute is driving up the price of hardware, and there may be another crunch if the cloud market reequilibrates before the hardware market does, but in the long run I expect local models to win out for small tasks. (LLM-IF is a very small task compared to a lot of what’s in the pipeline.)
(At the same time, I expect the current revival of retro-capable IF to continue for some time. The future is text games that either run on a Commodore 64 or require an RTX 4080.)
Just to at least refer to it, as it was part of this discussion. I got an online version live for people to play around with: Experiment with AI trapdoor for Dialog