Modify

Ticket #269 (closed enhancement: fixed)

Opened 9 years ago

Last modified 9 years ago

Evaluate current state of dialogue engine and extend/modify it if necessary

Reported by: barra_parpg Owned by: parpg
Priority: critical Milestone: Release: Techdemo 2
Component: meta Version: trunk
Keywords: dialogue engine, quest engine, yaml Cc:
Blocked By: Blocking: #272
Department:

Description (last modified by barra_parpg) (diff)

Meta ticket note

This is a meta tickets for all tasks that are related to improving the dialogue/quest engine. It is recommend to create more detailed tickets for the subtasks outlined in this ticket as soon as you start working on them.

Status quo

The dialogue/quest engine currently just supports a rater simple workflow as described here: http://wiki.parpg.net/Dialogue#Working_example

Aim

We would like to extend the dialogue engine to support a more sophisticated workflow as outlined here: source:trunk/game/design/Dialogue.png

Subtasks

So that task can be split up into these subtasks:

  • Analyze the current worflow of the dialogue/quest engine
  • Compare it to the more sophisticated workflow example above
  • Decide where the dialogue engine and the dialogue script format needs to be extended/modified to support the new workflow
  • Evaluate the current exception handling approach for the "back" and "end" commands and decide if there is a cleaner approach to exception handling in these cases
  • Implement the changes both to the dialogue engine as well as the dialogue script format if necessary

This is a meta ticket for the task at hand. If needed (due the complexity of the tasks), more detailed tickets for the subtasks can be created.

Attachments

Change History

comment:1 Changed 9 years ago by barra_parpg

  • Description modified (diff)

comment:2 Changed 9 years ago by barra_parpg

  • Description modified (diff)

comment:3 Changed 9 years ago by barra_parpg

  • Description modified (diff)

comment:4 Changed 9 years ago by barra_parpg

  • Component changed from scripts to meta
  • Description modified (diff)

comment:5 Changed 9 years ago by technomage

  • Status changed from new to closed
  • Resolution set to fixed

(In [668]) Ticket #269: Patch by Technomage.

  • Working prototype of the redesigned DialogueEngine? for the upcoming Techdemo2 release; major redesign of the existing DialogueEngine? and YAML dialogue file syntax.
  • Moved the redesigned DialogueEngine? class to the more descriptive dialogueengine.py module; the DialogueEngine? is now a singleton object and provides all functionality through class methods and attributes, and thus should not be instantiated
  • Abstracted the data structures used to store dialogue data away from the YAML data structures; the relevant classes are stored in the dialogue.py module
  • Abstracted the dialogue commands/actions from the DialogueEngine? code to make modifications and maintenance of dialogue logic easier; the relevant classes are stored in the dialogueactions.py module
  • The PyYAML loader has been replaced with a more robust YamlDialogueParser? class (see the dialogueparsers.py module) that interfaces with the new dialogue data structure classes and supports the new YAML dialogue file syntax; an OldYamlDialogueParser? class is provided to support reading the old Techdemo1 syntax
  • Removed the existing dialogue validator; runtime dialogue validation is not yet implemented
  • Added the convert_dialogue script, which converts dialogue files in the old Techdemo1 format to the new format; all existing dialogue files have been converted to work with the new parser
  • Added two support modules for the new classes and script: ordereddict.py, which provides a Python 2.7-like OrderedDict? class for Python versions 2.4-2.6; optionparser.py, which is a simplified command-line option parser for writing scripts as an alternative to argparse and optparse
  • Updated the dialogue_demo.py script to work with the new DialogueEngine?
  • closes #269

comment:6 Changed 9 years ago by technomage

  • Blocking 272 added
View

Add a comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.