{"id":927,"date":"2025-04-24T22:01:10","date_gmt":"2025-04-25T02:01:10","guid":{"rendered":"https:\/\/willkolb.com\/?p=927"},"modified":"2025-04-24T22:01:10","modified_gmt":"2025-04-25T02:01:10","slug":"oil-and-strings-take-memory","status":"publish","type":"post","link":"https:\/\/willkolb.com\/?p=927","title":{"rendered":"Oil and Strings take memory"},"content":{"rendered":"\n<p>Also for some reason my output log is taking up 8 gigs of memory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"710\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51-1024x710.png\" alt=\"\" class=\"wp-image-928\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51-1024x710.png 1024w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51-300x208.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51-768x532.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51-433x300.png 433w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-51.png 1391w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p> I admit I had a divide by zero error but why did it fill up the output log to the point of nearly crashing my computer&#8230;<\/p>\n\n\n\n<p>Other news, I reworked the bot deaths so they spray oil everywhere:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/2025-04-24_21-38-42.mp4\"><\/video><\/figure>\n\n\n\n<p>This is a oil material I made in gimp, then randomly subdivide and throw on walls. The oil material I made from an awesome blood splatter tutorial here:  <a href=\"https:\/\/www.gimpusers.com\/tutorials\/blood-splatter-texture\">https:\/\/www.gimpusers.com\/tutorials\/blood-splatter-texture<\/a><br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"531\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-1024x531.png\" alt=\"\" class=\"wp-image-930\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-1024x531.png 1024w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-300x156.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-768x399.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-1536x797.png 1536w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52-500x259.png 500w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-52.png 1686w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Which long story short, it&#8217;s just the &#8220;sparks&#8221; brush grey-scaled. But still&#8230;.<\/p>\n\n\n\n<p>I also did another pass on the AI to 1.) stop it from following you while it was reloading and 2.) To keep it moving during a fight.<\/p>\n\n\n\n<p>#2 was done by adding a list of positions where the bot received damage last<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"394\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-53.png\" alt=\"\" class=\"wp-image-931\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-53.png 721w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-53-300x164.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-53-500x273.png 500w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"255\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-54.png\" alt=\"\" class=\"wp-image-932\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-54.png 819w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-54-300x93.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-54-768x239.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-54-500x156.png 500w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<p>Then I made an eqs query context to basically make the bot shy away from where it was shot before.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"657\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-55.png\" alt=\"\" class=\"wp-image-933\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-55.png 814w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-55-300x242.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-55-768x620.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-55-372x300.png 372w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/figure>\n\n\n\n<p>To fix #1 it was just a weird quirk of ai services objects. The way I&#8217;m looking at the player is via a service (Called PatrolBot2FaceTargetService), which runs every 0.5 seconds that sets a &#8220;focus&#8221; variable for the ai controller. This essentially just turns the controller to the object it wants to &#8220;focus&#8221; on.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57-1024x620.png\" alt=\"\" class=\"wp-image-935\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57-1024x620.png 1024w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57-300x182.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57-768x465.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57-496x300.png 496w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-57.png 1122w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The issue was that that green guy was running after it stopped going down the &#8220;findFiringPosition&#8221; leg. So you never really cleared out the focus on the character. So a quick fix is when the bot reloads it drops all focus<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"298\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-56.png\" alt=\"\" class=\"wp-image-934\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-56.png 825w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-56-300x108.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-56-768x277.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-56-500x181.png 500w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/figure>\n\n\n\n<p>Here&#8217;s the results of the two:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/2025-04-24_21-52-22.mp4\"><\/video><\/figure>\n\n\n\n<p>Honestly I think its already helping out with making fights a bit more dynamic. <\/p>\n\n\n\n<p>I also added bot teams so I can start doing stuff like this:<br><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/2025-04-24_21-54-11.mp4\"><\/video><\/figure>\n\n\n\n<p>I want to somehow get the eqs setup so it is a bit more random, you can see both of the top two bots moving upwards to find the next &#8220;good&#8221; position, which is scored more from where they&#8217;re at. I think I&#8217;ll need to do some kind of radius check? Not sure yet.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/2025-04-24_22-00-20.mp4\"><\/video><\/figure>\n\n\n\n<p>There still other issues to sort out also&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Also for some reason my output log is taking up 8 gigs of memory. I admit I had a divide by zero error but why did it fill up the output log to the point of nearly crashing my computer&#8230; Other news, I reworked the bot deaths so they spray oil everywhere: This is a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":933,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,29,9],"tags":[],"class_list":["post-927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gamedev","category-gimp","category-unreal"],"_links":{"self":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=927"}],"version-history":[{"count":1,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/927\/revisions"}],"predecessor-version":[{"id":939,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/927\/revisions\/939"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/media\/933"}],"wp:attachment":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}