I’ve made a very basic dialogue system by following Brackeys’ tutorial, and managed to upgrade it a little. But it just doesn’t seem like the base of the system is robust enough for actual dialogue management and control.
All you can really do with it is show some text, and under a single character name. You can’t even change the name of the character. Furthermore, the dialogue itself is specified within an object’s “DialogueTrigger” script component, which means if i wanted to make multiple possibilities of dialogues (branching dialogue), I wouldn’t be able to (at least not with how the system is right now) since you’d have to have multiple instances of the same script on that object. Which would just be a nightmare to work with later on.
Here’s a list, showing exactly what I require from a dialogue system:
- Able to set speaker’s name and speech in separate UI Text objects.
- Able to switch between multiple characters in conversation (ie. chr1 says something, then chr2 says something, then chr1 says something else, then chr3 says something, and dialogue ends).
- Able to display choices which can be scrolled through with the arrow keys (not buttons you click with your mouse). At this point I don’t really care if the choices are inside the dialogue box, or not.
- Able to set certain choices as unselectable, based on things like player not possessing an item.
- Branching dialogue based on choices. For example if chr1 (player) chooses “I don’t have the item”, make chr2 say “get the item”, but if chr1 chooses “I got the item”, make chr2 say “good”, and be able to do whatever, whether that’s reverting chr2’s state to following the player, or changing a variable from another script, etc.
- Display chr1’s choice as text, before displaying chr2’s text (some games just display chr2’s reply after you choose something, and don’t actually make chr1 say it in the dialogue box).
- Able to easily set conversations as repeatable or not.
- It must work with 5.x and up (I’m using 2017.1).
What I mean in the 5th bullet point by “changing a variable” and “reverting chr2’s state”, is being able to do those things through either a visual editor, or by referencing your own scripts somewhere in the dialogue system’s code (which I can’t do with Brackeys’ system).
For the text itself, a visual editor is not necessary, but it would be a huge help.
My current budget (what I’m willing to spend) is £100. But please make sure if you’re suggesting an asset close to this price (£50+), that it’s not packed with a lot of features that are not listed above, and that it has all the features listed above. I don’t want to spend money on stuff I’ll never use (at least not in my current game), and on stuff that will not prove useful enough for my purposes. Obviously something as expensive at £50+ would have a lot of excess features, but all the cheap stuff I looked at, had almost no features.
I really hope there’s an asset out there that does exactly what I need. It seems creating a simple dialogue system is very easy, but creating a “useful” one, is very complex and difficult. I tried looking in the Asset store myself, but a lot of what I looked at seems to be either overkill, or underkill. For both the price and my requirements.