INarEn (as in Interactive Narrative Engine) is an ambitious, long term project aiming to provide innovative tools and software components to enhance the design, development and presentation of narrative in videogames and other media.
The project is in its infancy, so it’s too early to discuss technical details. Let’s just say that there are core and supplementary components.
- core components offer low level, engine-agnostic features
- supplementary components offer high-level, ready-to-use functionality for specific game engines
Our game Nightingale uses one of each:
- the TextActing core component
- the RewindableBranchingStoryUI supplementary component
Stay tuned or contact us if you’re interested in using our technology. And if you’re looking for smooth progressive text display in Unity, check our TextMeshPro Alpha, which is used in Nightingale too.
The INarEn.TextActing module takes care of text visualization speed.
For Nightingale, the writer recorded himself reading the story, playing the characters and using the pacing he had in his mind. After that, the voice recordings were (semi-automatically) used to derive word-by-word timestamps that drive the in-game text appearance, making it more dynamic and expressive.
While it makes sense to use INarEn.TextActing in a non-voiced game, as we did, we wonder if it could be used to have “better subtitling” when voice acting is available, providing:
- “no-spoiler” subtitles, avoiding that too much is instantly shown
- a more authentic experience for hearing impaired users
The INarEn.RewindableBranchingStoryUI is a Unity framework designed to handle the display and navigation of any branching story, with very basic requirements from the underlying story engine (currently, the Ink integration is implemented, but others could be easily added).
Some core features of the framework are:
- “continuous paging” scrolling
- reader-friendly story navigation
- easily customizable visuals
- achievements system
- soundtrack management
Let’s see some highlights.
As everybody knows, text is more readable when shown in reasonably sized columns. We love books and the idea of pages, but we also think that on digital devices there’s value in continuous scrolling of text, where text breaks and spacing are semantically related to the content and not caused by physical restrictions. We also know that pc and tv screens are getting wider and wider. We tried to mix up these ideas and implemented what we call “continuous paging”, trying to get the best of different worlds.
As often in branching narrative, the user can rollback to previous checkpoints, pick another choice and see what happens. But sometimes the variations can be minimal, and experiencing multiple branches can quickly become frustrating. In our system, already read paragraphs can be skipped or played in fast-forward.
The playback automatically goes to normal speed (and disables skipping) when any new phrase is reached. This way, the reader can appreciate the differences without getting annoyed by unskippable texts he has previously read.
Everything is localization friendly and easily customizable, from the presentation of story elements (each atomic part of a interactive story) to the skinning of the UI.
A color palette system running at runtime allows quick tuning of the UI components, directly from a development build of the game, offering an artist-friendly workflow.