Small fixes, changes and feature requests for October

:narrat: Narrat requests for October :woman_technologist:

I’ve decided to try something new, where I make a thread for people to request things that are small/medium effort to implement, and relevant to current projects

:question: Is there something about narrat that annoys you or that you want to change?

Ideally, requests should be:

  • :gift: Something that could benefit other games too: If you want a new thing, try to think of a way to generalise it.
  • :gear: Something that you need for an active project: I’d rather help active projects with issues/new features than make theoritical features that may end up unused.
  • :memo: Ideally you should have an idea of how you’d want it to work practically, if it’s a new feature or change.

What qualifies

Anything goes, especially if it’s not too big. I believe there are lots of small improvements that could be made and would improve the quality of games and/or make it easier to work with narrat.

If you’re not sure how hard something would be to implement, feel free to suggest anyway.

How to request something

Reply to this thread, explaining what you want:

  • If it’s a bugfix, try to give details about the issue, including error messages etc if a technical issue
  • If it’s a new feature, give a proposal of how you’d like it to work (for example: sample config or made up script example for how you’d imagine using the feature)
  • If it’s a QOL improvement: Give whatever info is relevant and explain why it matters if not obvious
  • If it’s a change in how things work: Think about how this change could break existing projects or games if implemented, and how to make said change in a way that avoids disruption to other projects

More context

While I have some meatier pieces of work in mind that I progress on over time, every now and then people have small requests or issues that don’t require much work to fix. It can be more efficient for me if I can focus on what’s relevant to people right now, and fix a bunch of it at once.

Some of them also sometimes fall under the radar as I forget them (especially if they were just said on Discord), so threads like this one can be a good occasion to get a fresh list of ideas to focus on.

Of course, there is no guarantee of me implementing anything, as it will depend on feasability, ho much time I have, and other priorities

1 Like

A small Bugfix/QoL change (not sure if current behaviour is intended or not):

Before 3.3.0, if you changed scenes, the dialogue box would continuously stay on screen. After 3.3.0, this was no longer the case and the dialogue will “blink in and out”, which disrupts the visual flow and is very distracting when playing (to me).

If this behaviour was intended I’d like to request a toggle for this behaviour, and if not, I guess I’m reporting a small bug.

Thank you for your continued work on the engine, I’m looking forward to see how it develops :]

Yeah, I should look into fixing this soon because it affects a lot of games.

It gets weird in some situations. The engine tries to be clever to figure out when to close the dialog box, but it turns out that it’s not really possible to do it in one automatic way that works for all use cases.

The current logic is:

  • If there’s a script currently running, keep the dialog box open
  • But if a transition is happening, close it
  • when no scripts are running, just close it

The problem is some games don’t actually want that to happen. I’ve been wondering about the best way to handle whether the dialogue window should be shown or not, and what I’m thinking is:

  • Having a config section for it, to control the behaviours above
  • Also having some functions to manually open and close it, so games could take full control of that if needed.

We also have a similar problem with buttons on screen. They’re made to stop rendering during transitions, but the result is they suddenly “appear” in a glitchy-looking way when the transition is done. I’m thinking of always rendering them but simply making them unclickable during transitions, and giving them some extra css classes during those animations so the game can apply styling to make them semi-opaque, greyed or whatever.

1 Like

Working on the script for my current project, I’ve noticed that I’d really like a screen shake feature. (Working like in other VN engines, it’d be some kind of an impact animation playing at the start of a new line, with dialogue box and screen both shaking/vibrating for a short moment)

I’ve checked the discord and text animation is possible, I’m guessing a screenshake is technically possible to do by moving the screen, but I’m not sure about the textbox or text itself, so I figured I’d mention it here!

You can probably do it with a css animation without needing to modify narrat, although having a feature for it could be nice too.

Depends if you want to shake the whole game, or specific elements, although now that I think about it, it could be easy to have a generic screen shake system that can then be applied to any element…

If you want to experiment with it in your game I can help you set something up in any case, if I don’t get around to adding it in the engine

1 Like

This is now fixed in 3.4.0 (it shouldn’t do it by default anymore), but I also added new ways to control all those behaviours

There’s now a whole animations feature which includes built-in screenshake.
narrat animations

1 Like