How to update objectives of a quest effectively?

In the future, the objectives will not be a, b, c, 1, 2, … For example, the quest is “Meet friends”, Objective 1 is “Meet John”, Objective 2 is “Meet Jane”, …
I mean the objectives should be meaningful. So, if I update objective “a” to objective “Meet John” and objective “a” has been completed, I will update it in 2 places: Quest (scriptable object), QuestList.statuses. This is not effective.
So, I would like to know an effective way in which I will update the objective in just one place.

Actually, you’re only updating the status in one place, the QuestStatus. The scriptableObject should never get updated.

An objective now is a string. Updating that objective status is just copying it into the list of completed objectives

I see that the problem is the display of that objective could be changed.
For example, changing the objective displays “a” to “Collect a flower”
=> leads to changing the objective in Quest, and completed objectives (if this objective has been completed).

Generally speaking, the reference shouldn’t change. We should only be displaying the description, and QuestList should only be saving the reference. If you leave the objective reference at A and change the objective description from “Trample on the Flowers” to “Collect a Flower”, it should show up in the quest log as “Collect a Flower” without any extra effort or worrying about what has been saved.
(It is, of course, also never a good idea to change a quest or an item that has already been out there for the players to play with, they may not be happy if they close the app, upgrade it, and discover that the objective they’d been working so hard to accomplish has been changed).

I think I will build a language system; it will be fine for saved data if I update the quest/objectives description.

I have reviewed in the next lessons; the lecturer has changed objective (string) to objective (object)
thank for explaining

This thread is placed in Blender talk.

1 Like

Sorry :sweat_smile:

1 Like

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

Privacy & Terms