Dev notes

This game was made 4 years ago to demonstrate the new flexibility of version 3.0.0 of the Elm Narrative Engine.  (That engine is now up to version 6.0.0 with many expanded feature).

The Elm Narrative Engine is a tool for building  non-linear interactive story games, by creating a manifest of game entities, and a rule-book to describe how the story world should change as the player interacts with it.

The two main features of version 3.0.0 that are demonstrated here are custom views, and a shift to the Entity Component System pattern.  These features allowed games made with the Elm Narrative Engine to be much more flexible, extendable, and embeddable into other systems.

To demonstrate custom views, I made the same game in multiple formats, including this top-down rpg style, a 2D point and click, and a text-only style.  This top-down version was very interesting to make because it involved bringing together the narrative engine, Phaser (a 2D javascript game engine), and Tiled (a 2d tile-map editing program and format).  This was the first time I made tile-maps, which was a lot of fun.

The most obvious thing about this version is how it is a completely different game than standard games made with the Elm Narrative Engine.  That is because it is actually a Phaser game.  The ECS pattern allowed me to tie the two engines together, by referencing the entity ids from the narrative engine in the Tiled maps, which were imported into Phaser, which could reference those ids upon player collisions with intractable objects, which would then be sent to the narrative engine to update the world model according to the rules, and return the story to show, and any changes to any entities for Phaser to apply.  Realizing that this was possible blew the possibilities of the Elm Narrative Engine wide open.

The attached YouTube video is the presentation I gave at ElmEurope 2017, which goes into much more detail.

Leave a comment

Log in with to leave a comment.