{"id":736,"date":"2014-07-10T03:44:19","date_gmt":"2014-07-10T02:44:19","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=736"},"modified":"2014-07-10T03:44:19","modified_gmt":"2014-07-10T02:44:19","slug":"p-148-heist-update-4-artificial-intelligence-lighting-visibility-and-hiding-lockpicking","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p-148-heist-update-4-artificial-intelligence-lighting-visibility-and-hiding-lockpicking\/","title":{"rendered":"P-148 Heist Update 4: Artificial Intelligence, Lighting, visibility and hiding, lockpicking."},"content":{"rendered":"<p>I have complete the vast majority of the Artificial Intelligence for this project. Ai Guards will now follow a predefined path through a level, searching for players with their light. They will also respond to sounds, such as walking or running, in their vicinity. If the guard spots the player, the game ends.<\/p>\n<p>Players are also given a &#8220;visibility gem&#8221; which will indicate how visible they are at a given moment. Visibility is determined not only by the players proximity to light sources, but also their current speed, and, in future, any noisy activities they are performing, such as drilling or picking locks.<\/p>\n<p>I decided not to have guards follow the player or search for the player after they have been alerted, since I want to encourage the player to plan their movements beforehand, instead of making snap decisions. In order for this to work, the player needs to be able to predict the movement of the AI as much as possible.<\/p>\n<p>I also implemented lock picking. Each locked door will have a randomly generated code. When the player picks the lock, they must move a series of sliders to simulate the action of a lockpick. Once all sliders are in the position which matches the door code, the door opens. I think this is more interesting than a simple timer which slowly runs down as the player picks the lock.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment116-Jul.-03-18.20.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-745\" alt=\"PhoenixGameDevelopment116 Jul. 03 18.20\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment116-Jul.-03-18.20-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment116-Jul.-03-18.20-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment116-Jul.-03-18.20-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment116-Jul.-03-18.20.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment131-Jul.-03-21.09.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-744\" alt=\"PhoenixGameDevelopment131 Jul. 03 21.09\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment131-Jul.-03-21.09-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment131-Jul.-03-21.09-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment131-Jul.-03-21.09-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment131-Jul.-03-21.09.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment135-Jul.-04-02.34.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-743\" alt=\"PhoenixGameDevelopment135 Jul. 04 02.34\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment135-Jul.-04-02.34-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment135-Jul.-04-02.34-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment135-Jul.-04-02.34-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment135-Jul.-04-02.34.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment140-Jul.-04-02.35.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-741\" alt=\"PhoenixGameDevelopment140 Jul. 04 02.35\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment140-Jul.-04-02.35-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment140-Jul.-04-02.35-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment140-Jul.-04-02.35-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment140-Jul.-04-02.35.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment139-Jul.-04-02.35.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-742\" alt=\"PhoenixGameDevelopment139 Jul. 04 02.35\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment139-Jul.-04-02.35-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment139-Jul.-04-02.35-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment139-Jul.-04-02.35-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment139-Jul.-04-02.35.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment144-Jul.-04-02.35.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-739\" alt=\"PhoenixGameDevelopment144 Jul. 04 02.35\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment144-Jul.-04-02.35-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment144-Jul.-04-02.35-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment144-Jul.-04-02.35-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment144-Jul.-04-02.35.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment141-Jul.-04-02.35.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-740\" alt=\"PhoenixGameDevelopment141 Jul. 04 02.35\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment141-Jul.-04-02.35-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment141-Jul.-04-02.35-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment141-Jul.-04-02.35-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment141-Jul.-04-02.35.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment145-Jul.-06-01.18.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-738\" alt=\"PhoenixGameDevelopment145 Jul. 06 01.18\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment145-Jul.-06-01.18-300x232.jpg\" width=\"300\" height=\"232\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment145-Jul.-06-01.18-300x232.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment145-Jul.-06-01.18-1024x793.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2014\/07\/PhoenixGameDevelopment145-Jul.-06-01.18.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have complete the vast majority of the Artificial Intelligence for this project. Ai Guards will now follow a predefined path through a level, searching for players with their light. They will also respond to sounds, such as walking or running, in their vicinity. If the guard spots the player, the game ends. Players are [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-736","post","type-post","status-publish","format-standard","hentry","category-software-and-games","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/736"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=736"}],"version-history":[{"count":2,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/736\/revisions"}],"predecessor-version":[{"id":746,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/736\/revisions\/746"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}