An event-based game in which the story in which events can happen in an order that is largely determined by the user. In such a game, each plot arc is broken up into events, and the choices that the user makes may mean that he's on event 1 of one arc while on event 7 of another. (Or something... use your imagination.) Compare this to traditional visual novels, which have an order that is largely fixed.
Anyhow, DSE consists of two modules. The first is a working day planner. In concept, this is similar to the one found in the Ren'Py demo, but this one works, and can be configured by code at runtime. The day planner assigns values representing activites to variables representing periods.
The second element is an event dispatcher. This code chooses which events are run, based on a number of conditions that are associated with the event. Some of these conditions are:
- Arbitrary python expression, which can be used to check that a specified activity is being undertaken, that a given period is underway, that stats are above or below certain values, or whatever else you can think of.
- That an event has not yet executed. In general, events that advance a plot should only occur once.
- That events that our event depends on have already occured. This ensures that events occur in the right order.
- That no higher-priority event will execute. This is useful for giving default events that only occur if special events do not.
A DSE demo game can be downloaded from:
http://www.bishoujo.us/renpy/dl/dse/1/dse-1.zip
Unlike the Ren'Py demo game, the DSE demo game is actually a fairly-full-fledged game, complete with 3 endings and 2 winnable characters. It doesn't use any graphics, however. It was made in a morning, so it's not the world's best game... but it might be interesting for people who are jonesing for new games in the post NaNoRenO lull. If you think you can do better... you're probably right! Why not try!
This is still an early release. There's no documentation except for the comments in the sample game, and there are probably bugs. (I caught one while writing this post, that'll be fixed in the next release.) I'm sending it out into the wild so I can get some feedback, and improve the next version... so send some feedback!