Narrat priorities after the jam

Hello :narrat:

After playing various jam games (and mostly when making my own), I’ve been taking notes on the most frustrating issues or things that should be fixed or improved that would benefit most games.

I’m looking for suggestions

The below is what I have in mind for useful things to do next, but I want to know if there are things you think are worth taking care of that I haven’t thought of.

Short Term

Here’s what’s currently in my little todo list of things I’d like to take care of soon in the short-ish term:

  • Fix the issue with .selected being highlighted when not using kb/gamepad (it should switch between being on and off if a gamepad or keyboard button is pressed)
  • Fix spacebar using the first selection and ignoring ifs
  • Preload character portraits
  • Add a way to track choices in save file so we can grey visited choices (probably should be an optional flag on choices)
  • Add a way to conditionally disable but not hide a choice
  • Updates to the game template with a better default electron setup, steam support and release scripts (I have done those things on my own games, so it’s just a matter of updating the template really)

Longer term (harder to do / less important)

Other things I have in mind as nice to have but more work and probably for more medium-long term:

  • UI to show keyboard/gamepad shortcut icons as appropriate and update depending on what’s been pressed like
  • Video preloading (this seems technically tricky so I’m not sure yet how it will go)
  • A way for the game to automatically find image urls hardcoded in scripts and preload them (right now they need to manually be added)
  • Instructions on how to use a custom version of narrat and easily develop it alongside your game for people who want extra customised games and need to change engine code
  • Display setting system already setup in the template so games building for desktop can have a menu for fullscreen toggling etc.


I also always want to improve documentation so I’d be interested in knowing if there are things you wanted to know but couldn’t find, or had difficulty finding.

Also remember you can write documentation yourself whenever you want. Documentation pages have an edit button at the bottom, and if you go to the docs folder of the narrat-engine github repo you can make and propose changes to the docs all by yourself, including adding new pages. They’re written in markdown files so it’s very easy to do.


More support for custom Narrat versions would really be appreciated!

There’s no support needed really you can fork the engine at any point and use that in your game

More about documenting the workflow.

Thing is, if someone knows web dev and wants to do that, they probably also already know how to do it.

Outside of that, the plugin system can do a lot without needing to run a custom version of the engine

It was mentioned in passing on the Discord, but I’d like to bring it up properly here: Customisation of the standard text / formatting / punctuation used in elements like the continue button, the format in which skill checks and character names are displayed, etc would be good to have. e.g. Altering whether choices are displayed as numbered lists or not, replacing the " - " separator for dialogue with different punctuation, and so on. Currently it’s difficult to tweak these things from their defaults.


2nding this, more configuration for “basic” elements would be great. (For example, the one that came up for me as a “could be nice” when I was writing the game was representation of skill difficulty, which I’d love to be a percentage based on that +/- rather than a simple +/-.)

Minor one that I’d personally love as well: better/more options for commenting code. It’s less of a problem for using it normally, but block comments and non-inline comments would be extremely handy for writing functions/etc.

There are a few things that I would love to see that might be useful to other folks also!

Cutscene Mode
For my purposes, all this would need to do is hide the HUD and UI elements and print the text as subtitles. I think this would be a useful feature because it’s the simplest way I can imagine doing something like a cutscene–just placing background images and dialogue text like any other part of the script, but having it display differently on screen.

My favorite visual novel engine, Naninovel, has a few different built-in text printer options like full-screen kinetic novel text, standard visual novel format, dialogue balloons, and I think text/SMS messaging between characters, and I think having more out-of-the-box options for dialogue and character portrait positioning in Narrat would rule in general.

This is a variant on the existing quest/item/achievements tabs, but set up to display longer-ish lore entries and maybe an image. My ideal version of this would be able to incorporate conditional additions or changes within the entries so that if, say, the reader encountered a really cool rock, the codex entry for it might initially say it is commonly used to make pencils. Then later on, after the reader discovers it is actually god’s blood, the codex entry would say something about the horrible consequences of eating it instead of or in addition to the pencil bit.

My thinking was that the information could be in its own dedicated script, but that’s mostly an ease-of-organization idea; I have no idea how hard it would be to set something like this up from a programming perspective.

I am currently planning to use WorldAnvil for this, but I get a little nervous about external dependencies. As great as WA is as a platform, I’ve seen a lot of really cool web-based projects and archives break over the years because they depended on links that stopped working. So having some way to set this up in game would be awesome.

Thank you for all your hard work!

1 Like

You can do modes by using themes like in the theme switching demo I made, which isn’t a first party feature but more the general ability to switch between different layouts and stylesheets, so it allows you to do a lot of different things.

Having some default included modes (and also first party support for themes) would be good though.

As for codex type stuff, I’ve had that in mind, though it’s a bit trickier because how you present this kind of feature is very game specific. but it would be nice to have something. In the meantime, it’s definitely doable with a plugin that adds a codex tab and stores all the info