After nearly a year of developing the thing - I've finally sent my game away to Apple. The game relies very heavily on Dialogue System for Conversations, NPC's and Quests. It even features a little hidden text based adventure made using Dialogue System
https://www.youtube.com/watch?v=v4NmnaGw2W8
Hopefully the game will be on the app store next week.
Showcase: Terra Monsters 2
Showcase: Terra Monsters 2
Congratulations! The game looks great! I'll definitely check out the app store next week to see if I can get myself a copy.
May I post your video to the Dialogue System thread on the Unity forum, too?
May I post your video to the Dialogue System thread on the Unity forum, too?
-
- Posts: 39
- Joined: Wed Sep 03, 2014 2:44 am
Showcase: Terra Monsters 2
Sure thing, I kept trying to get a better video for Dialogue System, one with more varied user responses and more interesting quest tracker labels but kept finding bugs whilst making videos and lost patience with myself!
Showcase: Terra Monsters 2
No worries; I think the video does a good job of showing dialogue and quests!
-
- Posts: 39
- Joined: Wed Sep 03, 2014 2:44 am
Showcase: Terra Monsters 2
Thanks! Happy to take any questions that anyone may have about it. Quest Arrows and NGUI TypeWriter effect modifications I think are the only real changes I made to the Dialogue System, other than that it's all stuff built into your system
Showcase: Terra Monsters 2
I'm curious about the quest arrows. It seems like a 2D version of HUD Waypoint. How do you manage the arrows, and how does it tie into the Dialogue System? (And may I steal some of the quest arrow ideas for future features in the Dialogue System? )
-
- Posts: 39
- Joined: Wed Sep 03, 2014 2:44 am
Showcase: Terra Monsters 2
The quest arrows are often done in quite a hacky way. At the end of every conversation - Quest Arrows are recreated
Each Quest Entry has a few extra fields for it. If all quest entries are complete, the arrow will point to "CompletionNPC' game object (assuming the player is at the correct "Location" to complete the quest. If they're not at the correct location, the quest arrow will look for any doorways on this map to the completion map and point there if possible).
The following are added to Quest Entries to make my quest arrows work properly:
EntryNMap - The "Location" where this entry is completable.
Entry1Position - Usually just defines a set of co-ordinates where the player needs to go on completion map to complete the quest. It can also be set to the name of a GameObject. The screenshot shows a slightly more complex example. It tells the quest arrow that it wants to use binary operators to work out where to point at. It searches for all GameObjects that have my PiratesDefeatedFlag value in them, if PiratesDefeatedFlag = 0 then it will search for the Pirate with PiratesDefeatedFlag = 1, if PiratesDefeatedFlag =1 then search for PiratesDefeatedFlag =2, if = 2 then search for 4, etc. etc. It lets me point the user in many different places using just one quest entry.
Entry1Variable - The Lua variable name we want to check on to see if this quest entry can be set to complete
Entry1VariableTarget - The target for this variable value, if we've reached our target, set this quest entry to complete and don't show this quest arrow.
It does feel a little hacky the way I've done it and can be improved lots, there's also a bunch of other minor little variables like "OverrideEntry1OnSuccess" which changes the Entry description when the user has completed that entry.
Each Quest Entry has a few extra fields for it. If all quest entries are complete, the arrow will point to "CompletionNPC' game object (assuming the player is at the correct "Location" to complete the quest. If they're not at the correct location, the quest arrow will look for any doorways on this map to the completion map and point there if possible).
The following are added to Quest Entries to make my quest arrows work properly:
EntryNMap - The "Location" where this entry is completable.
Entry1Position - Usually just defines a set of co-ordinates where the player needs to go on completion map to complete the quest. It can also be set to the name of a GameObject. The screenshot shows a slightly more complex example. It tells the quest arrow that it wants to use binary operators to work out where to point at. It searches for all GameObjects that have my PiratesDefeatedFlag value in them, if PiratesDefeatedFlag = 0 then it will search for the Pirate with PiratesDefeatedFlag = 1, if PiratesDefeatedFlag =1 then search for PiratesDefeatedFlag =2, if = 2 then search for 4, etc. etc. It lets me point the user in many different places using just one quest entry.
Entry1Variable - The Lua variable name we want to check on to see if this quest entry can be set to complete
Entry1VariableTarget - The target for this variable value, if we've reached our target, set this quest entry to complete and don't show this quest arrow.
It does feel a little hacky the way I've done it and can be improved lots, there's also a bunch of other minor little variables like "OverrideEntry1OnSuccess" which changes the Entry description when the user has completed that entry.
Showcase: Terra Monsters 2
There's a fine line between hacky and practical. It's not like we independent developers have a team of 20 programmers on standby to redesign and rewrite every subsystem that isn't textbook perfect. I like your use of custom fields!
-
- Posts: 39
- Joined: Wed Sep 03, 2014 2:44 am
Showcase: Terra Monsters 2
Haha I agree, it's made and documented so me + one other can input quests and serves its purpose. Thank you again for your system, couldn't have made the game without it