May 5, 2017

Monogatari v1.3.1 And An Engaging Community

Even though Skrifa, my note taking app is a project designed for a wider audience (everyone needs to take notes), Monogatari is the one that truly makes people engage. Just last year, Monogatari got its first contribution on GitHub, and since it was released I've also been contacted by some people that are working on games using Monogatari. If you don't already know it, I love helping people so I've tried to help all this people as best as I can, providing personalized support, tutorials, snippets and everything I can do so they can just create an awesome game.
Now, many of the ones who contact me for help asks me if it's ok or that they don't want to waste my time. To everyone who asks me or tells me something like that I answer: Helping is never a waste of time, specially if I'm helping them with some of my projects, that is what I am here for, I didn't create them just to tell you I can't help you, it's quite the opposite, I created them thinking it may help someone and believe me, I'll do whatever I can to help you, never think of it as a waste of time, it is something good for you and for me.
Has it worked out? Has someone actually released their game? The answer is yes! I know of one that was released, the first Monogatari game made public (at least to my knowledge) this game is Arizona 9.

Arizona 9 (arizona9.com)

Arizona 9 Title Screen
A casual game that reworks the event of Brisenia Flores’s death at the hands of border vigilantes into a hopeful tale.
This game was created by a team of people:
Artists
Designers
Programmers
And to everyone of them I have to say thank you, for choosing Monogatari for your game and giving it it's first game!
If you want to try it out, you can do so in their web page, you'll notice it has three levels, in order to play the visual novel level, you'll first need to complete two puzzles. 

Arizona 9 Level Screen
Once you do that the third level will unlock and you'll be able to play the novel. I could just give you the link to the novel level but hey, someone spent a lot of time in this so why not play it as it was meant to be?
Arizona 9 Novel Screen
As I said, Arizona 9 is the first and only game to my knowledge, if you know about any other I would love to know about it!
Not only games are the product of this constant interaction with people trying out Monogatari, as I said I also get benefited from it because they are really helpful when it comes to find bugs or think about new features or how to improve the engine, thanks to all this, Monogatari v1.3.1 has just been released.

Monogatari v1.3.1

Since last year, someone who I will just refer as Cesar has been in contact, he's been creating a game and wanted some hints on how to do some of the things he needed. Along the way, he found some bugs, reported to me and they were fixed, also features he needed were just added in this version, this is why this update is really all thanks to him, reporting bugs and requesting features is not something everybody does, many would have just given up at the first sight of a bug but this proactive behavior is what makes FOSS great, the ability to get feedback and help not just from other developers but from other users as well, the opportunity of building a real community around something.
So, Cesar, if you read this I just have to say thanks a lot! Hope we'll see your game around pretty soon!
This was released as an update to the 1.3.x series, mostly because what's changed are bug fixes and dependencies updates but some new features were added as well!

New Features:


Dynamic Side Images

Previously, there was a "Face" property that you could define inside a character and it would be shown as the side image for that character, but what if you didn't want it in every dialog? or what if you wanted to show a different one depending on the dialog you are displaying? Well, this is now something really easy to do, first, a new "Side" property can be defined in your characters like this: 
"e":{
	"Name": "Evelyn",
	"Color": "#00bfff",
	"Directory": "Evelyn",
	"Images":{
		"Normal": "normal.png",
		"Mad": "hmph!.png",
		"Doubt": "uhh.png",
		"Disapointed":"ngggg....png",
		"Happy": "hehehehe.png"
	},
	"Side":{
		"Smiling": "smile.png"
	}
}

The "Side" property behaves just like the "Images" property, it allows you to define the images that can be used for a specific character. To use it, you'll be able to do it in a per-dialog basis. meaning in the dialog you can now define what side image will be shown next to it, in this example, you would do something like this:
"e:Smiling Hey this is pretty cool right?"

That means, in a dialog you can now say what character is talking and what side image is showing just in a character:side-image format, this example would produce something like this:
Dynamic Side Image


Infinite Character Animations

Added support for infinite animation loop when showing images or characters, as you may know Monogatari uses the CSS Animations library for the character animations, as it turns out this library has an option to make this animation infinite, meaning it will be looped. When showing a character you would do something like this:

"show e Normal with fadeIn"
And that will show that character with the fadeIn animation but if you wanted that fadeIn to loop, it's as simple as adding the word infinite to it like this:
"show e Normal with fadeIn infinite"

And just like that, the animation will be repeated as long as that character is on screen.
 

Focus Class

Every time your character has a dialog, its character image will have a 'focus' class added, the purpose of this is to let you add special CSS rules or even javascript actions to make the character stand out from the others.

Choice Objects with Dialogs

Choice objects now allow to specify a dialog to be shown right when the choices are shown, this was something really needed, previously, you would have a dialog and then a choice object which would cause the dialog to be shown but not the choices, meaning you had to click again to show the choice dialogs. With this update, you'll define the dialog right inside the choice object just like this:

{"Choice":{
     "Dialog": "e Before I continue, let me ask you, what are you?",
     "Developer":{
	     "Text": "I'm a Developer.",
	     "Do": "jump Developer"
     },
     "Writer":{
	     "Text": "I'm a Writer.",
	     "Do": "jump Writer"
     },
     "Designer":{
	     "Text": "I'm a Designer.",
	     "Do": "jump Designer"
     },
     "Player":{
	     "Text": "I'm a Player.",
	     "Do": "jump Player"
     }
}}

That "Dialog" part is what will be shown along with the choice, and as you can see it supports characters just like any other dialog statement, meaning that extra click will no longer be necessary!

Choice Dialog

Bugs Fixed:

A list of all the bugs that were fixed for this release:
  • Save function caused side images to be replicated
  • Conditional Statement wasn't able to set a function as a condition
  • Fix error that made the Back button inside menus unusable on Firefox
  • Buttons font size was not coherent with the rest of the elements
  • Fix error that caused Save slots to only be available the second time the page is loaded

Updates:

Here is a list of the libraries and dependencies Monogatari ships with that have been updated:
  • Font Awesome v4.7.0
  • jQuery v3.2.1
  • Artemis v0.1.1
  • Animate CSS v3.5.2
  • CSS Shake v1.5.0
  • Normalize v7.0.0

How to update:

While the update process is fairly simple, it is still a long way to be as nice as I would like it to be and in fact is still an issue in the GitHub page, it is a very manual process and it involves you just replacing the old files with the new ones so just download the new release, and replace all the files except the following in your game:
That is if you haven't made any custom changes to the monogatari.js or css files, in that case you'll probably have to see what's changed and make your changes again. The strings.js file where the GUI translations are in, should only be replaced if you have not added new ones. If you have indeed added some, you can just leave it as it is.
So yeah, as you can see it's pretty much replace all that doesn't have to do with your game or all that you haven't made changes to. Simple yet not ideal, if you have any ideas of how to improve this, you can contribute them in that GitHub issue.

What's next?

With this release, the way is now clear towards the v1.4.0 version, Monogatari has a summer cycle meaning every big update is made and released during the summer, it's still a long way to say what you should expect but you can track all the planning and progress right from its project page!