Complex, Rpg-Style Quest System

I already got it, thank you.

Did you try the bugfix in the comments?

Ah ok ^^

10 char limit

Part 14

Note: This episode will be released on 31.12.2016 at 14.00 PM GMT+1

This time we wrap up the implementation of our journal functionality by adding the journal functions as well as calling them when certain events like receiving a new quest happen.

Channel Link: https://www.youtube.com/channel/UCRnPBe1tJpXA0lccx_U1mww

Part 15

Note: This episode will be released on 04.01.2017 at 14.00 PM GMT+1

Since our quest system includes a template to hunt monsters it would not be bad to actually have some enemies in our project. Because of that we first add a health system to our player character before setting up a blueprint class and an animation blueprint for a spider enemy.

Channel Link: https://www.youtube.com/channel/UCRn...pXA0lccx_U1mww

Part 16

I am back to another video about the quest system and this time we implement some behaviour for our enemy class using a behaviour tree and a blackboard. At the end of this episode our enemy is able to patrol in a certain radius, notice the player when he is nearby, move towards him, attack him if he is in range and also to die.

Part 17

*TexturePackV6: QuestPackV6

After we completed to script our basic ai behaviour in the last episode, there still is no way to actually deal damage to the enemy. Because of that we first add a health bar to our enemy in this video before setting up an aoe explosion attack that can be used by the player. *

Part 18

*Before we are able to finish off our hunting template there are 2 additional features for our enemy ai that were requested in the comments:

  1. The enemy now also attacks and follows the player when it was attacked by him (and not only when it sees him).
  2. The enemy now has a maximum distance to its starting location. If it follows the player too far it will return to where you put the enemy in the level and start to patrol again.
    After extending the ai behaviour we can finally wrap up the hunting template by updating the sub goal widgets when an enemy is killed.*

Part 19

After having completed the implementation of the hunting template in the last episode, we can now go on to add the other ones which are find and talk templates. Today we start to build the find template by adding a MasterObject class for all items that are placed in the level and can be found by the player. Further we add an event to the quest manager in order to update all of our quest goals when a certain object was found.

Part 20

*To complete the find template we need to worry about the case that our player already found the object before accepting the quest. For that we have to make some minor changes to the way our system is working currently. *

Part 21

After fixing a little bug, we are able to implement the functionality for the last one of our goal templates. Therefore we have to add some variables and events to our Master_Npc class. Further we set it up so that you can have an Npc say different things based on whether or not you are supposed to talk to him in order to complete a goal right now.

Part 22

Today we are adding an actor that handles respawning our enemy ai once it has died. Further we start to work on our region and prestige system.

Part 23

This time we script the functionality to fail certain sub goals as well as failing or completing whole quests.
In addition to that we reward the player for successfully completing quests by increasing his experience and prestige for a certain region.

Part 24

After we added the script to fail and complete our quests in the last video, there is only one bit of functionality missing which is a way of cancelling current quests. Because of that we add this feature in this episode and find a way to inform the client (which is the npc that gave us the quest) that his quest was cancelled so that he is prepared to add it to the player once again.

Part 25

Today we wrap up the implementation of both the experience and prestige system by creating npcs that react to certain events. First we create one that has no quest available until the player reaches a certain level and afterwards we add another npc class which does not give the player any quests until he has earned a certain amount of prestige in a defined region.

Part 26

Due to the fact that it was requested in the comments and that there is not a single tutorial on Youtube about it, i decided to create a slot-based saving and loading system (like for example in Witcher 3 or Skyrim) for the quest series. In this episode we start working on that by creating the SaveGame class for all the variables that are associated with the player (experience, health, …), adding saving and loading functions to the player character and designing our save slot widget.

Part 27

After quite a long break, I am back with another episode on building the slot-based saving and loading system. This time we finish creating all of the widgets required and add the missing functionality to update the saving slots and properly use them. By the end of this video, our system is completely functional and the only thing left to do is adding saving support for our quest data.

Part 28

In this final episode of the series, we wrap up our slot-based saving and loading system by adding the feature that quests are saved as well. Also we set it up so that objects that were picked up are deleted when loading the game and that npcs react properly to the loaded quests (e.g. by hiding their question mark if their quest was already accepted by the player when the game was saved).

Thanks for this awesome series, and the project file. Really impressive work @GameDev005
I merged the Quest System with my game, Adrayvia, and it is also very easily merged with The Art of Combat (if you’d like to).

Keep up the amazing work!

Thanks a lot and good luck for your project!