{"id":770,"date":"2025-04-01T21:59:51","date_gmt":"2025-04-02T01:59:51","guid":{"rendered":"https:\/\/willkolb.com\/?p=770"},"modified":"2025-04-01T21:59:51","modified_gmt":"2025-04-02T01:59:51","slug":"they-keep-killing-each-other","status":"publish","type":"post","link":"https:\/\/willkolb.com\/?p=770","title":{"rendered":"They Keep killing each other&#8230;"},"content":{"rendered":"\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-01_20-30-32.mp4\"><\/video><\/figure>\n\n\n\n<p>I re-wrote a bunch of the patrol bot AI to use EQS (Environmental query system: see <a href=\"https:\/\/dev.epicgames.com\/documentation\/en-us\/unreal-engine\/environment-query-system-quick-start-in-unreal-engine#2-environmentquerycontext\">https:\/\/dev.epicgames.com\/documentation\/en-us\/unreal-engine\/environment-query-system-quick-start-in-unreal-engine#2-environmentquerycontext<\/a> ) , which should greatly simplify the the bots and give them better criteria to find spots that see the player, but are also kinda close.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"659\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1024x659.png\" alt=\"\" class=\"wp-image-772\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1024x659.png 1024w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-300x193.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-768x494.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-467x300.png 467w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image.png 1272w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here&#8217;s the EQS Tree:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"605\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1.png\" alt=\"\" class=\"wp-image-773\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1.png 816w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1-300x222.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1-768x569.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-1-405x300.png 405w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><\/figure>\n\n\n\n<p>Essentially EQS is a way to break up the navigation grid into nodes, each has a score and the EQS tree determines the score of each node. (Lower the better). In this case I have two tests for each node: Can the node see the current location of the player? Am I close to the player? Here&#8217;s another video of things kinda working but not fully:<\/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-01_20-39-54.mp4\"><\/video><\/figure>\n\n\n\n<p>I also fixed up the rocket so now it wont fly through walls<\/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-01_21-44-56.mp4\"><\/video><\/figure>\n\n\n\n<p>Here&#8217;s some quick gameplay of what I have atm:<\/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-01_21-46-52.mp4\"><\/video><\/figure>\n\n\n\n<p>It&#8217;s very silent right now&#8230;Also the stabby bots are quick as hell and I want some kinda warning for that. The gameplay right now is very serious sam and I want to tone it back speed wise. I think I might just slow down all the characters and add it some head bob. <\/p>\n\n\n\n<p>Longer gameplay (with sound) below.<\/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-01_21-53-03-1.mp4\"><\/video><\/figure>\n\n\n\n<p>The map I was playing on isn&#8217;t great but I figure it might be better than that dev arena that I had before. I&#8217;m in the process of re-making the warehouse as a big static mesh so it&#8217;s easier on lower performance machines (right now it&#8217;s like 200+ meshes).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"658\" src=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2-1024x658.png\" alt=\"\" class=\"wp-image-777\" srcset=\"https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2-1024x658.png 1024w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2-300x193.png 300w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2-768x493.png 768w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2-467x300.png 467w, https:\/\/willkolb.com\/wp-content\/uploads\/2025\/04\/image-2.png 1211w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>My 4090 fan is starting to spin up more often so I gotta feeling I might be hitting the limit of my &#8220;optimize later&#8221; strategy.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I re-wrote a bunch of the patrol bot AI to use EQS (Environmental query system: see https:\/\/dev.epicgames.com\/documentation\/en-us\/unreal-engine\/environment-query-system-quick-start-in-unreal-engine#2-environmentquerycontext ) , which should greatly simplify the the bots and give them better criteria to find spots that see the player, but are also kinda close. Here&#8217;s the EQS Tree: Essentially EQS is a way to break up [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":777,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7,9],"tags":[],"class_list":["post-770","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-gamedev","category-unreal"],"_links":{"self":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/770","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=770"}],"version-history":[{"count":1,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/770\/revisions"}],"predecessor-version":[{"id":780,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/posts\/770\/revisions\/780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=\/wp\/v2\/media\/777"}],"wp:attachment":[{"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willkolb.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}