<game name="blah">
<start type="script">
conversation_creation_function
</start>
</game>
<function name="conversation_creation_function">
msg ("What thing do you want to make a conversation for?")
show menu ("room_object;npc_object;data_structure_object;list;dictionary",";") {
actor = result
switch (actor) {
case ("room_object") {
create object
room description dynamic script block
}
etc etc etc
}
(looping_start)
msg ("What dialogue choices do you wish to create for your choosen thing?")
actor.topics = new_list_/_dictionary
get input {
add list/dictionaryitem (result)
}
etc etc etc
(looping_end)
(looping or cancel=done)
etc scripting (whatever other aspects that are needed to be addressed)
}
</function>
Liam315 wrote: It is an interesting concept from a programming point of view but I don't think it would be a tool that would contribute to the making of a great text game.
Pertex wrote:But one thing is missing in Quest at the moment, a real conversation engine (talking to NPCs I mean). And if it would be possible to create such conversations, even if it would be only a smart part of Jays engine, it would be a great benefit for Quest .
jaynabonne wrote:Now, Liam, what you are referring to has been a constant design concern of mine - how do you assemble dynamic text without having it seem assembled? How do inject art into a process? And I don't have a good answer yet. Perhaps it will never be <insert favorite author here>, but I would be satisfied with something that at least seems natural to the player. In other words, if I can fake it and pull it off, I'd be satisfied.
The question is: could I actually pull it off, that and everything? The answer: I don't know.
I think I understand what you're aiming for a bit more clearly now, I was thinking only of room descriptions in a utilitarian sense, what's actually there, rather than how the character might be feeling about what's actually here (which has made me reconsider a couple of things I had going on in my game).
(I've started typing and retyping this sentence to offer suggestions but each one crumbles in my head and it's making my brain hurt.)
jaynabonne wrote:... You have to be careful if you want the children ordered, though. In my experience, child objects show up in the list in the order they're defined in the file, so I suppose, technically, they would be in the order you specify them under the parent object. That would be good to verify (though scary to me to depend on).
unless you're really masochistic and don't mind duplcating code and/or text all over the place.
jaynabonne wrote:What I have come to is that we want to somehow utilize both schemes, “binary” and “fuzzy”. The “binary” part would be used for phrase eligibility, based on world state; the “fuzzy” part would be used for selecting from among the eligible phrases, based on topic or other fuzzy considerations. This is the next area of thought for me, so I don’t have any ready answers yet. Perhaps some sort of uniform notation could be adopted.