C++ quest system

Hi everyone

I’m currently working on a quest system, but I’m wondering which master class the QuestManager will be derived ?
and the same for the Quest object a regular Object, Actor or none of these ?

There is no Parent Class that would be good to use for a quest system at all or? :smiley: I mean, UE4 is not directly made for questing games. So i guess you can just create a new class and use that without a specific parent.

But you could also just take the actor class, to use the tick for it.

couldn’t quest verification be triggered by events? instead of every Tick?

The quest manager needs to be spawned do to tick verification on the state of the quests, so i would say to derive both QuestManager and Quest from AActor. Put QuestManager (that has a TArray of Quest) on the game mode or player state, to be accessible anywhere.

There are many ways of doing things, i still haven’t done a Quest System, so i just said that on top of my head. Say your quest objective is to go to a specific location, you can either be checking every tick if your actor location is on the desired location or put somekind of actor that has a collision box that when entered it will trigger an event to mark the quest as complete. In terms of placement the character itself might be also a good place to put the Quest Manager, but it depends on the situation. If it’s a multiplayer game and every player have the same quest it might not make much sense to have it there.

to me the questmanager will be like an invotory manager, directly linked to the character

Finaly I have creat an ActorComponent for the character, my game will be a single player game (more info here : http://steamcommunity.com/sharedfiles/filedetails/?id=328517580)

If it’s single player i would say to put it on the Character then. In terms of implementation it’s up to you, to make it more event driver or more tick driven. See what works best with your code structure.

I have 2 other objects : Quest and Objective

a quest is made of a lis of objectives, it’s a good Idea to use uobject for this.

for updating quest or objectives i will use directly the quest manager

So is your question answered? :stuck_out_tongue: