Quest Patterns for Story-Based Computer Games