On-screen pop-ups

Posted: 27 Jan 2021 21:37
by bmcarbaugh

Low priority sort of thing, but:

It would be nice if there was an easy way to do simple on-screen pop-up messages that appear/disappear independent of the script's main flow. Think Xbox achievements, Steam trophies, etc. (At my old studio we called these "toasts", though I have no idea why :lol: )

This wouldn't be hard to set up independently using existing features, but it's common enough in VN's that it would be nice to have it built in. I'm imagining a printer pre-fab with a few pre-made transition animations, called with an API command, like

@popup "New quest unlocked!"

And then you could tack on a few parameters to control various aspects of it, such as on-screen duration, animation type and length, etc.

@popup "New quest unlocked!" params:5s, slide-in, 1s, slide-out, 1s


Re: On-screen pop-ups

Posted: 27 Jan 2021 22:13
by Elringus

That's something I'd suggests using a custom UI for. You can show the UIs with simple @showUI Name command. The actual trigger logic for such notifications, however, is always individual for each case; not sure it's a good idea to "hardcode" them inside naninovel scripts, as it could become hard to maintain and localize (image you have hundreds on those in a finished game and want to slightly change the message or tune trigger conditions).


Re: On-screen pop-ups

Posted: 28 Jan 2021 07:49
by bmcarbaugh

Fair enough!

Although, in the interest of playing devil's advocate, I do think that the number of naninovel users who would find a feature like this useful if it were easy to do, is probably a lot larger than the number who are likely to run into the kind of large-scale localization issue you're describing. (Considering most users of naninovel, as far as I can tell, are smallish indie devs unlikely to localize their game anyway, because the time:value return isn't enough to make it worthwhile.)

At my last studio, our in-house tools/language had a command for this, and writers got a lot of use out of it just for storytelling purposes. Most of our pop-ups were one-off messages, not tied to any kind of mechanical system; just there for flavor, to enhance the story. Like, maybe you'd play a scene where you reveal a secret to someone, and at the end of the scene, there's a pop-up that says "OUT IN THE OPEN | You told Kelly the truth!" Sometimes you'd use it when an important variable is changing behind the scenes, to signal that to the player (sort of like Telltale's "Clementine will remember this" messages). Most of the time it didn't mean anything was happening under the hood at all; it was just done to highlight a moment and give it a little pizazz.

The benefit of being able to control the text of messages like that directly from the script is the same reason naninovel as a whole has a script-driven flow -- it's faster and more flexible when writing, and makes playtesting easier. If you had any kind of recurring content you wanted to appear in each pop-up message and be able to edit later on, that could easily be accomplished with a simple string variable.


Re: On-screen pop-ups

Posted: 28 Jan 2021 11:54
by Elringus

Thank you for the details and examples! I can now see such feature could actually be useful; I've added the UI and associated @toast command in the latest v1.15 (available in #download). Here are the pre-release docs: https://github.com/Naninovel/Documentat ... x.md#toast


Re: On-screen pop-ups

Posted: 30 Jan 2021 02:09
by bmcarbaugh

Wow, that was quick! Awesome ^^ Thanks for being so open to suggestions!


Re: On-screen pop-ups

Posted: 21 Feb 2021 19:44
by MikeBowe

This is actually useful to us too... thumbs up!