In this second installment of Programs I Need That Apparently Do Not Exist, I’d like to talk about the second issue of scale that makes my prewriting hard. (Fellow prospective authors, feel free to chime in with suggestions for additional desirable features, or any other comments.) In my last post on the subject, I talked about the problems of designing a world of immense size in rich detail. But even if I had the ideal program to solve that set of problems, I would be running into another.
I have a bank of characters that I intend to write about. Most are, to varying degrees, based on people I know, and most of the story I want to tell is the working out of the implications of the simultaneous appearance of nearly all of them in one place at a pivotal point in my world’s history. Because of this large cast, the nature of this story, my Tolkien-esque insistence on getting all the details I care about right, etc., I am trying to map out an outline of each character’s history in addition to the outline of the world’s history, itself already multi-threaded. But sometimes the characters’ stories intersect with each other, and I also want to avoid having too many things happening too close together when they aren’t related.
And here I run into trouble. When I first started outlining things, back in middle school, I managed passably well with a spreadsheet, since I used it primarily from hard copy anyway. (That version also had wars lasting centuries and battles lasting decades, even before space travel, but that’s beside the point.) Once I got to college, I converted that spreadsheet to a text file, which I then began annotating with individual characters’ events. This works well enough for keeping track of individual items (where was so-and-so when? When was that event?), but fails abysmally at managing story arcs, pacing, and the essential task of creating the histories of new characters.
I need a program with several very different features. The first set of necessary features: I need to be able to create and manage a large number of characters and a very large number of events, each involving any number of characters and related to other events. I need to be able to view these events on a timeline (really, multiple timelines) without confusing overlaps. I need to be able to select and view a subset of the events based on any of a number of criteria: characters involved, related to a particular thread of events, around a certain date, etc. Ideally, since a lot of my story ideas deal with characters’ going through education, military experiences, and semi-feudal politics, the program would also let me manage changes in characters’ ranks and titles over time, and would let me define dates in my universe’s calendar.
A second set of necessary features: Since I tend to outline from the top down, I need to be able to define an event in very general terms (“siege of Luddington,” for instance), then come back to it later and replace it with several other events (“archers attack defenders on the wall,” “infantry storms the gate,” etc.), not necessarily all in one linear sequence. And I need to be able to make this kind of change to everything in the whole set of events, repeatedly (i.e. I start with what I think of as outlining the story into books, then I outline each book into sequences, each sequence into scenes, and each scene into actions). Once I’ve finished with that, I want to be able to bring events into one (or a few parallel) linear orders of my choice and, ideally, start writing right there.
By now it should go without saying, but the program needs to run on Linux. Unless it otherwise perfectly met my needs (even the ones I can’t think of), it needs to be free software (open source). And, as should be obvious by now, it needs to be able to handle quite large datasets without complaint (and, more importantly, without losing any data, because I wouldn’t notice until I needed it).
There are some free software programs that are designed to help novelists organize their stories. I looked into some of them (cursorily, so I might have missed something) and found them generally lacking, primarily because they assumed that no one would have such a complex web of narrative threads as I do, and their idea of “character management” is generally “a box to write a biography and a picture.”
I started writing something to meet some of these needs last summer, but got sidetracked into other things. Writing this would be somewhat higher priority than the mapping program I described in my previous post, but is still low on my list of code-writing priorities; my strategy game Strategic Primer (the pen-and-paper/play-by-email/human-interaction version of which is still looking for players!) and a music organization program for my parents are both higher coding priorities, and as far as writing goes I still have lots of other background to do (answering a set of questions for help in worldbuilding by Patricia C. Wrede, writing physical descriptions and biographies for all the characters, etc.) that may take me years. But I’d still like to have a program like this so I can work on character histories from time to time.