A Conversation.Engine for the masses!

COMING SOON TO THE ASSET STORE …

Minor revisions to UI

New GUISkin as seen in Unity Free version

The Conversation.Engine by 7Moose Games

Artists, Rejoice! Game Designers with no scripting experience, Rejoice!

What is the Conversation.Engine?
The Conversation.Engine by 7Moose Games wraps a comprehensive editor with a parsing engine that allows even the most technically-challenged person to write elegant, robust in-game dialogs complete with:

  • Automatic GUI Orientation
  • Animations
  • Textures
  • Audio Clips
  • Cinematic Camera Views
  • Etc!

For the more advanced user, the Conversation.Engine also offers a complete event system! The advanced user is able to send events to and from conversations which can be used to enable/disable branches of a conversation. This functionality can be unleashed upon the scene as well, notifying ANY object that an event has occurred. Has the user spoken to the quest giver? Has the user chased down the villain in order to claim the reward? These situations are quickly handled using the Conversation.Engine’s event system.

Furthermore, we’ve added the ability to call custom script functions (which you write yourself) from each element within a conversation. For example, let us pretend your user has just completed a quest and the quest giver is handing out a reward item. You’ve written a function which will add the reward to the user’s inventory, however you want the Conversation.Engine to initiate the process by calling the function from the final dialog element. No problem! Simply specify an “Action Method” within the dialog element and choose whether to call the function in the “pre” phase (before anything executes), the “post” phase (after the dialog element completes, but before the next element executes), or timed to occur after any number of seconds. You also have the ability to send events to popular products such as PlayMaker FSMs! By using the Action functionality, we ensure that the Conversation.Engine is robust to fit into all types of simulations.

Enjoy our first video, the Conversation.Engine’s “Getting Started” guide. This video illustrates how to create two very simple conversations and tie them together using Events and Prereqs. Please note that the video and audio work in Firefox, Chrome, and Internet Explorer. I’d also like to ask that you please excuse the bodily functions of the speaker (me!). I was sick when I recorded the video, and I promise to redo the video at a later date.

Getting Started Video

Editor Version 2.0 (Early Alpha)

Event-Driven Example - Web Build

Unity3D Forum User “Moria” and his Authoritative MMO using the Conversation Engine!!!

“Matilda” - Novel / Story driven game released using the Conversation Engine
“Matilda” - Google App Store Link

Best thing I’ve seen yet! For me. I’ve been writing an interactive piece/story/fiction thingy that will need this, cause I can’t program to save myself. And surely won’t tolerate myself trying.

Brilliant. Love it. Gimme!

@dissidently - Thanks!!! Keep your eyes on this thread, as we’re getting very close to release. In the meantime, I have added a new screenshot of an update to the editor UI. Enjoy!

Looks excellent.

Have bookmarked the page to get updates.

Congrats and looking forward to this :slight_smile:

Regards

Graham

Extremely excited about this. I have been looking around for something like this for a while and there aren’t any great solutions yet. Can you give us an ETA and an estimate pricing? I’m working on a third person RPG that would definitely benefit from this

Looks excellent. One of the projects I’m working on with a team makes very, very heavy use of branching dialog conversations. We have our on solution which has been in place for a while now, so we are unlikely to port it over (though this is certainly more robust).

However, I just wanted to post making one suggestion. One of the things we’ve gotten a ton of use out of is a standalone dialog editor which can also create/edit the dialog XML and has the ability to “play” the conversations (with proper branching just as it would appear in game). This let our writer work on machines without a proper Unity license and from machines incapable of really running Unity comfortable - now he works pretty much exclusively out-of-engine.

It may be worth considering a similar tool for your project, a lot of small teams would likely get a significant amount of use out of it.

Love the in-Unity editor though, looks amazing.

That’s a fantastic idea, Kyle! I hadn’t considered something like that. Since I had to code my own serialization routines, it should be pretty simple to add a tool like this. Thanks again!

Hey Arvz - I’m working as fast as I can to get the tool ready, and some kind of documentation to go with it. I may release an early adopter version first at a reduced price, but once all features are complete I am figuring the price to be around $80. Watch the thread as I may be expanding the closed beta too!

At first I thought this was another visual programmer, was getting angry. Then saw it’s for dialogues. Can’t wait(actually I can, but still…)

The world doesn’t need another visual scripter / programmer, that’s for sure :slight_smile:

This certainly` hits all the right buttons… one factor that’s been holding me off doing something is the fact that I need hooks in the dialogue to trigger events like moving to a new zone, or being taken to a specific feature or the spawning of a particular NPC etc.

Good luck and if you need a closed Beta expansion, I’m there :slight_smile: and if you need a pre-pre early adopter, am there as well :slight_smile:

Regards

Graham

@Moria - The Conversation.Engine will definitely handle those items for you. Well, it will facilitate them. How’s that for a well-rehearsed, corporate answer! To help you understand how something like spawning an NPC would work using the engine, I’ll be sure to create a fast how-to video and get it posted tonight. Hopefully you will be happy with the process!

Excellent, I’d be more than willing to participate in closed beta. My email is arvin.g@gmail.com (when you need more testers!)

I feel $80 is an appropriate price as well. If you’re having an early adopters price I’m also likely to sign up.

One such tool is Chat-Mapper (Also most likely the tool Kyle is talking about)
I also would second that you should include this feature. It’s very important that the game script is seperate

Ideally I would like to be able to write my script in a text editor, then send it to someone else to check/fix and be able to import it straight into the conversation engine

How will your engine handle/respect localization? For one of the games I’m currently developing, all of the text has to be available as text assets, so that the text can be localized without ever needing to open Unity. Will your engine allow something of this nature?

Yes exactly, this is another important reason why we always should separate game script from the game engine!

If the engine has a way of reading in a text file (maybe in XML?) which contains the script, we should then be able to feed the conversation engine different text files depending on the setting set by the player

The good news is that a tool is already under development as of today. I am extending my serialization routines which will dump the information to XML, and read back into the engine. I will make sure to pay particular attention to localization issues, but I need to do more research on this topic.

More Editor UI enhancements distracting me from localization work as a break :slight_smile: First post, third Screenshot.

Hmm, i’m just thinking…

If you write some kind of routine which exports the conversations into XML, wouldnt this mean that you need to implement the entire conversation pathways, fill it in with some stub, and Then export it? Another problem might be if you decide to change the pathways, then you’d need to re-export, and therefore re-write the script?

I guess it wouodnt be too bad if you seperate the conversations into separate levels, but then you cant have something which happens at the beginning of the game which affects conversations at the end of the game.

I know you havent really started handling this, but i’m just brainstorming possible problems with the system. Any idea how this would be handled?

@Arvz - Yes, you’ll need to script out the conversation completely, export it, and then import it into the engine, or you can create the conversation entirely inside the editor (check screenshots above). Using the standalone application, you’ll be able to load in conversations, edit them, and export them. You won’t need to “rewrite” the conversation, since you’ll be able to load in the conversation from a file. I’m also planning connectivity to databases, and adding WWW calls from the Conversation.Engine. That will be down the road, but it’s already in the works.

Actually, this is handled using events and actions, Arvz. You will still need to develop some kind of intermediate variable to store the information, and pass it from scene to scene, but it’s definitely possible. Remember, the Conversation.Engine won’t have this functionality “canned” inside, but it’s extensible so that you can add advanced features like this very easily. I have a handful of really useful scripts that I’m more than happy to include with the engine too. The scripts should give you a nice starting point from which you can implement features like variable branching between scenes.

@Graham - I just wanted to let you know that I am still planning a tutorial video to show you how to handle complex events in the Engine. I’m also going to show Arvz how to persist the data between scenes so that an event in an early scene can influence a later scene. Due to the localization concerns that others have mentioned, I’ve reallocated the majority of my time to dealing with globalizing the standalone app rather than recording the video, however I should have time tonight or this weekend to knock out the tutorial. Just a heads up!