Now... back to Nimrod. I started last night to design how I wanted the quest system to work. The game I hopefully will develop with the Nimrod editor is not going to be a run-off-the-mill role-playing game. It's going to be more of an action adventure type game with a bit of freedom and quests (I'm a big fan of Another World and Flashback games). Well, that's the idea anyway. I think a quest should be able to have many different endings depending on how you complete the objectives. The ending is derived on the fly in a chain like fashion. The chain consists of nodes, each pointing to the resulting node of the actions done when the objectives of the node have been met. An example:
With this approach a quest can have many different branches and endings depending on your actions. The quest node class looks like this:
* Node name
* Node description
* Node completion status
* Previous node
* Next node
If previous node is null that means it's the root node. If the next node is null that means it's the tail node. The chain is built on the fly depending on the completions status of the node.
Does this idea sound like it could work? I thought I'd implement this using scripting to some degree. Creating the nodes from a script depending on how the player performs the objectives, a C-function which creates and handles all the current quests and nodes. Adding or deleting nodes whenever told to do so by the script. That was a bit hard to explain but I hope I got through ?
Right now a script can be created and executed within the main loop of the editor. I've begun to work on the GUI which will handle the scripts. The screenshot to the right shows the interface.