You have your text IF premium creators who create damn-near perfect content – and you have the rest of us who sometimes miss things. In writing any room description, your players will read what is shown in the description to figure out what to look at in more detail and/or where to go next, as expected.
A problem arises when you (as the writer) mention something in the room description that is not described further, leading to that dreaded “I see no XXXX here” when the player enters “EXPLAIN XXXX”. This is frustrating for the player because you *just* mentioned XXXX in your room description! Or a direction is mentioned in the room description but when the player tries to go that way, they get the confusing “You cannot go that way”.
What is needed is a tool that can help identify these items (noun phrases) and exits that, as the game writer, we overlooked in providing further information, even if it is (and usually is only) atmospheric descriptions (such as Decoration and Distant).
I took a crack at creating one. It looks for noun phrases and directions in the room description and then checks if those nouns can be eXamined and those directions actually exist. While it does produce some false positives (pointing out nouns where no further info is needed) and some false negatives (finding noun phrases that are not quite right), the directions seem clean. A little more tuning of the word lists would probably help.
This code runs quickly (about 3 seconds on the 180 room Colossal Cave) with most time spent writing the checkDescr.txt file.
For more details and the code, follow the link to the GitHub repo. Any suggestions or feedback is appreciated. Thanks!
Neat! Presumably a related next step could be to create something that takes a written room description and automatically generates code stubs for all the noun phrases mentioned, including automagic guesses about grammatical properties (plural, proper noun, etc), as well as extracting sentences that should be “initial object descriptions” rather than part of the room description? So, like, a deterministic NLP-assisted tool that automates the actual tedious/mechanical parts of authoring, rather than the creative parts?
I’ll look at this, having perchance already implemented perhaps the ultimate stress test: (warning: spoiler for Isekai !)
statstor: Room 'Stationery storage'
// answer to the challenge !
"You have expected, in a place inhabitated by Magi researchers, this place.\n
This small squarish room's shelves are crammed with reams of papers, bundles
of pencils, styli, quills, pens, brushes, bottles of ink and colours, tablets
of watercolour, pastel sticks, straightedges, compasses, protractors,
rulers... practically every tool conceived for writing, drawing, drafting,
sketching or painting prior of computers is stored here.\n
East you can return to the staircase." // yes, IS an Imp's challenge !!
east = tground
;
(yes, I fess up: I’m still mulling revenge for the non-costructive criticism of Creative Cooking, and I’m still tempted about locking up the hapless player in that location until s/he/y EXAMINE eyery object here !!)
found the time for the promised stress-test, at least of checkRoomDescr:
>ver
Isekai version beta 0.42-a3Lite 2.2.1
adv3Lite Library version 2.2.2
T3 VM (mjr-T3) version 3.1.3
>checkAllRoomDescr -showall
.Collision: light of type 2 collides with previous type 6
Collision: upper of type 2 collides with previous type 11
Collision: boot of type 0 collides with previous type 2
Collision: play of type 6 collides with previous type 2
Collision: tie of type 0 collides with previous type 2
.......................................................................................................
Wrote file checkDescr.txt successfully, analyzing 104 rooms.
and looks like that got easily confused, seems not because of the bad english, e.g.
----------- understair closet --------------
There's no kid wizard living here, but there's plenty of potterware, this
being a storage space for cups, dishes and cutlery, all of good appareance,
elegant but not pretentious: whoever lives here not only has good taste,
but also often has guests, and by the amount and variety of dishware here,
also holds relatively sizeable receptions and parties.
- - - - - - - - - - - -
: there's no kid : No extra description
: storage space : No extra description
: cups : OK
: guests : No extra description
: amount : No extra description
: relatively sizeable receptions : No extra description
-----------------------------------------
Notice the first one and last pair of lines, and that ignores the legitimate descriptable nouns like “dishes” and “cutlery”. But OTOH, “storage space” is worth of being considered as a new description.
(of course, if someone want it, I can send privately the resulting 88071 bytes long checkDescr.txt)
It tries to parse up sentences in a meaningful way but it can and will point out nouns that do not need further explanation. The vocabulary it understands can be expanded rather easily by updating the list of known nouns, etc. The goal wasn’t perfection but a tool to help identify missing descriptions.
Having said that, I look at this more holistically meaning rather than focus on a single room where it did not do well, how did it do overall across all rooms in a given game? In the ones I have run including adventure, it is a bit “noisy” for 10% of the rooms but does pretty OK for the rest (where there may be a single noun that it reports needs further explanation where it either does not or it misunderstands the word as a noun or takes it out of context – because it has no concept of context).
I would be interested in seeing the tool output. Thanks!