Tuesday, October 26, 2021

We Are Now Leaving NarraFirma (for a while)

As you may know, my husband and I started working together on NarraFirma, our open-source software for participatory narrative inquiry, in 2014. We put out our first release in October of 2015. Since then I have tried to work on the software for at least a month every year. All in all, I would estimate that we have put between four and five person-years into the project.

Over the past few weeks, as I drew my latest pulse of work on NarraFirma to a close, I found myself running out of low-hanging fruit. The last three things I tried to do were too hard and/or too system-breaking to finish. So I decided to put all of them off for a while, at least until I (or we) have enough time and/or funding to work on NF again next year. 

(Of course, if you find a bug in NarraFirma, please let me know right away.)

These are the three fruits I could not reach.

Not doing: ODF export

I wanted to give NarraFirma users the option to write catalysis reports directly to Open Document Format (ODT) files, because most word processors cannot process HTML files very well. 

I looked into this, and I even got a little way into implementing an ODT export function. However, when I converted one of NF's reports to ODT using pandoc, I realized that it was a waste of my time to reinvent the wheel. Pandoc is free and easy to use, and it converts NarraFirma's HTML reports to ODT or DOCX formats quite nicely. As long as pandoc exists, NF has no need to generate anything other than HTML.

I should have tried pandoc a long time ago. I can't imagine why I didn't. (Three-years-ago-me was so stupid.) Anyway, I recommended pandoc on the help page and moved on.

Not doing: Survey piping

I wanted to support conditional question asking (sometimes called "piping") in NarraFirma surveys. I spent quite a bit of time trying to get this to work. But in the end I decided to back out and abandon the effort because it was a bad fit with NF's surveying architecture. To implement it, I would have to make much larger and deeper changes than I am comfortable making right now. 

Also, I'm not sure that conditional questions are all that important to NF users. Or at least they are not important enough to risk destabilizing a part of the software that needs to be rock-solid. Maybe I'll revisit that decision someday, but right now it doesn't seem worth doing.

Not doing: Multiple sets of answers per story

If, back in 2014, we had thought of having multiple sets of answers per story, and we had worked that through the entire data structure, it would have been so easy to implement a survey that showed people stories (told by other people) and asked them to add their own interpretations. Sadly, we did not think of that possibility at the time. Or maybe we triaged it out, I don't remember. But in any case, NF expects there to be exactly one set of answers for each story.

I spent some time trying to find a workaround for this, because I really would like to support multiple interpretations of each story. However, I decided, again, to put it aside for now. Not only would I have to write a converter to transition legacy data into a new structure - that's doable - but I would have to change a lot of things about how graphs and statistics work. So that idea will have to stay on the back burner for a while longer.

Did: Better clustering

After failing to accomplish these three tasks, I wanted to do something to round out this pulse of work. So I looked around in NarraFirma for some ugly, unpleasant thing I could improve. 

I remembered that people have often had trouble with the clustering interface, where you group your interpretations or observations to create sections of your catalysis report. (The same interface is used in the planning part of the software as well.) 

I had drawn cluster names with very large bubbles. Reasonably, people tried to place their items into the bubbles, as if they were containers. But in fact, it was not necessary to do that, because NarraFirma determines clustering based on distances between center points, not boundaries. 

So I shrunk the cluster names (now they no longer look like containers) and drew lines that connect items to clusters. This should make the process more clear.

I also replaced the line of buttons below the clustering space with one of my "things you can do" lists, which (I think) are clearer and more compact. And I replaced the brute-force method of setting print orders by hand with a simpler method. Ugliness reduced; usability improved. You can read more about NF 1.5.2 on the NarraFirma blog.

If you have any wish-list items for NarraFirma, drop me a note to let me know. But as of now, NarraFirma will go back onto the back burner until next year.

Next stop: Narratopia

Now I plan to turn my attention to another long-neglected project: Narratopia. As you may remember, the last time I worked on "the conversational story game," I expanded it into a larger and better version. However, its price doubled, and, well, people have pretty much stopped buying it. 

To be clear, I have never made any money on Narratopia sales. My "profit" has always been less than a dollar per game. However, I do want people to be able to afford to buy the game, even if I make nothing (or very little) on it. So I plan to go back and redesign the game to fit into a smaller box and cost less. TheGameCrafter.com, the print-on-demand service I use to publish Narratopia, has some new options, and I have some new ideas for slimming down the materials while keeping the gameplay intact.

The second thing that has happened with Narratopia over the past few years is that several people have written to me about creating translations of it. As I recall, the proposed languages have included Russian, Japanese, Vietnamese, and Italian. However, nobody has yet finished any of these translations. That is mostly because in Narratopia's current state, it takes a very long time for both contributors (the translator and myself) to change the relevant files. Sometimes people have not had time to do the translations, and sometimes I have not had time to deal with translations.

So I intend to transition the files that make up Narratopia to a different format in which I can easily put together a new translation, based on something like a spreadsheet of alternate texts, in an hour or two. I might use squib, or I might write my own scripts. I'll see how it goes.

If you have played Narratopia, ever, and you have not told me about your experience, please tell me what the game was like for you.

I played Narratopia just a few weeks ago with some visiting relatives, and I was pleased to see that I did not feel the need to make any major changes to it. (Maybe a few tweaks to the instructions.) However, having said that, I would love to hear your recommendations for improving it as I begin to work on it again.