This release focus was on the engine's stability, making a lot of improvements on the rollback function and the way the engine's state was managed, saved and then loaded. If you had removed the back
function from your game because of its bugs, we invite you to re-enable it and give it a try!
Some changes are required in your index.html
and options.js
file for this release so please read the upgrade instructions below.
Download Link: Monogatari-v2.0.0-beta.15.zip
Remember this is a Beta release meant for testing and bugs are expected, everything is also prone to change a lot. If you're using it to release a game, you should warn your players as chances are it will eventually break.
📰 Release Change Log
🌟 New Features
- The
wait
action can now be used without providing a time to wait, causing the game to wait until the player clicks again. This is a very useful replacement for empty dialog strings ''
when you don't want the text-box to be shown if it was hidden.
- The
clear
action can now be reversed.
- NVL dialogs are now fully reversible.
- The
particles.js
library has been replaced with the tsparticles
library which is under active development. The change doesn't affect the functionality of the show particles
action.
- The
Input
action now allows showing different types of inputs, timers, default values and more. You can check all the new features in the documentation.
- A language selection screen is now built-in and will be shown automatically for players that haven't chosen a language on a multi-language game. You can read more about it in the internationalization documentation.
- The
show canvas
action, while not new since it has been available since pre-alpha stages, has finally received a much needed update making it ready to be used. Its documentation is a work in progress.
🐛 Bug Fixes
- When rolling back, the wrong character sprite or background might show up since the action variables didn't update correctly.
- The
scene
action would save all images in the screen instead of only the "relevant" ones, causing it to duplicate images if the developer had added some custom UI.
- Position classes (
left
, right
, center
) would not work correctly with the show image
action.
- Fixed state and history management (Used for rollback and save/load functionality) for these actions:
show/hide character
, show/hide scene
, show/hide image
, show/hide video
- Paused audio media (
music
, sounds
, voices
) would start playing after loading a save slot.
- The color of the character's name in a text-box would not reset itself if a character with no specified color spoke after one that did have a color.
Placeholder
action caused an error when used with actions that weren't generated dynamically.
- Dialog log could have duplicated dialogs if a
choice
that contained a dialog was rolled back.
- Trying to roll back when the player was in the very beginning of a game caused issues with the state of the game.
- The old date format used for v1 save files was not parseable by the moment library so it showed a
Invalid Date
label.
📦 Misc
Dependencies have been upgraded to their latest version
The npm package has been updated to this latest version
A lot of new automated tests where added
The text-box is no longer using a class to specify the CSS for NVL mode, instead it now uses an attribute mode
, which means.
Images hidden with the hide image
action now behave like characters and the element does get removed after the animation ends instead of just being "invisible".
How To Upgrade
If you're on the v2.x.x (nightly) version
If you were already using a previous release from v2.x.x
, then upgrading is pretty simple, replace the files in your engine
directory with the new ones,
Text-Box Changes
Since the text-box
no longer uses classes to indicate the NVL mode, if you had added some custom style for it, you'll have to change your CSS selectors:
/* Instead of this: */
text-box.nvl
/* Use this: */
text-box[mode="nvl"]
Language Screen
A new language screen component was added and you need to add it to your index.html
file as shown here:
<div id="monogatari">
<visual-novel>
<language-selection-screen></language-selection-screen>
<loading-screen></loading-screen>
<main-screen>
<main-menu></main-menu>
</main-screen>
<game-screen>
<dialog-log></dialog-log>
<text-box></text-box>
<quick-menu></quick-menu>
</game-screen>
<gallery-screen></gallery-screen>
<credits-screen></credits-screen>
<load-screen></load-screen>
<save-screen></save-screen>
<settings-screen></settings-screen>
<help-screen></help-screen>
</visual-novel>
</div>
There's also a new setting LanguageSelectionScreen
that allows you to enable or disable this new screen, you can add it in your options.js
file as shown here:
// Change to true for a MultiLanguage GameScreen.
'MultiLanguage': false,
// If the 'Multilanguage' setting is set to `true`. This will enable a
// language selection screen that will be shown before the asset loading
// screen. If set to false, the loading screen will appear first instead and
// players will have to change the language from the settings screen.
'LanguageSelectionScreen': true,
// Music for the Main Menu.
'MainScreenMusic': '',
If you're on v1.4.1 (stable) or below:
If you are planning to upgrade from a game made with the v1.4.1
release, we recommend you reading the Upgrade Guide