THE Dialogue Engine

$55.00

THE Dialogue Engine is a super expandable system that offers far more than advertised. The first version of the kit said as much in the description but later updates resulted in the possibilities becoming so vast that I literally stopped trying to explain to people exactly what they are getting when they buy this. I call it a dialogue engine but “MBS RPG Kit” sounds more accurate. See the product description to understand why.

1 review for THE Dialogue Engine

Rated 5 out of 5

JBR-games on 2017-11-13 20:22:38

Great Asset, with the ability to do much more. - If you need a npc chat setup for Unity this will do the job. Need your story to have multiple options this can handle it, Need your NPC to know if you picked up a "gold sword" from some other NPC this can handle it easy with out any code... This system also allows for much more like, quest tracking, quick saving features and even inventory. But you will need some coding knowledge if your doing anything fairly advanced. Publisher is very willing to help you out with any issues you may have via the forums or by email. Edit 11/13/2017 Just got a new update, works great with Unity 2017.2 ,also added a simple inventory system.

Use the Visual Novel GUI without the background image

Visual novel GUI included

Customise your GUI to your liking

One possible way to display choices

Single or double avatars during conversations. Customise your GUI

THE VIDEOS SECTION FOR THIS ITEM IS STILL UNDER CONSTRUCTION

Please check back in soon...

Just to show you how easy this can be, here is a complete sample dialogue script for an NPC character

<Dialogue> //legacy node. Can be skipped
<turn> who=0; Good day, Sir
<turn> who=1; Good day to you, fair lady
<turn> Seeing your face always reminds me that I am home
<turn> who=0;
Oh!
You are going to make me blush if you say things like that
<turn> who=1; We shall speak soon as I leave for my next adventure. Till then, my lady
<turn> who=0; next=-1; Good day, Sir.
<Actors> //legacy node. Can be skipped
<Actor>name=Mary Lou; avatar=HouseWife3
<Actor>name=Sir Lancelot; avatar=LancelotOnHorse1

Just to show you how complicated you can make it. Here is another, more involved dialogue script

Demonstrated here

Remember in-game and in-dialogue actions

The first turn starts the dialogue at one of 3 places depending on previous actions

Normal dialogue text and multiple choice

Localised to 2 languages. Follow the example and add as many as you want

Inventory checks mid dialogue

Inventory updates mid dialogue

Game data fetching mid dialogue

Redirecting to different parts of the dialogue based on requirements

Redirecting to another line can cause redirection to other lines if that line’s requirements are not met

Dynamic text substitution of either default of sub values of data

Custom field used for occasional change of background

All turns don’t require all fields

Mix and match the two scripting formats

Display one of multiple avatar images for same character based on what is being said

Creating an unbeatable quest (by killing the knight)

This quest can be solved by finding the princess outside of the dialogue. The dialogue is aware of your actions

Skipping to post-quest dialogue on dialogue start if the quest is complete

Calling your own custom functions and naming the variables you pass to your function

Added the MBSUtiliies class to the project. Please see the documentation for that to see what that adds to your project

Added the MBSEvent class. Please see the documentation for that to see what that adds to your project

Removed the custom UDEAEvent and UDEAEventHandler in favour of the updated MBSEvent and MBSEventHandler

Replaced the custom Exception definitions with the generic Exception

Simplified CMLGameKeys by making use of the updated features of CML4

v2.0.1

Fixed a compatibility issue with U5.5

Updated outdated Editor script to not show meaningless errors all the time

Fixed a bunch of errors in the demo dialogues

Rearranged some folders

v2.0

Added a change log

Added AutoContinueOnClick boolean to UDEA.Enable to continue the dialogue with a left click
Disable to allow the UDEA to be used with NGUI/ UGUI / etc.

Added CurrentSprite property alongside CurrentAvatar property. You can now fetch a Sprite or a Texture2D

WhoIsSpeakingAvatar now first tries to load a Sprite and loads a Texture only if that fails

Removed the use of the ProcessKeys function to handle custom keys

Custom keys now directly calls any function you want. The first param of your key is the function name
For example, a custom key “ChangeVolume BGSource 0.4” will send the params “BGSource” and “0.4” to a
function called ChangeVolume

Custom keys can now have any number of parameters or none at all. If using parameters they will be passed
as a single CMLData object so be sure to create your functions like this: public void FuncX(CMLData data)

Custom key’s parameters can now be prefixed with a descriptive name using the : seperator
Example: [keys] ChangeVolume WhichItem:BGSource Volume:0.4 FadeSpeed:0.15, KeyWithNoParams
Parameters without names are accessed in the order they are declared, ignoring named parameters before it
Paramteres with names are accessed by name and can be converted to it’s relevant typeExample:

Now require that the dialogue be parented to a canvas, no longer simply run directly on random objects

Added BroadcastToSelf boolean to UDEA to allow you to send keys to a target object and to the display script sending it

Dialogue prefabs are now destroyed instead of disabled so there is now a difference in implementation

Removed “Parent” property from the UDEA class as it was just a duplicate of the public “parent” variable

Removed redundant OpenFile and StartDialogue methods

Changed CurrentIsChoice function to look at number of redirect values, rather than implicit “choice” value

Removed the need to add “choice=true” in dialogue scripts. This is now completely redundant

Made the OnSpeakStart, OnSpeakEnd, OnTypewriterModeUpdate and OnSelectionChange events local events, not static

Removed the legacy Actions HUD product from THE Dialogue Engine.

Fixed a bug with WhoIsSpeakingName if called after the dialogue contents were cleared

Added an Audio system to THE Dialogue Engine. Just drag the audio prefab onto an object, add some clips to it and you
can now play audio right from your dialogue. Simply add the key “PlaySound track:trackname” where
trackname is the name of a track you added to the prefab. Alternatively you can also use “PlaySound index:x”
where x is the array index of a clip you added to the prefab.
You can also add in “loop:true” or “loop:false” if you want. i.e. “PlaySound track:help loop:false”

Added a barking system. Use the same audio system and add the sentences you want the character to speak
Simply tick the “random_barks” box and specify the min and max wait time between random barks. Primarily used
to make guards say random stuff, in the demo I use it to play random electrical beeps and crackles on the
damaged robot. Turn this barks system on or off during dialogues using “DisableRandomBarks” or “EnableRandomBarks”

For the sake of the Visual Novel prefab I also added a number of custom fields to THE Dialogue Engine dialogue format
More info on these fields can be found in the relevant documentation

For the sake of the Visual Novel prefab I also added a number of custom functions that can be triggered either
from the dialogue or from script directly. More info on these fields can be found in the relevant documentation

Added a lot more documentation to THE Dialogue Engine explaining it in far more detail than before