{"id":13,"date":"2026-05-06T19:58:49","date_gmt":"2026-05-06T19:58:49","guid":{"rendered":"https:\/\/pushergame.site\/?p=13"},"modified":"2026-05-11T14:41:28","modified_gmt":"2026-05-11T14:41:28","slug":"devlog-adding-a-new-enemy-type","status":"publish","type":"post","link":"https:\/\/pushergame.site\/?p=13","title":{"rendered":"Devlog &#8211; Adding A New Enemy Type"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A particular piece of feedback I asked from playtesters were ideas for any new enemy types, as this presented the most potential for introducing variation in play style as well as content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A suggestion that stood out was adding &#8220;mines&#8221; to the game, that would have the potential to wipe out several members of the player&#8217;s crowd. I also realised this could be used by the player to destroy enemies, too. More options for skilful play was something I noticed was lacking in the current build of the game, so this was an addition I had to implement and test as soon as possible.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1786\" height=\"1129\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image.png\" alt=\"\" class=\"wp-image-36\" style=\"aspect-ratio:1.581898207937225;width:551px;height:auto\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image.png 1786w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-300x190.png 300w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-1024x647.png 1024w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-768x485.png 768w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-1536x971.png 1536w\" sizes=\"auto, (max-width: 1786px) 100vw, 1786px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with a simple Line2D sprite, I then added code to detect the player entering and start a 3 beat countdown using my dynamic music\/beat system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The explosion itself is a separate scene that emits a particle effect and contains a hitbox that deals damage to any object with a hurtbox. This includes the player, enemies and any ravers you currently have in your crowd.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1080 \/ 1080;\" width=\"1080\" controls muted src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/2026-05-06-20-24-56.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The particle effects are particularly influenced by <a href=\"https:\/\/en.wikipedia.org\/wiki\/ABA_Games\">Kenta Cho<\/a>&#8216;s work, particularly the fantastic game <em>Gunroar<\/em>. In the game, the explosion looks great!<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1080 \/ 1080;\" width=\"1080\" controls muted src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/2026-05-06-20-27-10.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next I need indicators for the explosion&#8217;s blast radius, whether it&#8217;s set off and the radius in which the player can set it off. The first is pretty simple with a circle showing the blast radius that I can flash every beat leading up to the explosion:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"924\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-4-1024x924.png\" alt=\"\" class=\"wp-image-50\" style=\"aspect-ratio:1.108249461609458;width:601px;height:auto\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-4-1024x924.png 1024w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-4-300x271.png 300w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-4-768x693.png 768w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-4.png 1324w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And drawing a circle around the mine with the same radius as the player detection if it hasn&#8217;t been set up (thankfully Godot makes this super easy with its _draw function):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"229\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-5.png\" alt=\"\" class=\"wp-image-51\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-5.png 964w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-5-300x71.png 300w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-5-768x182.png 768w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"547\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-6.png\" alt=\"\" class=\"wp-image-52\" style=\"width:581px;height:auto\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-6.png 718w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-6-300x229.png 300w\" sizes=\"auto, (max-width: 718px) 100vw, 718px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now the visuals were done I found a big problem in testing: the player&#8217;s hurtbox wasn&#8217;t registering the explosion&#8217;s hitbox by simply instantiating it, and the explosion wasn&#8217;t properly deleting itself. The fix for this was to have the hitbox as part of the explosion scene and then manually delete it after a frame:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"358\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-7-1024x358.png\" alt=\"\" class=\"wp-image-55\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-7-1024x358.png 1024w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-7-300x105.png 300w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-7-768x269.png 768w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-7.png 1237w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This physics frame technique didn&#8217;t work, but thankfully using a short timer worked for now:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"91\" src=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-9-1024x91.png\" alt=\"\" class=\"wp-image-57\" srcset=\"https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-9-1024x91.png 1024w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-9-300x27.png 300w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-9-768x68.png 768w, https:\/\/pushergame.site\/wp-content\/uploads\/2026\/05\/image-9.png 1221w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">This method hopefully won&#8217;t come back to haunt me<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, the mines work perfectly and can be a perfect way for players to lose their tail of chasing arrow enemies!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A particular piece of feedback I asked from playtesters were ideas for any new enemy types, as this presented the most potential for introducing variation in play style as well as content. A suggestion that stood out was adding &#8220;mines&#8221; to the game, that would have the potential to wipe out several members of the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pushergame.site\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13"}],"version-history":[{"count":13,"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions\/77"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pushergame.site\/index.php?rest_route=\/wp\/v2\/media\/24"}],"wp:attachment":[{"href":"https:\/\/pushergame.site\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pushergame.site\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pushergame.site\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}