The key insight that the original Addventure had, though, that isn't present in Extend-a-Story (or in most other addventure-like software) is to leverage the web server and avoid using a database for the most common operations. That leads to a much more stable, performant, and extensible system which can handle the huge load that a site like BEA puts on it, as well as being trivially installable without requiring, say, mySQL to be presintalled. I think it's safe to say that the BEA Addventure is now the largest installation of an Addventure anywhere on the web, with nearly a million episodes allocated and somewhere around 200,000 written. The key design point is that reading an episode should take no more effort and (hopefully) no other processes than literally a web server returning a static file: this hews to the idea that reading episodes is 99.9% of all activity on an addventure, so it must be optimized for that activity. Incidentally, I'd be curious as to whether that assumption is true - some trolling through the Apache logs might give us some raw measures.
I've had some thoughts rattling around in my brain for a couple years now about a major rewrite; basically starting the software over again from scratch and just maintaining some of the key design principles while significantly improving the interface. I'd make a point of writing clean and documented code, as well (probably Perl for maximum portability).
Any thoughts as to a PRD for it? Someone wanna start enumerating their wish list for a new rev of the software? Here's a few of mine:
- Borrowing from CYOC, the idea of having an author "suggest" a *few* possible following titles without actually making them be "true" forward paths yet?
- Certainly maintaining the difference between completed children and uncompleted children is key, whether the choices are merely flagged, as today, or literally segregated.
- Obviously allow some number of extra choices to be added at (arbitrary?) points in the future, rescind the limit of 5 (or raise it a lot, but only for registered users).
- Separate login levels with separate authoring rights (public can author some stuff, but you have to login to do things like edit your episode)
- Formalize the "storyline" notation that has grown up organically in the addventure by explicitly assigning an episode to a storyline. Allow only "privileged" authors to create a new storyline with a code
- More formal support for searching within the addventure (leverage Google?)
- Much better tree navigation, especially "up and over" type of motion
- Allow rating/ranking of episodes
- Even tighter integration of episode comments
- Places for curated selections by administrators of various types
- WYSIWYG editor option
- Better mid-air collision detection and resolution for episode creation