The Quest System allows creating complex quests with multiple tasks, rewards and automatic progress.
While you also can create quests by using the Event System and Logs, the quest system offers a convenient way to combine quest information, rewards, navigation markers and quest progress. The quest’s progress is separated into different quest tasks – the progress can optionally be handled automatically (e.g. finishing a task after killing the required amount of enemies).
To get your quests into your game, you still need game events to add the quest and display dialogues. You can see an example use of the quest system in this gameplay tutorial.
Quest Types
Quests are separated into different quest types. You can define as many quest types as you need. They are created in the ORK Framework editor in Game > Quest Types.
The quest types are used in menus and HUDs to optionally separate the displayed quests or create different menus/HUDs for different quest types.
Quests
Quests can give rewards (experience, items, weapons, armors and money) upon successfully completing them, and define a text explaining the quest (similar to logs). They are created in Game > Quests.
Quests have four different statuses that determine how they’re handled:
- Inactive
The quest is currently inactive and wont have automatic task status changes, requirement updates or display navigation markers – i.e. even if you kill a required enemy or collect a required item, it wont be recognized and update the quest’s tasks.
The quest can only be set active in this state. - Active
The quest is currently active, automatic task changes and requirements are used and navigation markers are displayed.
The quest can be set inactive, finished or fail in this state. - Finished
The quest is finished – no further actions are possible.
When setting a quest to finished, you will receive the quest’s rewards. - Failed
The quest failed – no further actions are possible.
When setting a quest to failed, you wont receive the quest’s rewards.
A quest consists of one or more quest tasks.
Quest Tasks
Quest tasks are the actual things the player needs to do to complete a quest. Tasks can update the quest’s information text (similar to log texts) and, like quests, can also give rewards upon successful completion. A task can have multiple navigation markers (used by Navigation type HUDs) to display the location of the task. They are created in Game > Quest Tasks.
You can define requirements for a task’s status change – it can depend on other tasks to be finished, a number of items collected, enemies killed or game variables conditions. The changes can optionally be made automatically when the conditions are met. Automatic status changes are available for activating (i.e. making it available), finishing and failing a task. You can use this to, e.g.:
- make a new task available when another has been finished
- finish a task automatically after a required amount of items is collected
- fail a task automatically when killing a defined enemy combatant
Quest tasks have four different statuses that determine how they’re handled:
- Inactive
The task is not yet available – no automatic status changes, requirement updates or navigation marker displays.
It can only be set active in this state. - Active
The task is currently active and will do automatic status changes, requirement updates and display navigation markers.
The task can’t be set inactive any more – you can only finish or fail the task. - Finished
The task is finished – no further actions are possible.
When setting a task to finished (or it’s finished automatically), you will receive the task’s rewards.
Finishing a task can optionally also finish the task’s quest. - Failed
The task failed – no further actions are possible.
When setting a task to failed (or it failed automatically), you wont receive the task’s rewards.
Failing a task can optionally also fail a task’s quest.
Menu Screens can display quests by using the Quest menu part. The list of displayed quests can be separated by quests and limited to selected quest states – e.g. you can create different menus for finished and not finished quests. A quest can optionally be toggled between being active and inactive in quest menus. Menu screens are created in Menus > Menu Screens.
The Quest type HUD is used to display a list of quests and it’s tasks. Like in menu screens, the quests can be limited to types/states. Clicking on a quest can optionally toggle displaying the task list on/off. Also, clicking on a task can optionally toggle the task’s navigation markers on/off.
Adding new quests and changing a quest’s or a quest task’s states can display notification dialogues and print information to the in-game console.
The default notifications are defined in Game > Game Settings > Quest Settings and can be overridden by each quest individually. You can also define a default layout for displaying a quest’s information in menus and quest dialogues – the layout can also display the tasks of the quest.
The default console output is defined in Game > Console Settings > Quest Texts and can be overridden by each quest individually. The in-game console can be displayed by Console type HUDs.
Getting quests into a game
You can add a quest into your game by using the Event System. Since the quest’s text is mainly used for displaying information in menus or quest dialogues (a special event step to display a quest’s information), you might want to use a series of dialogues to explain the quest to the player.
Besides the automatic quest/task progress (e.g. making a task available after another task finished, finishing a task after a required amount of items has been collected), you can also change the state of quests and tasks in the event system – and check the states to display different dialogues based on the quest’s progress.
Complex quests will also require to have game objects (e.g. items, NPCs or enemies) in scenes based on the quest’s state/progress – because of that you can make all interactions (e.g. item collectors, battles or event interactions) depend on quest conditions (similar to variable conditions).