Best practices for quest management, hot reload, fancy text effects
Posted: Fri Jul 29, 2022 3:50 am
Hi Pixel Crushers,
I've been checking out the evaluation version and so far I'm very impressed with the package and your tutorials, while I have not used lua scripting setting up a bridge to call my own functions in C# is super powerful and makes integrating with my existing content quite easy! I had two questions.
1. In the documentation for setting up quests you have an Increment On Destroy component that triggers a Dialogue System Trigger component for the quest "Enemies". In a world where you had 100 quests, would you have 100 instances of that trigger component (spread across objects or not) or is there a more code (vs objects+components) driven way to handle those triggers? In an ideal world I would be able to interact with the quest system more through code than assigning components to every new mob that was created, especially if the quest interactions are complex. In this ideal world I'd be able to pass the data that a Giant Rat was killed and I could write the code that would know that a Giant Rat being killed was related to quest Kill Giant Rats, and that that should run its trigger to change a QuestState. I can see a way forward that involves using the lua bridge to basically replace the data side of quests, but then I would lose the nice drop down and validation from using the actual Quest system.
2. Is there a way to enable hot reloads so I can make a change in a dialogue and see the change without having to restart/play again?
3. Is there a built-in way to dynamically modify the non-text parts of dialogue text at run-time via a sequencer? Color, animations, etc. I'm guessing the alternative would be to use a customsequencer command, but I'm not sure how you would get a reference to the text you're trying to animate without some ugly looking through the GameObject hierarchy.
4. If I'm going to be use the lua->c# bridge frequently, are there performance concerns I should be aware of or is it lightweight?
Thanks!
I've been checking out the evaluation version and so far I'm very impressed with the package and your tutorials, while I have not used lua scripting setting up a bridge to call my own functions in C# is super powerful and makes integrating with my existing content quite easy! I had two questions.
1. In the documentation for setting up quests you have an Increment On Destroy component that triggers a Dialogue System Trigger component for the quest "Enemies". In a world where you had 100 quests, would you have 100 instances of that trigger component (spread across objects or not) or is there a more code (vs objects+components) driven way to handle those triggers? In an ideal world I would be able to interact with the quest system more through code than assigning components to every new mob that was created, especially if the quest interactions are complex. In this ideal world I'd be able to pass the data that a Giant Rat was killed and I could write the code that would know that a Giant Rat being killed was related to quest Kill Giant Rats, and that that should run its trigger to change a QuestState. I can see a way forward that involves using the lua bridge to basically replace the data side of quests, but then I would lose the nice drop down and validation from using the actual Quest system.
2. Is there a way to enable hot reloads so I can make a change in a dialogue and see the change without having to restart/play again?
3. Is there a built-in way to dynamically modify the non-text parts of dialogue text at run-time via a sequencer? Color, animations, etc. I'm guessing the alternative would be to use a customsequencer command, but I'm not sure how you would get a reference to the text you're trying to animate without some ugly looking through the GameObject hierarchy.
4. If I'm going to be use the lua->c# bridge frequently, are there performance concerns I should be aware of or is it lightweight?
Thanks!