{"id":583,"date":"2026-02-10T00:06:52","date_gmt":"2026-02-09T23:06:52","guid":{"rendered":"https:\/\/hexleaf.studio\/?p=583"},"modified":"2026-02-18T10:40:48","modified_gmt":"2026-02-18T09:40:48","slug":"blog-post-1-unter-der-haube-unsere-einheiten-von-grund-auf-neu-gebaut","status":"publish","type":"post","link":"https:\/\/hexleaf.studio\/en\/2026\/02\/10\/blog-post-1-unter-der-haube-unsere-einheiten-von-grund-auf-neu-gebaut\/","title":{"rendered":"Blog Post 1 \u2013 \"Under the Hood: Rebuilding Our Units from Scratch\""},"content":{"rendered":"<p>Hey everyone! Welcome to the very first Banner Rush dev blog. We're a small studio \u2014 okay, a one-person studio \u2014 working hard to bring you a tactical real-time card game that we're genuinely proud of. And today, we want to pull back the curtain on one of the biggest changes we've made recently.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Big Rewrite<\/h3>\n\n\n\n<p>Sometimes in game development, you have to take a step back to take two steps forward. That's exactly what happened with our unit system \u2014 the core of everything that moves, fights, and dies on the battlefield.<\/p>\n\n\n\n<p>Our old system worked. It got the job done. But over time, it had grown into a massive, tangled mess. One single file was responsible for melee combat, ranged attacks, hybrid units, animations, health bars, networking \u2014 you name it. Every time we wanted to change how archers behave, we risked breaking how swordsmen fight. Not great.<\/p>\n\n\n\n<p>So we took a deep breath and rebuilt the entire thing from scratch.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4.png\" alt=\"Bannerrush_Archer\" class=\"wp-image-585\" style=\"width:643px;height:auto\" srcset=\"https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4.png 1024w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-300x300.png 300w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-150x150.png 150w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-768x768.png 768w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-12x12.png 12w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-600x600.png 600w, https:\/\/hexleaf.studio\/wp-content\/uploads\/2026\/02\/Portrait_Archer_Lv4-100x100.png 100w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What Changed (And Why You'll Notice)<\/h3>\n\n\n\n<p>We split our unit logic into specialized modules. Melee units, ranged units, and hybrids each got their own combat brain. What does that mean for you as a player?<\/p>\n\n\n\n<p class=\"translation-block\">Archers actually feel like archers now. They draw their bows, aim, and release with proper timing. Before, the animation sometimes felt off \u2014 shots would fire before the bow was fully drawn, or arrows would lag behind. Now, every archer's attack is perfectly synced with their animation. It sounds like a small thing, but trust us: it makes combat feel so much more satisfying.<\/p>\n\n\n\n<p class=\"translation-block\">Smarter target selection. Ever watched three of your archers all shoot the same enemy while another one walks right past them? Yeah, us too. Units now spread their attacks across enemies intelligently. If one archer is already targeting an enemy, the next one picks a different target. No more wasted arrows.<\/p>\n\n\n\n<p class=\"translation-block\">Projectiles that behave. We fixed a sneaky bug where arrows could hit multiple units at once if they were standing too close together. One arrow, one hit \u2014 unless you're using a piercing ability, of course.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Leaner, Meaner Code<\/h3>\n\n\n\n<p>Here's a fun number: we went from over 3,100 lines of code down to about 2,000. That's a 34% reduction. Less code means fewer places for bugs to hide, and it means we can add new unit types and abilities much faster going forward.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What's Next?<\/h3>\n\n\n\n<p>This rewrite laid the foundation for a lot of exciting stuff coming soon. Better AI, new abilities, smoother animations \u2014 it all starts here. Stay tuned for our next post, where we'll talk about how we made Banner Rush's AI opponents smarter and more unpredictable.<\/p>\n\n\n\n<p>Thanks for reading, and thanks for following the journey. If you're excited about Banner Rush, keep an eye on our Steam page \u2014 more news coming very soon!<\/p>\n\n\n\n<p><em>\u2014 Tommy, HexLeaf Studio<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Hey Leute! Willkommen zum allerersten Banner Rush Dev-Blog. Wir sind ein kleines Studio \u2014 okay, ein Ein-Mann-Studio \u2014 das hart daran arbeitet, euch ein taktisches Echtzeit-Kartenspiel zu liefern, auf das wir wirklich stolz sind. Und heute wollen wir euch einen Blick hinter die Kulissen auf eine der gr\u00f6\u00dften \u00c4nderungen der letzten Zeit geben. Der gro\u00dfe [&hellip;]<\/p>","protected":false},"author":1,"featured_media":410,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-post"],"_links":{"self":[{"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/posts\/583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/comments?post=583"}],"version-history":[{"count":4,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/posts\/583\/revisions"}],"predecessor-version":[{"id":588,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/posts\/583\/revisions\/588"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/media\/410"}],"wp:attachment":[{"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/media?parent=583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/categories?post=583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hexleaf.studio\/en\/wp-json\/wp\/v2\/tags?post=583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}