{"id":388,"date":"2015-07-19T23:47:15","date_gmt":"2015-07-19T22:47:15","guid":{"rendered":"http:\/\/epochgames.co.uk\/?p=388"},"modified":"2015-07-19T23:51:56","modified_gmt":"2015-07-19T22:51:56","slug":"dev-blog-4","status":"publish","type":"post","link":"https:\/\/epochgames.co.uk\/wordpress\/2015\/07\/19\/dev-blog-4\/","title":{"rendered":"Dev Blog #4: Conversation Editor"},"content":{"rendered":"<p>Hello there!<\/p>\n<p>I\u2019m Dennis Soemers, currently the Lead Programmer at Epoch Games. Apart from implementing features for the actual gameplay, we also work on extending the Unreal Editor by adding new, user-friendly tools specifically for our game. Today I\u2019m going to give you a sneak peek at our <b>Conversation Editor<\/b>.<\/p>\n<p>The Conversation Editor is a new custom part that we have implemented inside the Unreal Editor that enables the team to create new Conversation assets in the project in a user-friendly manner. See the image below for an early version of this custom tool:<\/p>\n<p><a href=\"http:\/\/www.epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/ConversationExample.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-396  aligncenter\" src=\"http:\/\/www.epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/ConversationExample-1024x661.png\" alt=\"ConversationExample\" width=\"553\" height=\"357\" data-id=\"396\" srcset=\"https:\/\/epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/ConversationExample-1024x661.png 1024w, https:\/\/epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/ConversationExample-300x194.png 300w, https:\/\/epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/ConversationExample.png 1161w\" sizes=\"(max-width: 553px) 100vw, 553px\" \/><\/a><\/p>\n<p>This example conversation starts with an appropriately named \u201cQuest Giver\u201d NPC first telling the player he has something interesting for the player to do, and then has him ask the player for 10 Wolf Pelts.<\/p>\n<ul>\n<li>If the player already has 10 Wolf Pelts, he can tell the NPC \u201cI\u2019ve already got them\u201d (<b>note: <\/b>the blue box is a <b>condition<\/b> that checks if the player currently has the required wolf pelts), to which the NPC will respond with \u201cAwesome! Here\u2019s your reward!\u201d. The purple node that follows is a <b>script<\/b> node. In this case, a node has been placed that adds 1 Gold to the player\u2019s inventory.<\/li>\n<li>If the player does not already have 10 Wolf Pelts, he can respond to the NPC by telling him \u201cSure, I can do that.\u201d. Note that, to implement this, <b>the same<\/b> condition has been used as above, but this time it has been marked as <b>inversed<\/b>.<\/li>\n<li>Finally, there is another option available to the player that is not restricted by any conditions, in which the player asks for better content in his game.<\/li>\n<\/ul>\n<p>The tool has been designed to easily allow people to quickly create and test new conversation assets and immediately see how a conversation can progress in-game. It supports branching dialogue, and scripts and conditions can easily be placed anywhere in a conversation which enables conversations to affect, and be affected by, the remainder of the game. Nodes have a variety of properties that can be edited to change their behavior in-game. For instance, in every text node, one of the participants of a conversation can be assigned as the Character that speaks at that point in the conversation. There are also more advanced node types, that allow for jumping back to previous points in the same conversation, or jumping to entirely different conversations. These nodes encourage re-using existing work and help to avoid duplicating work, which is always important in (game) development!<\/p>\n<p>A funny note: this tool actually started out as something completely different, namely the tool already in the Unreal Editor for the creation of <b>Behavior Trees<\/b> (assets used for AI). This is an image from Epic Games\u2019 tutorial on Behavior Trees:<\/p>\n<p><a href=\"http:\/\/www.epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/fullTree.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-397  aligncenter\" src=\"http:\/\/www.epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/fullTree.jpg\" alt=\"fullTree\" width=\"544\" height=\"473\" data-id=\"397\" srcset=\"https:\/\/epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/fullTree.jpg 804w, https:\/\/epochgames.co.uk\/wordpress\/wp-content\/uploads\/2015\/07\/fullTree-300x261.jpg 300w\" sizes=\"(max-width: 544px) 100vw, 544px\" \/><\/a><\/p>\n<p>We hope you enjoyed getting this early look at our custom Conversation Editor! A number of its features are still in progress, but we think it is starting to shape up nicely.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello there! I\u2019m Dennis Soemers, currently the Lead Programmer at Epoch Games. Apart from implementing features for the actual gameplay, we also work on extending the Unreal Editor by adding new, user-friendly tools specifically for our game. Today I\u2019m going to give you a sneak peek at our Conversation Editor. The Conversation Editor is a&hellip;&nbsp;<a href=\"https:\/\/epochgames.co.uk\/wordpress\/2015\/07\/19\/dev-blog-4\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Dev Blog #4: Conversation Editor<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","ngg_post_thumbnail":0,"footnotes":""},"categories":[23,9],"tags":[],"_links":{"self":[{"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/388"}],"collection":[{"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/comments?post=388"}],"version-history":[{"count":7,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/388\/revisions"}],"predecessor-version":[{"id":400,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/388\/revisions\/400"}],"wp:attachment":[{"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/media?parent=388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/categories?post=388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/epochgames.co.uk\/wordpress\/wp-json\/wp\/v2\/tags?post=388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}