{"id":211,"date":"2010-05-16T21:04:00","date_gmt":"2010-05-17T04:04:00","guid":{"rendered":"http:\/\/www.legendofeuterra.com\/devblog\/?p=211"},"modified":"2010-05-16T21:27:41","modified_gmt":"2010-05-17T04:27:41","slug":"npcs-that-do-more-than-look-pretty","status":"publish","type":"post","link":"https:\/\/www.shadowdawngenesis.com\/devblog\/?p=211","title":{"rendered":"NPCs that do more than look pretty"},"content":{"rendered":"<div class=\"mceTemp\">\n<div class=\"mceTemp mceIEcenter\">\u00a0<\/div>\n<dl id=\"attachment_212\" class=\"wp-caption alignleft\" style=\"width: 310px;\">\n<dt class=\"wp-caption-dt\"><a href=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot33.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-212\" title=\"screenshot33\" src=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot33-300x175.jpg\" alt=\"Ket is a cold cat\" width=\"300\" height=\"175\" srcset=\"https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot33-300x175.jpg 300w, https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot33-1024x597.jpg 1024w, https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot33.jpg 1296w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/dt>\n<dd class=\"wp-caption-dd\">Arashi and Ket dicuss the situation<\/dd>\n<\/dl>\n<\/div>\n<p>This is a multi-screenshot endeavor today.\u00a0<\/p>\n<p>Thanks to help from the <a title=\"XNA development forums\" href=\"http:\/\/forums.xna.com\/\" target=\"_blank\">XNA forums<\/a>\u00a0(most notably mtnPhil and\u00a0scoy), I managed to get my light code running even more efficiently, so it can handle a significant number of light sources before any slowdown occurs.\u00a0 You&#8217;ll see at the end of this blog post what I mean.\u00a0<\/p>\n<p>Here to the left is a screenshot detailing my work from this evening: NPC interactions!\u00a0 This is the heart of RPGs and surprisingly took til this late date to finally begin implementing it.\u00a0 Part of the reason (and something else I&#8217;ve begun coding) is I didn&#8217;t have the quest\/objective progress planned out.\u00a0 This is just the first stage here, where basic flags are triggered (usually linked with usecode scripts), and there is now a usecode script that checks to see if a flag has been triggered.\u00a0 If yes, it executes usecode1, if no, it executes usecode2.\u00a0\u00a0<\/p>\n<figure id=\"attachment_213\" aria-describedby=\"caption-attachment-213\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot34.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-213 \" title=\"screenshot34\" src=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot34-300x175.jpg\" alt=\"Arashi is happy to see a flag\" width=\"300\" height=\"175\" srcset=\"https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot34-300x175.jpg 300w, https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot34-1024x597.jpg 1024w, https:\/\/www.shadowdawngenesis.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot34.jpg 1296w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-213\" class=\"wp-caption-text\">Arashi and Ket discover a checkpoint banner<\/figcaption><\/figure>\n<p>\u00a0What that means is, like here in the above screenshot, Arashi is talking to Ket after just stepping outside the tent.\u00a0 They haven&#8217;t found much information yet so Ket is obviously curious what is going on.\u00a0 Now we wander around to the end of the trail&#8230;Which triggers a flag that this is the right way back to the Kinshutai stronghold.\u00a0 Oh, and this is one of the other things I coded today: checkpoints!\u00a0 Arashi automatically triggers progress checkpoints whenever she sees one of these Foxfire flags, and if she dies, it brings her back to that point.\u00a0 By the end of tonight&#8217;s programming session, Arashi will be able to use the checkpoint flags to teleport to any other flag she has seen, as a method of quick transportation, as well as select a previous checkpoint as her &#8220;home point&#8221;.\u00a0 I also finally coded Arashi&#8217;s death sequence, since before reaching\u00a0zero hit points did nothing.\u00a0 I didn&#8217;t want to make death too frustrating in this game, so for now other than your position in a dungeon, nothing is lost, and any keys or gates opened stay open which will be useful for deeper mazes where you can open shortcuts. This may change slightly when the game is closer to done (feel free to throw any suggestions at me in the meantime).\u00a0<\/p>\n<div class=\"mceTemp\">\u00a0<\/div>\n<div class=\"mceTemp\">\u00a0<\/div>\n<div class=\"mceTemp\">Now back to the original topic, NPC interactions. \u00a0Like I said, approaching this checkpoint also sets a minor quest flag. Now when we talk to Ket&#8230;\u00a0<\/div>\n<div class=\"mceTemp\">\u00a0<\/div>\n<div class=\"mceTemp\"><a href=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot35.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"screenshot35\" src=\"http:\/\/www.legendofeuterra.com\/devblog\/wp-content\/upLoads\/2010\/05\/screenshot35-1024x597.jpg\" alt=\"Ket seems a bit more positive\" width=\"600\" height=\"349\" \/><\/a><\/div>\n<div class=\"mceTemp\">\u00a0<\/div>\n<div class=\"mceTemp\">His dialog has changed (it checks to see if that flag was tripped and switches accordingly).\u00a0 This is just the beginning of the possibilities, but now they are in place.\u00a0 Also, I was bored and dropped all my inventory (which consisted of a ring and 7 lanterns), and turned the lanterns on to create the scene here&#8230; I should note that lanterns aren&#8217;t automatically &#8220;on&#8221; by default.\u00a0 Compare the middle screenshot to this one &#8211;\u00a0all the changes were done using the game engine itself (not pre-planned).\u00a0 Now I just need to get around to designing more fun things to play with!<\/div>\n<div name=\"googleone_share_1\" style=\"position:relative;z-index:5;float: right; margin-left: 10px;\"><g:plusone size=\"tall\" count=\"1\" href=\"https:\/\/www.shadowdawngenesis.com\/devblog\/?p=211\"><\/g:plusone><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00a0 Arashi and Ket dicuss the situation This is a multi-screenshot endeavor today.\u00a0 Thanks to help from the XNA forums\u00a0(most notably mtnPhil and\u00a0scoy), I managed<a class=\"moretag\" href=\"https:\/\/www.shadowdawngenesis.com\/devblog\/?p=211\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[39,27,31,11,25,32,29,38,7,18,13,71,70,26,309,37,4,30,36,15],"class_list":["post-211","post","type-post","status-publish","format-standard","hentry","category-game-development","tag-2d-animation","tag-2d-tiles","tag-ai","tag-anime","tag-arashi","tag-artificial-intelligence","tag-collision","tag-controls","tag-development","tag-independent","tag-jrpg","tag-ket","tag-lighting","tag-map","tag-rpg","tag-scripting","tag-shadowdawn","tag-shadows","tag-usecode","tag-xbox-360"],"_links":{"self":[{"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=\/wp\/v2\/posts\/211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=211"}],"version-history":[{"count":0,"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=\/wp\/v2\/posts\/211\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shadowdawngenesis.com\/devblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}