I am interested to hear your ideas on this topic.
The idea is to design a flexible story plotting system using Groovy scripting language.
Each game level has a piece of story that can be in continuation of a previous level story. I was thinking to create a “PlotScript” interface so that each game level has a PlotScript implemented in groovy.
A PlotScript consists of multiple PlotPoints. A plot point is a physical place on the map, that when players go there the plot point gets activated. As a result, it can trigger a cutscene on players, enable dialogues on NPCs, give tasks to NPCs or activate a quest. (also I may use it as a save point, so when players failed the mission they will get started again from there )
Inputs of plot script are the events that are published from the game, for example, dialogue events, quest events, …
I can listen to those events in plot script and do something on the NPCs, for example, give them some tasks,…
I am interested to hear your ideas and your suggestions about this.