Suggestion for QuestKit - Giving Orders

jdpjdpjdp
Alex said we could start threads if we had ideas for things to add to QuestKit, but also that there wouldn't be a lot of new additions. With that in mind, one feature -- common to IF, but absent from Quest -- strikes me as enough of a priority to at least open up a discussion: the ability to tell NPCs to do things.

This usually comes in the form of "Bob, wash car" or something like that, (less commonly it'll have an actual command, like "tell Bob to wash car"), but there's no real mechanism to do this easily in Quest. The best way I've seen is to co-opt "tell about" into "tell to", but this leaves a lot to be desired, mostly because the "ask/tell" system works by identifying key words rather than objects (in this case, a car) to be acted upon.

Two possible ways it could work:

From the NPC end- Add a new feature type for objects that accept orders, with a tab where you can pair verbs to objects and assign behaviors to them.

From the target object end- Add a fourth option to the verbs tab, "perform by other character", which would work just as "require another object" does, but would be populated by other characters who can be made to perform the action (including the player character themself).

These are just suggestions. I don't know which of these would be easier to program, or which would be easier for people to use. I can see pros and cons to each, and maybe neither is the right answer, but it's a commonly used IF feature that Quest really ought to have built into it somehow.

Thoughts?

Silver
I really haven't worked with NPCs yet and my one (thus far) that I have planned for my game will be interacted with by means of Bethesda-style conversation options.

Like :

NPC says: blah blah

You want to say:
Whatever - click
Yeah right - click
Etc etc - click

I don't know any other way of doing it. Well I could think about ways of doing it but most of my ideas seem to result in frustration rather than enjoyment for the PC.

jaynabonne
I think NPCs are important but could be added as a library after the fact. Hopefully QuestKit will be open-ended enough to handle that. So, with that in mind, I think a clear necessity is the ability to easily add libraries to one's games.

Silver
Will the aslx language be kept? I found it fairly smooth to traverse from GUI editor to tinkering with aslx. The next step being js is brilliant, but the simplicity of aslx still needs to be a stepping stone IMO.

Alex
There will be no aslx. It will be JavaScript everywhere - your game will be JavaScript, QuestKit's core libraries are JavaScript, and the QuestKit compiler is JavaScript.

There will be a visual script editor though - I'm planning for the editor to use Blockly: https://developers.google.com/blockly/

Silver
Maybe I need to rephrase that.

Will there still be a simple language over the complex stuff?

Like now I can say:

if alexsays.no {
Msg ("you disagree with Alex but he remains unconvinced.")
}


We lose that front end?

Alex
No, there will be no separate language. The code will simply be JavaScript. But the fundamentals of JavaScript are not that different to aslx anyway. In QuestKit your example would probably look like:


if (get('alexsays.no')) {
msg('you disagree with Alex but he remains unconvinced.');
}

Silver
and that's probably better for me anyway as I get to learn js :)

Alex
Yep, which I'm actually really excited about. It means QuestKit can be a way of introducing a real programming language that is in use in the world generally. And once you've learned JavaScript, you can contribute to the entire QuestKit project, because 100% of it is written in that same language.

Silver
Good point. With aslx we understand code, with js we can contribute.

HegemonKhan
chuckles, it looks like JS will be the first real+common language I'll be learning!

----

@silver

now this is funny... the tables will be turned... I'll be bugging you for help with learning JS, muwahaha!!! (you missed me bugging everyone with learning ASLX~XML when I started with quest, but now you'll be a target of my questioning with the QuestKit~JS, hehe).

Silver
I don't know any JS! I've used some jquery that I borrowed from Moquette that's basically in a blog post Alex made.

HegemonKhan
ach, I forgot you said that in another post, where I thought the same thing, sighs, I'm getting old...

we'll learn JS together than, we'll help each other in trying to learn it, group work, hehe :D

Silver
I've got a book on JS and a book on jquery. The problem with the JS one is it's boring. I need something practical to work on that I have an invested interest in - so QuestKit will serve that purpose. Reading a page of book that tells me how to add up and subtract is just dull when I have no practical means of applying it to anything interesting. So the information doesn't stay retained in my head.

Silver
On that note: I hope jquery is going to be in QuestKit. Especially if the game code still outputs as HTML as my (limited) understanding is that it solves cross browser issues (as the jquery folk do that for you) that might be a complete time sink when doing the same with JS.

Alex
Yes jQuery is in there already.

Silver
dp.

Silver
Silver wrote:

"Alex"

No, there will be no separate language. The code will simply be JavaScript. But the fundamentals of JavaScript are not that different to aslx anyway. In QuestKit your example would probably look like:


if (get('alexsays.no')) {
msg('you disagree with Alex but he remains unconvinced.');
}



Returning to this, I mean the ease with which functions can be called presently in code view. I guess whatever comes next will be not much harder? It was nice having stepping stones from the editor to simple function calls to a bit of coding. It helped me anyway although I am excited that the next stepping stone will be js.

Alex
Not sure what you mean, but it should be just as easy to use as Quest 5. There will be a visual script editor, so that people who have never programmed before can get going with QuestKit, and there will be a code view for more experienced developers.

Silver
Fair enough. I should wait and see before commenting.

This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums