V3 release bringing ultimate flexibility, customization and extension

Announcing the release of version 3 of the Elm Narrative Engine!

Until now, games on the Elm Narrative Engine have all basically looked the same. That is about to change.

Game screenshots

The release of version 3 has been completely redesigned to allow for ultimate flexibility, customization, and extension. The engine can now power many different types of narrative based games.

If you can imagine it, you can add a story to it.


Why The Elm Narrative Engine?

I recently contacted Emily Short, the “Queen” of interactive fiction, to ask for some feedback on my new engine. The engine was early in development, and she had some very good points that have led to important features. But the most important question she asked me was, “Why are you making this engine? What does it do that others don’t? Why is it special?”

Good question. Let me share.


Response to IFcomp 2016

This year’s IFcomp just ended. I played some of the entries to see the different tools out there and how people are using them. The most striking realization I had was how much the visual layout and styling impacted the appeal of the game for me.


Version 2.0.0 Released

Version 2.0.0 of the Elm Narrative Engine is now available!

What is in this version?

Most of the changes in version 2.0.0 are around the new data structure for storing and defining story rules, as designed in my pairing session with Even.

I also wanted to work in a few fixes and new features for this release:


Moving Forward And The Bigger Picture

When I started making this framework, I had planned for it to be completely code-driven. I took inspiration from other code-based storytelling tools, such as Inform 7 and Ren’Py. I put a lot of attention into making a very clean and simple API for story authors.

I also originally designed the framework to be very opinionated about what types of stories it would tell, and how they would look, without giving much control to the story authors other than defining their story world and how it progressed.

In my ElmConf presentation, I casually mentioned how using Elm and a data-driven could allow for neat things, like making a visual story editor. It was an interesting point, but not one that I took too seriously.

Then five things happened:

  1. My friend kept challenging me to “open up” the framework as a general purpose story-telling tool, allowing for more customization.
  2. After my presentation I received a couple intriguing comments along the lines of, “There’s something bigger here that you have tapped into that you don’t see yet.” What could they mean?
  3. I met Greg Ziegen, who is building a RPG game engine. His requirements and approach overlaps with mine, and we spoke about the challenges and implications of making a truly data-driven framework.
  4. I was contacted by a person who made their own story with my framework, who wanted a way to embed the story engine inside his existing Elm app, which was an interesting request. I also found it very enlightening to see a story built by someone else, and in in particular, the unanticipated, but delightful customizations he made.
  5. I had the awesome opportunity to do an api design pairing session with Evan Czaplicki, creator of Elm. Besides improving the code, talking with Evan stirred up many new, exciting possibilities for a more involved and fully-featured Elm Narrative Engine.

All of these points of inspiration bounced around in my head, and eventually it became pretty clear to me where I wanted to take this.