thumb

Progress Tracking

  1. Store ANY game event or action as a key
  2. Add unlimited sub-values per key
  3. Change dialogue based on keys
  4. Remember past dialogue choices
  5. Access & update inventory mid dialogue
  6. Access & update inventory during gameplay
  7. Keys double as a quest & inventory system

Load & Save Games

  1. Save the entire game’s variables in one line of code
  2. Retrieve an entire saved game’s values in one line of code
  3. Save and use variables of type string, int, long, float, Rect, Color, Vector2, Vector3, Quaternion and bool
  4. Save ANYTHING you can turn into a string!
  5. You can effectively use this as an in-memory database containing all your game’s data!

Extra Features

  1. Includes a prefab for playing audio
  2. Make characters speak random audio (i.e. Bored guards)
  3. Create custom GUIs for your game
  4. …without having to mod the engine source!
  5. Includes a number of pre-made GUI prefabs
  6. Includes a Visual Novel GUI and demo
  7. Free game templates available on this site!

And More…

  1. Step by step “Getting started” lessons included
  2. Runtime typed data creation
  3. GUI and Engine code run independently from one another
  4. 100% display agnostic. Works with ANY GUI system or it can just as easily be used completely without a GUI
  5. Fires events for you to hook into for extra customisation
  6. Includes “All at once” and “Typewriter” text display modes

Infinitely Expandable

  1. Highly customisable dialogue script format
  2. Add completely new features without touching the engine code!
  3. Dialogue script contains an Actor definition and Dialogue section
  4. Add as may extra sections as your custom GUI requires
  5. Add between 1 and infinite actors per dialogue
  6. Add between 1 and infinite dialogue turns per file
  7. Add between 0 and infinite requirements that have to be met before the turn is spoken or redireect to a new line based on which test failed
  8. Add between 0 and infinite inventory items to update per turn (Create, Add, Subtract, Set)
  9. Add between 0 and infinite additional fields per turn as your custom GUI requires
  10. Call between 0 and infinite custom functions you created
  11. Each custom function can have between 0 and infinite parameters
  12. Optionally name your parameters to access them by name inside your function(s)
  13. No 2 turns have to contain the same fields
  14. Some fields are auto generated and can be left out if you want to
  15. Includes 2 scripting formats
  16. Mix the 2 formats to suit your taste



DEMOS (Please be patient while demos load. Largest demo is 23Mb)

"

1 review for THE Dialogue Engine

  1. 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.

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

  1. Remember in-game and in-dialogue actions
  2. The first turn starts the dialogue at one of 3 places depending on previous actions
  3. Normal dialogue text and multiple choice
  4. Localised to 2 languages. Follow the example and add as many as you want
  5. Inventory checks mid dialogue
  6. Inventory updates mid dialogue
  7. Game data fetching mid dialogue
  8. Redirecting to different parts of the dialogue based on requirements
  9. Redirecting to another line can cause redirection to other lines if that line’s requirements are not met
  10. Dynamic text substitution of either default of sub values of data
  11. Custom field used for occasional change of background
  12. All turns don’t require all fields
  13. Mix and match the two scripting formats
  14. Display one of multiple avatar images for same character based on what is being said
  15. Creating an unbeatable quest (by killing the knight)
  16. This quest can be solved by finding the princess outside of the dialogue. The dialogue is aware of your actions
  17. Skipping to post-quest dialogue on dialogue start if the quest is complete
  18. Calling your own custom functions and naming the variables you pass to your function

<Actors>
<Actor>name=Knight; avatar=KnightKneel1
<Actor>name=Knight; avatar=KnightKneel2
<Actor>name=Knight; avatar=KnightStand7
<Actor>name=King Colonius; avatar=King1 //who 3
<Actor>name=King Colonius; avatar=KingMad
<Actor>name=King Colonius; avatar=KingSad

<Dialogue>
<turn> id=0 ; next=1; who=1; Afrikaans=Ek was suksesvol in my avontuur, u hoogheid
[require] - PrincessFound 1 50, - DeadKnight 1 100, - Quest3 1 3
[background]ThroneRoom
My king! I have returned from my adventure with tales of victory

<turn> id=1 ; next=2; who=3
[Afrikaans] Ons het nie nou tyd vir dit nie!\nRed my dogter van die draak!;
[keys] + Quest3 1
I'm glad to hear it but my daughter has been kidnapped
You need to ride out immediately!
Find the dragon! Save her!

<turn> id=2 ; next=-1; who=2; Afrikaans=; Ek is reeds op pad, U hoogheid!
I will leave at once your majesty!

<turn> id=3 ; next=4; who=3; Afrikaans= En? Kon jy haar red?
[background]ThroneRoom
Have you found my daughter yet?

<turn> id=4 ; next=8,5; who=1; Afrikaans=Ek het, ja, my koning\nNog nie, my koning
I have her, your majesty!
I have yet to find her, your majesty

<turn> id=5 ; next=6; who=4; Afrikaans=Wel, gaan soek dan voort!
Well get back out there then!!!

<turn> id=6 ; next=-1; who=0; Afrikaans=Natuurlik, my koning
Of course, my king

<turn> id=7 ; next=6; who=4
[Afrikaans] As jy aanhou lieg gaan jy met jou lewe betaal!\nGaan soek haar!
[require] - Liar 3 99
[keys] + Liar 1
You lie! I see her not!
Speak not your lies to me again lest ye be put to death!
Find her!

<turn> id=8 ; next=9; who=5; Afrikaans=Ag, my engel! Ek is tog so bly jy is veilig!
[require] + Princess 1 7
[keys] - Princess 1, + PrincessFound 1
Oh my darling! I am so happy you are safe!

<turn> id=9 ; next=10; who=5; 
[Afrikaans]{:Player:Name}! Jy het vrye toegang tot my skatkamer!\nVat net wat jy wil!
[keys] - Quest3 1, + Gold 10000, + Rank 5, Sound name:QuestComplete loop:false
{:Player:Name}, you are hereby granted access to my treasury!
Take anything your heart desires!

<turn> id=10 ; next=-1; who=1; Afrikaans=Dankie, U hoogheid;
Thank you, your majesty

<turn> id=50; next=10; who=5;
[Afrikaans]Als is reg met die wêreld!\nGaan geniet jou {:Gold} goud!
[background]Courtyard
My daughter is back and all is well!
Go enjoy your {:Gold} gold pieces!

<turn> id=99 ; next=100; who=4; Afrikaans=Iemand kap net asseblief sy kop vir my af!
[background]FlamesOfHell
Someone kill this lying disgrace!

<turn> id=100 ; next=-1; who=5; Afrikaans=Ag tog! Is daar niemand wat my kind kan red nie?
[background]ThroneRoomBlackAndWhite
Oh woe is me.
Who will save my daughter from the beast?

THE FAQ FOR THIS ITEM IS STILL UNDER CONSTRUCTION

Please check back in soon...