Creating a Quest
Quest System Overview
The Quest System is useful for creating quests for the player to complete, unmarked interactions, and even gameplay systems.
Quest Data
Quest Data is the core asset that holds all the static information related to a quest - objects, phases, etc.
Quest State
A quest may be in one of these states: Unstarted, Started, Completed, or Failed
Quest Phase
A quest is broken up into phases. A quest may only have one phase active at once. Each phase can have multiple objectives.
Quest Objective
A quest objective is a goal for the player. It can be hidden or displayed at any time if the phase is active. It can have its state changed at any time regardless of the owning phase's state.
Quest Data
TODO
Quest Phases
TODO
Quest Objectives
TODO
Quest Objects
TODO
Best Practices
Storing State
Objectives and Phases are a great way to store state. If you have an objective 'pick up the apple', then there's no need to have a bool variable 'applePickedUp'. This reduces the potential for bugs and desyncing.