Overview

Narramancer is a node-based scripting system where saving and loading the game state are built-in.

It can be used for branching conversations, for npc behavior trees, or to handle the over-all game loop logic.

Background

The main motivation behind Narramancer is to provide a Unity extension that can chain units of game logic into complex sequences and be able to save and load the running sequence at any given time.

What do we mean by a unit of game logic? For a simple Visual Novel game, the typical units of game logic are:

  1. Show or Hide Graphics, such as characters or backgrounds.
  2. Play a sound effect or music.
  3. Reveal text to the player, either narrative or character dialog. Wait for the player to confirm.
  4. Present the player with two or more choices as selectable buttons. Wait for the player to choose one.

A unit of game logic can be something simple that happens instantaneously or something complex that happens over realtime.

Narramancer calls these units Nodes (more specifically RunnableNodes) and has dozens of different Nodes for all kinds of purposes.

Why Narramancer?

There are several options when it comes to scripting systems and/or saving solutions. Why should you use Narramancer?

Asset or Package Disadvantage(s)
Unity In order to perform the chain(s) actions we are interested in with base Unity it would usually require manually creating Singletons or various inter-dependent scripts.
Unity Visual Scripting Unity Visual Scripting is a powerful scripting system that uses nodes but does not provide anyway of serializing what node is running.
Fungus Fungus is another Unity extension that allows scripting using either flow charts or the Lua language but also does not provide anyway of saving and loading.
Naninovel Naninovel is a powerful visual novel engine that does have saving and loading built-in, but requires the use of Nani scripts (Document and text based files using a proprietary scripting language).

(To be honest, if you are making a visual novel game and would prefer text-based scripting over node-based then we recommend using Naninovel. It is a feature-rich engine with years of experience and support.)

Advantages

Building a game with the Narramancer system as the 'spine' has two main advantages:

  1. Allowing the player to save and load your game at (almost) any given time is baked in from the start, instead of tacked on later.
  2. The flow and overall logic of your game is easy to develop, edit, and visualize.

Narramancer additionally provides other features:

  • Provides a Table of "Things"; a database of people, places, or items that your game can access and manipulate.
  • ScriptableObject focused: the main classes in Narramancer are built on top of Unity's ScriptableObject, giving the system ease-of-use and modularity.
  • Scene Independent
  • General-Purpose variables
  • Little or no coding required.
  • Rapidly develop and test ideas and logic without having to recompile or even leave play-mode.