Yes/No/IDontKnow?

So, I am hoping to understand this logic a little better.

We are building a system to use yes/no right?
so
yes = true
no = false
IDontKnow ~~ false

When do I need to know ~~
Or asked a different way

For a yes/no system having this Third choice Null
– What advantage for us is this?
– Where in the code we’ve written can I find this?

thanks

I believe you’re referring to the Conditions and the use of a Nullable boolean value in the Evaluate.

The reason we are making it nullable is that we can have many IPredicateEvaluators. By design, most of them won’t have an answer to the question. QuestList, for example, should have no idea if HasItem is true. Inventory should have no idea if HasQuest is true.

Our Evaluators only return true (yes) or false (no) if they definitively know the answer.
Let’s take an example:

Suppose I have a Condition that is HasQuest(“MotherHubbards Bunions”) (I’m simplifying the condition, I know that’s one And with one Or with a Predicate HasQuest and Parameter[0] of MotherHubbards Bunions.

The Condition system gathers a list of IPredicateEvaluators, and asks each in turn "Is HasQuest(“MotherHubbards Bunions”) true?
First it goes to Inventory, and Inventory looks at the cases it can handle. None of these cases are HasQuest, so it returns null, or “I don’t know”.
Next it goes to BaseStats. (You probably haven’t done this yet, but BaseStats is where you would evaluate a Predicate such as IsAboveLevel). BaseStats looks at the Predicate, but has no answer to the question, so it answers null, or “I don’t know”.
Eventually, we get to QuestList. QuestList looks at the Predicate and it knows whether you have a quest or not, so it answers either true (yes, the player has this quest) or false (Nope, not in this list).

The bottom line, an IPredicateEvaluator should only return true or false if it knows the answer to the Predicate. If it doesn’t have an answer, then it should always return null.

Is this why there are so many!!! console logs for the extras.

I notice that there are a lot of extra hits on these calls…

Trying to think…
I will try to wrap my head around this puzzle.

Thanks again for all your help

I prolly just need solid examples that I can reproduce…
I have missed a single solid example so far.

I have watched these videos more than i like to admit.

For me IF I could at least see 1 or 2 examples from beginning to end that work… I would get it I think

Please check that slides…
Help me put together two examples so I can give my designers a way to understand how this system works.

From beginning ( I have a quest with 2 objs ) to end
Foot cream and talk to guard are the two objs for MOther Hubbard
in the slides…
but… the unity side of setup is wrong…
code is ok


I tried to complete obj by using the pickup as one obj completer.
see pic above

I am having a hard time with this little comment thing (sorry)

Thanks (obv I am frustrated)
Ths little box keeps jumping up and down sorry

Every time the predicate is tested, each and every IPredicateEvaluator() gets a shot at answering the question. Add to that if you have multiple nodes, each with their own conditions, some of them may ask for the same condition…

The slides texts didn’t match the images… It starts with “you need a QuestGiver”, but the image is a Quest…

I am at a loss.

guessed out fpr now…

I will be back when i have a clearer understanding.
This time thru the class I know i learned more but because of the LACK of a straight forward example from beginning to end with NO jump here jump there would do it for me.

Like my slides in a way. (Did you see that slide show link?)
What needs to be done when?
without ALL the variety in videos. (they change directions to much!)

Wish I could answer the question from my designer tho?
How do I set up a quest with two objectives and gives a reward.?
Can I setup any gameObject or just Certain characters?

What scripts go on Which gameObjects? and When?

Thanks again Brian
PS:
I imported that into GoogleSlides without any editing yet.
(The slides texts didn’t match the images… It starts with “you need a QuestGiver”, but the image is a Quest…)
Yes, Great that Quest is the QUEST properties that will be used Through out this pic set.
the next slide is a picture of the NODES

The next THREE slides show each nodes properities

Then there is a pic of the testing ground

Then on slide 9 and beyond are total guesses from me

Does this help you help me?

Thanks

I’ll see what I can come up with. It might take a few days, as I work full time building circuit boards as my “side job”. :slight_smile: (Someday, I hope to change my title to full time instructor, but probably not for a while).

Thanks so much

My designers will be happy to know that Help is coming…

I will share my results as well for others…

Ok, Steve, I’ve done a bit of writing, and have made a walkthrough.

It does use a little bit different Condition setup, instead of using a string predicate/string[] parameters, I rejiggered the system to use PredicateData class, which has numerous fields, but only displays the fields needed to define the predicates.

Here’s the tutorial, take a look and tell me what you think: https://gitlab.com/Mnemoth42/sidetutorials/-/wikis/QuestWalkThrough-1

Hello Brian

Thanks for your efforts.

I am still unable to give my designer a concise list of things to do to add a quest.

After trying to implement your tutorial into my game I no longer get a dialogue cursor for my NPC?

Here is what I got from the tutorial.

not being able to see it work with my system (your tutorial worked) it is clearly still a mess, I am lost…

8/2/2021
Notes for quest system

For my designer

  1. Create a Quest… (currently this is where we define objectives and rewards.)
  2. Create a Dialogue to drive that quest. (See notes on dialogueNodes)
  3. Choose yur NPC to give that quest
  4. Add AI Conversant script
  5. Add Quest Giver Script
  6. Add Dialogue Trigger script for that action from dialogue
  7. Add 1 Quest Completion script for each objective this NPC will have a dialogue trigger for from the Dialogue that drives this.
    ----- Will show dialogue trigger examples later to my designer
  8. With any remaining objectives Put Quest Completion scripts as needed with 1 coresponding Objective referance each from Dialogue.

I am struggling with this still.

Thanks for any help

I would like to have the drop downs for my designer if that’s possible as he has already pointed out how bad that is.

A full tutorial on the drop downs is in the works, but I have a couple tutorials ahead of it.

Does the NPC have a CombatTarget/Fighter? This could be interfering.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.

Privacy & Terms