Help with Procedural Quest Generation
Posted: Sat Dec 15, 2018 6:24 pm
Hi there,
I've been trying to wrap my head around this package for a little bit now and am confused about how to proceed. I think the sheer number of messages that need to be correctly addressed and different moving parts of the system is what is getting me. I've got some basic quests moving now and am looking into the procedural part. Although I appreciate the strength and flexibility of the way you are able to generate quests using it, I can't help but feel overwhelmed by the number of moving parts that need to be in play to generate some simple quests.
What I have right now is a simple Procedural Scout mission that is generated by an entity being in a domain. I made a custom script for the player to send a message to the messaging system that a new QuestEntity has been spotted. I'm using this if anyone is curious, it works quite well:
My problem then is how do I control other procedural quests? What I would like to do is have a progression where a Monster is first Scouted (Quest1) then if that procedural quest is completed, a quest to go fight the monster is spawned. Now, I can use the GenerateQuest() command from a script in the QuestGeneratorEntity to generate a new script, but how would I take into account my previous Scout quest is already completed? Is that even possible? Also what is the preferred way to generate a new procedural quest once one has been completed? I was looking at using an Event Listener to listen to the EventCompleted message but that seems a bit hacky?
Also, is there a way to add more specificity to quest conditions for the Procedural Quests. Although sometimes using the faction relations and all that stuff is cool it would be nice if there was a simpler way to filter it. I'm thinking of like "RedPirate was Scouted" as a condition.
Although I see what you're doing with this package, and I really want to make it work, I am finding it very confusing to do simple things. There also seems to be a gap between quests that are linear and pre-built and quests that are totally procedural built up from entities internal states. Is there a way to make a quest template? Like "Scout one of three given options, when that is completed, go fight that monster chosen in step 1". Something that would allow me to use some quest structure but have more control over what is getting triggered?
Also, just as a way of feedback, I find the heavy reliance on the messaging system for simple things (eg collect a coin) to be somewhat error prone and difficult to debug,. It would also be nice to be able to set a DEBUG message flag for a single entity rather then the whole system at once.
Thanks in advance, I've been following the development of Love/Hate for a long time and am looking forward to this new package adding additional functionality!
Best
Dylan
I've been trying to wrap my head around this package for a little bit now and am confused about how to proceed. I think the sheer number of messages that need to be correctly addressed and different moving parts of the system is what is getting me. I've got some basic quests moving now and am looking into the procedural part. Although I appreciate the strength and flexibility of the way you are able to generate quests using it, I can't help but feel overwhelmed by the number of moving parts that need to be in play to generate some simple quests.
What I have right now is a simple Procedural Scout mission that is generated by an entity being in a domain. I made a custom script for the player to send a message to the messaging system that a new QuestEntity has been spotted. I'm using this if anyone is curious, it works quite well:
Code: Select all
QuestEntity qe = collision.GetComponent<QuestEntity>();
if( qe!= null){
if (DEBUG_LOGS) { Debug.Log("Player Scouted the QuestEntity: " + qe.name); }
MessageSystem.SendMessage(transform.parent.gameObject, "Scouted", qe.name);
}
Also, is there a way to add more specificity to quest conditions for the Procedural Quests. Although sometimes using the faction relations and all that stuff is cool it would be nice if there was a simpler way to filter it. I'm thinking of like "RedPirate was Scouted" as a condition.
Although I see what you're doing with this package, and I really want to make it work, I am finding it very confusing to do simple things. There also seems to be a gap between quests that are linear and pre-built and quests that are totally procedural built up from entities internal states. Is there a way to make a quest template? Like "Scout one of three given options, when that is completed, go fight that monster chosen in step 1". Something that would allow me to use some quest structure but have more control over what is getting triggered?
Also, just as a way of feedback, I find the heavy reliance on the messaging system for simple things (eg collect a coin) to be somewhat error prone and difficult to debug,. It would also be nice to be able to set a DEBUG message flag for a single entity rather then the whole system at once.
Thanks in advance, I've been following the development of Love/Hate for a long time and am looking forward to this new package adding additional functionality!
Best
Dylan