3 ms·
I think in this particular case, the game example script is more to blame than the parser. I don't even remember putting that bottle there, but I should've mark
by facundo_olano 10y ago
I think in this particular case, the game example script is more to blame than the parser. I don't even remember putting that bottle there, but I should've marked it to be take-able and drink-able.
I made it so it's fairly simple to extend the supported verbs (you can even add your own verbs as a lib user, without modifying the lib code). It's just that it hadn't been used much before today, so a lot of somewhat obvious verbs are probably missing.
(full disclosure: I had little experience with infocom games myself, I'm more used to graphic adventures, but this was a far more interesting programming project to learn Clojure).
- cyberferret 10y agoOne of the 'shortcuts' in the Infocom Z-parser based games when I entered a room that was rich in 'stuff' was to issue a 'take all' command. That would immediately give me an idea of what was an object that could be manipulated vs what wasn't. e.g. > take all bottle: taken table: that's nailed to the floor bed: that is too heavy to take wallet: taken rug: you can't take that! This (a) automatically lets me pick up anything that I can (and drop the ones that I don't immediately need), but (b) it also tells me that there is no point in trying anything with the table & rug, but the BED might still be an actionable item because of the response. Perhaps I could 'move' instead of 'take' the bed?
- facundo_olano 10y agoGood, I didn't know about the "take all" feature, taking note. In advenjure you can get a similar effect with the autocomplete. If you enter "take " and hit tab you will get suggestions for all the items available in the room. Either case still requires the game scripter to try to guess what the players will attempt and write specific responses for that, otherwise they'll get the frustrating generic responses.
- cyberferret 10y agoAh, the tab thing is useful. But is seems to list ALL objects in the room, not just ones you can interact with. Seeing something on the tabbed list make me assume that you CAN in fact 'take' it, but nearly everything on the list CANNOT in fact be taken. A long and tedious process if you have to do them one by one, and not via global 'take all'. Apologies if I sound harshly critical - I am not, and I applaud your efforts here. I am simply framing my comments from many years of playing Infocom games over 30 years ago. I still have Frotz on my iPad these days so I can continue to enjoy bootleg copies of Infocom and other games. Would continue to use Advenjure too if the parsing quirks are worked out so that the game flowed naturally, rather than being a constant fight with the interpreter to try and achieve what I want to do.
- PhasmaFelis 10y ago> Good, I didn't know about the "take all" feature, taking note. If you're serious about making a viable interactive fiction engine, you should get really familiar with the Infocom games, the Z-machine engine and its various ports, and the Inform compiler that a latter-day fan made for the Z-machine (and the fan-made games that use it). That's the standard by which your work will be judged. If you're just fooling around, then do whatever you like. :) Some of your ideas are pretty neat, like tab completion.