For those looking for a Quest and Dialog editor ? , we built this great tool that has a user interface that makes the design and managing of all your quest and dialog elements much faster.
" Parley is a professional Quest and Dialog editor for games developers. Built with copy writers in mind. It uses a simple way of integrating quest and dialog events. Leaving you to writing dialog and build your Unity3D game "
The full user manual as well as a tutorial video is viewable on the site so that potential users can see the ease of use to generate complex quest and dialog trees that games require.
The simple GUI of the tool just help to make time spent productive and not distract from the tasks at hand.
It does not even require a unity license, meaning that your copywriter/game designer can be external, working on the dialog and quest elements.
Looks very interesting. I’ll be watching avidly for more tutorials to get a better sense of the tool’s strengths and limitations. I’m particularly interested in the following, which I could not deduce from the manual or video:
The API is really important: how much script control do developers have over displaying and choosing branches in game?
How easy is it to serialize the state of a conversation (quest events)?
Is it possible to have numerical requirements? For example, a dialog branch that only becomes available if the player has more than 100 gold?
Is it possible to pass a parameter with PlayerEvents? Can you e.g. award the player +5 skill in a certain ability?
What about text replacement (for ex: including the player’s name in a dialogue)? I see that you have some form of that for counting mushrooms in the video, but what about for arbitrary variables?
Can there only be one root node for a dialogue? For example, what if I want different opening text for an NPC depending on whether the player married his sister, left her, or refused her advances? I like the second-level dialogue for characters that you have already spoken to, but it’d be nice if this was connected to a customizable condition.
The editor is multiplatform?
At $149, I would consider buying this for the excellent visual editor, but only if it met all my needs.
Thanks for the feedback. I will make sure to cover some of your questions in the tutorials to follow.
In the mean time here are a few quick answers.
The API is really simple and integrates in three ways to the engine.
The first way is to fire of a quest event. This is a single line of code as show below.
// The code below fires a Quest Event "Jump" into Parley
Parley.GetInstance().TriggerQuestEvent("Jump");
The 2nd way is to create Event listeners. These will respond to events creates by Parley or created as by an API call.
void Start () {
// Get the sigleton instance of PArley and call Add us a Listener. Paramter one is our gameObject, 2 is the QuestEvents name and the last
// is the message to send to this Object. (The message method can be in a different script on this GameObject)
Parley.GetInstance().AddTriggerListener(gameObject,"LearntAboutKnocking","ActivateBridgeBump");
}
The above example adds a listener to the event “LearntAboutKnocking” when that event happens the message “ActivateBridgeBump” is fired into the gameObject. One limitation at the moment is these are single event occurrence listeners. After the even has fired they are destroyed. You can of course add the listener back each time. One the road map is the ability to register as persistent.
The third way is for the events to trigger Player events. Essentially the player code will get the broadcast message of the PlayerEvent by name. This currently doesn’t support values just messages. In the road map is a value solution for these calls.
We do not give the coders absolute control over the dialog tree. Or I would rather say we don’t expect coders to need to have absolute control over the Dialog tree. Rather design your dialogs around QuestEvents and fire those into Parley, the tree changes will happen automatically. Alternatively you can swop out entire Dialog’s for replacements ones on really significant events.
I have to admit it was great to see this question. Its something we considered extremely important when we designed Parley. The full state of a scene’s quests is stored in a single HashSet of strings.
We do not currently implement a save or load for the set but we do allow the set to get extracted and replaced. This in effect will save and load the full state or Parley. You will however still be responsible to saving the world state that would have been effected and additionally all objects that should be listening to events must re-register after a load.
public HashSet<string> GetQuestEventSet(){
return questEventsSet;
}
public void SetQuestEventSet(HashSet<string> questEventsSet){
this.questEventsSet=questEventsSet;
}
This is not currently possible, or that is to say its certainly not conveniently available. There is a feature in the road map, that will allow you to evaluate game variables as well as include and format them in dialog/quest strings.
The short answer is yes, however there is a limitation right now. You can create a player event called Give5PointToSkillXYX and call it as a PlayerEvent. This will then call that specific method.
However we are planning to extend that feature to allow parametrization. So you call the PlayerEvent
void GivePointsToSkillXYX(int howmany){
}
// or
void Give5PointsToSkill(string skillname){
}
We will only be supporting one parameter since we are using the SendMessage instruction.
Yes this will always be the case. However there is a feature planned that will give you something similar to this. A Dialog is getting a SkipIfObvious flag. This will allow it to skip if there is only once choice from the dialog or none. Essentially meaning that the root Dialog would be skipped if only once Choice was available from it.
Version 1.0.0 has only been released for PC. Mac and Linux versions are quite possible if there is a demand. I am expecting Mac to be the higher requirement.
We will put up a road map so that you can clearly see when we plan to implement features you are interested in.
The one large feature we currently working on is Translation. That is not to translate the interface (although we might have to consider that too) but rather to support multiple languages in the editor so you can switch from English to German and back on each screen updating the text.
We will be putting a Trial or version of the product down to allow people to see that it suits there needs.
It sounds like a very professional solution. Thanks for registering just to support it! I’ll be eagerly following the progress of those planned features and await the release of a Mac version.
Wow this looks fantastic, really close to what I am looking for. Is it possible to get a trial version, or another demo with the unity scripting and events in action? I really want to see how the dialogs look and feel in the actual game.
Even better, a bucket load of features and polish has been added after some good user feedback.
A DEMO!!! and a detailed dashboard that list the features with linked description of each item and a full user manual.
Just a heads up on the in game dialog’s (You can see them if you right click in the sample game or left click when you close enough to the bird on the rock). The ones supplied with Parley are for the most part very basic. You can of course reskin them, our original expectation was more along the lines of you building your own replacements for your game.
That having been said I can see now there might be a need for a few operational variations that can easily be re skinned and would fit more possible team needs. I will get started on a few enhancements to the Manual to assist those that want to build there own skins. As well as a few more interaction models for people to customize themselves.
Would be curious to hear more on the interaction models that would suit you.
Had a bit of a play around with the tool. First off want to say that it is a great tool and something that I have been searching for for a while. Anyway, I was trying to implement my interaction structure and couldn’t manage to do it. I was wondering if it was something I was missing or something that isn’t in the product yet. For example:
NPC - Commander Bob
Welcome to the academy Player! Lets get started with your training.
NPC - Private Smalls
Don’t listen to him, he doesn’t know anything about the military. He was kicked out twice!
NPC - Private Smalls
Hey recruit, when did your mom drop you off?
Player
Um, I live by myself
NPC - Commander Bob
Shut up Smalls and get back to your duties…
NPC - Commander Bob
Anyway, lets get started. Do you have any questions?
Option 1 - Who was that guy?
Player
He really has a big mouth on him!
NPC - Commander Bob
He is a nobody that likes to mess with recruits. (Back to start)
Option 2 - Nah lets just do this.
So in this scenario there is some banter between 2 characters and the player before you get to actually select an option. After you select option 1, the player could give some extended dialog relating to that option before the NPC says something back. Also if there is a lot of text one NPC is saying, that it can be broken down into smaller chunks that the player can click through rather than just a huge wall of text.
Within the dialog itself I would like to have a portrait and title of the NPC that is talking so you know who is conducting this witty dialog.
Is this the type of structure that is possible with the current Parley? Is it something you would consider building in to provide more flexibility on how the player interacts with the NPC’s?
Other than that it looks pretty good, would love to see more reward types like items, abilities or anything really, rather than just gold and XP, but I think you mentioned you were looked at adding that in so yeah.
Glad you found the solution easy to use, I remain a little concerned that it might be a disjointed experience for some, since it runs outside Unity.
The situation you described above is something we have not considered. Well until we saw your question, now it seams like something we cant live without. We have done some preliminary designs here on how we would achieve a cross dialog conversation. Still a few frayed edges around the scripting in Unity aspect but we know how the design would work.
Essentially we already planning to make it possible to show two or more conversations simultaneously. This means that you would be able to see how each ones events trigger changes to the other. As part of that enhancement we planning to make quests directly linkable to dialog for a simpler quest/dialog resolution. It would be only a small change in Parley to link conversations across character dialogs.
The part where we have to link them in Unity so that the camera can switch and the conversation can actually pass from on GameObject to another is a little more tricky. It would be bad for example if the two GameObjects were places far apart the conversation would be a little odd. I am sure we can overcome that mind you just might end up with a little more footwork for you to handle when you assign the Dialogs to GameObjects.
To Answer your 2nd questions about rewards. We are in the process of building a full “database” (its not the perfect word, but its close enough) This will allow you to assign various DataObjects are rewards to quests as well as send them to the player character via a command in general dialog. Some of these interactions are still in design.
What will be changing sooner is the ability to send parameters to the PlayerEvents. So you could call a method on the player event with a string parameters.
AddWeapon(“LargeUnfriendlyGun”)
For example.
The Data solution is still some way off but the parametrized functions are just around the corner.
Right now we are working on the refactoring of the Gui so its easier to write your own and we will be supplying a few alternatives for different games as well as the parametrization. I expect the Duel dialog will be the priority that follows.
Just to let you all know that version 1.1 of Parley is scheduled to be released this Friday 12/4/2013 We have a whole host of new features, some of which came from the ideas provided by all of you so thanks The new features are as follows:
Version 1.1.0
Parley Application
Made the selection of Dialogues table driven not Tabs and allowed multiple Dialogues to be seen at once.
Show the connections between Dialogues when multiple are selected
Create a FULL dialogue and move when CNTRL-SHIFT is pressed
Conversations can now return to conversations in another dialogue.
Options can now link to conversations in another dialogue.
Test Scene and Act names for validity before creating them.
Test Dialogue and Quest names for validity before creating them.
Table of Dialogues render the selected Dialogue in the same colour as the scene
Player functions now take parameters and allow multiple functions to be called at once on Dialogues
Player functions enhancements carried across to Quest and Objectives*
Parley Scripts
Improvements to the Dialogue GUI split out a base class and implement a better Basic GUI
Add a character image to the Dialogue GUI
Fixed an error in the Save/Load for saving arrays that are null
Changed the order of Conversation Events and option active evaluation to better facilitate cross dialogue conversations.
BasicGui works with GUILayout now making it more flexible.
Quest GUI split into abstract and basic classes.*
QuestBasicGui works with GUILayout now making it more flexible.*
No we still need to test those platforms. We have designed with performance in mind. Some feature sets have been excluded to maintain performance.
We do plan to test those platforms as soon as we can. I am more concerned with possabel compatability stuff then performance but these things often suprise.
If you give the free version a spin on andriod and pick anything up we would be quick to assist.
Thats good to hear, yeah i am targeting mobile devices mainly so always need to keep that in the back on my mind. Once I get onto android I will let you know if I have any issues.
Also thanks for all the updates, I will definitely be picking up the package before the sale runs out
I have a question for all the people interested in Parley.
We have been considering moving the product into Unity. We are already able to launch it from within Unity but it remains a stand alone product.
Do you guys see any benefit as end users to it been inside Unity as apposed to been an external tool? We torn between bring it into unity and leave it external as we see other uses with other products.
Just would like to see what people perspective might be.