Wednesday, March 16, 2011

Celtx for Writing Novels

A few years ago I found an open source script writing program called Celtx. My brother and I wrote a screenplay using it, and I've used it to write the audio/visual scripts that later became the promo and tutorial movies for my games. There are several very cool features in Celtx like a built-in database for keeping track of character details, an index card view that makes reordering scenes easy, and an easy PDF export. I've always thought this program was almost perfect for novels. It just needed a little more attention.

Well, it just got that attention in the new version 2.9 that was released on February 8, 2011.

Up to now, I've been using almost ancient tools to write my stories (ancient in computer terms, not ancient as in 'abacus'). First I have the actual novel, written in OpenOffice.Org's Writer. Next I have a sort of ad hoc database, stored in a multi-page spreadsheet in OpenOffice.Org's Calc -- one sheet for a chapter list and summary, one for character details, and a third for keeping track of revision history. Finally, I had a simple text file for storing notes on future ideas that hadn't found their way into the novel yet.

I've always wanted a program just for writing - one program to rule them all, if you will. Celtx gave me that for writing screenplays, but fell short for writing novels. Now they have specific novel support, and things are much better. I spent some time over the past few days copying my unedited second novel into Celtx to see how it works.

The "Master Catalog" is still there, allowing me to easily keep track of information about my characters, locations, and anything else I can dream up. This works as well as it ever did, although some of the fields they provide just don't apply to me yet (I don't spend much time thinking about parking on Mars but I imagine it's better than at my current apartment). Having access to a place that lets me store more information than a spreadsheet and in a much more readable format is a boon. It even lets you import pictures, so if you have a favorite actor you envision as your character or some concept art you can add those to your character card for future reference.

Next is the "Novel" component. This is a simple text editor with some custom header areas. This is not as robust as Writer or Word, but it is more useful than notepad because of the way it's tied in. Fill in a chapter header and you instantly have an entry added to the Chapter List on the left side of the screen. This does two things very well: lets you easily add chapter entries and allows for easy reordering. The index card view works even better in that regard, since it gives you a nicer view of your chapters and lets you drag and drop them to change the order.

This is not to say the software is perfect, but it has come a long way toward being my one-stop shop for novel writing. What I feel is missing from Celtx is this:

  1. Word Count -- I keep track just to see where I'm at and what sort of progress I'm making. You can select text and right-click on it to see the word count. Effective, but hidden. I'd prefer to see the word count in the chapter list and have an overall total displayed somewhere as well.

  2. Scenes -- Having each chapter be an item in a list and an index card is great, but each chapter is not one scene. I usually have several scenes in a chapter and would love to have an interface to let me move those around and insert new scenes more easily.

  3. Export -- I want two methods of exporting. First, a fully formatted novel ready to send off to CreateSpace for printing (using my own custom template, if possible). Second, a fully formatted novel in DOC format ready for me to send to Smashwords.

Celtx has worked well for the few projects I've created with it. This novel writing component is a huge step toward making me want to use the program full time. It's missing a few things, but considering that this is the first official version to support novel writing at all, it's an exceptional effort. It's even motivated me enough to look into writing add-ons to get the additional functionality I want.