{"id":312,"date":"2026-03-04T18:23:45","date_gmt":"2026-03-04T18:23:45","guid":{"rendered":"https:\/\/kareemelawar.me\/?p=312"},"modified":"2026-03-04T21:20:13","modified_gmt":"2026-03-04T21:20:13","slug":"the-last-halloween","status":"publish","type":"post","link":"https:\/\/kareemelawar.me\/?p=312","title":{"rendered":"The Last Halloween"},"content":{"rendered":"\n<p>Team Size: 6 | Role: Tech Designer<\/p>\n\n\n\n<p>Responsibilities:<br>\u2013 Level Designer<br>\u2013 Stealth System Designer<br>\u2013 Gadget Programmer<br>\u2013 Document Project<\/p>\n\n\n\n<!--more Read more-->\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The Last Halloween Trailer\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/an5mFV_bhoY?start=54&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>The Last Halloween is a stealth roguelike where a child uses classic toys to steal as much candy as they can from houses in their neighborhood while also paying off the local witch. The player may use various gadgets to avoid the adults patrolling the houses while stealing as much candy as possible. The houses are procedurally generated utilizing room modules with graphics and aesthetics reminiscent of the 90s and 2000s.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-1\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"638\" src=\"http:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130-1024x638.png\" alt=\"\" class=\"wp-image-316\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130-1024x638.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130-768x479.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130-1536x957.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-235130.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The stealth system of The Last Halloween is our core gameplay feature in which all other systems converge. I was inspired by the stealth systems of older Assassin&#8217;s Creed games. The goal of the stealth system was to keep the player&#8217;s head on a swivel while in play and to make them consider their every action. I created various parameters to fine tune the stealth experience.<\/p>\n\n\n\n<p>Player<br>&#8211; Visibility &#8211; Time in enemy line of sight to be detected<br>&#8211; Noise &#8211; Noise level value attached to every action<br>Enemies<br>&#8211; Noise Detection &#8211; Threshold of noise to adjust patrol<br>&#8211; Follow Time &#8211; Time to track player after line of sight is broken<br>Environment<br>&#8211; Noise Dampener &#8211; Level noise is reduced per obstacle between player and enemy<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-2\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"639\" src=\"http:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624-1024x639.png\" alt=\"\" class=\"wp-image-320\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624-1024x639.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624-768x479.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624-1536x959.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-01-234624.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I also designed and programmed the gadgets the player can use to deal with the enemies.<br>&#8211; Alarm Clock &#8211; Thrown to attract enemies through noise<br>&#8211; Energy Drink &#8211; Consume for temporary speed boost<br>&#8211; Tow Bow &#8211; Fire at enemies to stun them <br>These gadgets filled 3 major purposes in a stealth game. To move enemies, to escape enemies, to stop enemies.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large wp-duotone-unset-3\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-id=\"327\" src=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943-1024x640.png\" alt=\"\" class=\"wp-image-327\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943-1024x640.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943-768x480.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943-1536x960.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-102943.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-4\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-id=\"326\" src=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003-1024x640.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003-1024x640.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003-768x480.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003-1536x960.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103003.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-5\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-id=\"325\" src=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123-1024x640.png\" alt=\"\" class=\"wp-image-325\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123-1024x640.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123-768x480.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123-1536x960.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103123.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-6\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-id=\"324\" src=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236-1024x640.png\" alt=\"\" class=\"wp-image-324\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236-1024x640.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236-768x480.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236-1536x960.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103236.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-7\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-id=\"330\" src=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659-1024x640.png\" alt=\"\" class=\"wp-image-330\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659-1024x640.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659-300x187.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659-768x480.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659-1536x960.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-103659.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>The Last Halloween&#8217;s procedural generation system uses sectioned modules to build whole houses. I started by making our first draft of modules shapes based on housing and apartment plans I could find. Afterwards I tested modules individually and arranged furniture to act as the primary cover for stealth based on player dimensions and playtesting. Using generated furniture nodes combined with set furniture I added an element of randomness that the player would have to account for when casing rooms for hiding spots. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-9\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" src=\"http:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017-1024x608.png\" alt=\"\" class=\"wp-image-333\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017-1024x608.png 1024w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017-300x178.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017-768x456.png 768w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017-1536x912.png 1536w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-115017.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I created and organized all the documentation in an Obsidian Vault. I organized individual features by their green, yellow, or red light designation. I catered the documentation style based on which members of my team were developing that system. Some features were documented with precise technical implementation or starting points. Others were documented with the overall desired results and connected features. I did this to improve efficiency of the team by ensuring each developer would get exactly what they needed at a glance of the documentation. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full wp-duotone-unset-10\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"715\" src=\"http:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122057.png\" alt=\"\" class=\"wp-image-334\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122057.png 829w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122057-300x259.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122057-768x662.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full wp-duotone-unset-11\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"438\" src=\"http:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122033.png\" alt=\"\" class=\"wp-image-335\" srcset=\"https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122033.png 802w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122033-300x164.png 300w, https:\/\/kareemelawar.me\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-04-122033-768x419.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/mannixgames.itch.io\/the-last-halloween\">Link to Game<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Team Size: 6 | Role: Designer\/Programmer<\/p>\n<p>Responsibilities:<br \/>\n\u2013 Level Designer<br \/>\n\u2013 Stealth System Designer<br \/>\n\u2013 Gadget Programmer<br \/>\n\u2013 Document Project<\/p>\n","protected":false},"author":1,"featured_media":313,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7],"tags":[],"class_list":["post-312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gallery-projects","category-home-page-projects"],"_links":{"self":[{"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=312"}],"version-history":[{"count":5,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions"}],"predecessor-version":[{"id":343,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions\/343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=\/wp\/v2\/media\/313"}],"wp:attachment":[{"href":"https:\/\/kareemelawar.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kareemelawar.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}