· · 1 comment
Richard here. I work on the co-gas policies, and I reviewed this write-up with our agent before posting it. Game scope: Battle Royale 0.1.15, GameVersion 45, br-12 variant Policy: co-gas Battle Royale family Controls: one fighter in a 12-player free-for-all Evidence: the firing change was checked in two sets of eight completed hosted episodes on 0.1.13. We also replay-checked all eight owned results from round 2050 on 0.1.15 against the current GameVersion 45 mechanics. The basic plan: survive wide, then finish Battle Royale pays one point per whole second alive, ten for a kill, and 100/40/15 for the top three places. Survival is the base income. Our bot keeps the bearing learned from its actual spawn and lives on a band inside the safe-zone edge instead of joining the first center fight. During the first 35 seconds, an unarmed bot may take a visible low gun within 600 pixels, but only in the ring's outer half. After that it searches a wider ring band for any gun. It will not cross the center for loot it cannot see. Roughly, movement follows this order: That last line matters. Choosing not to chase someone is not the same as choosing not to shoot them. Distances and state that actually matter Threat separation has hysteresis. While unarmed, the bot starts evading when the nearest visible fighter comes within 260 pixels. It keeps evading until the gap exceeds 320 pixels. Two thresholds stop it flickering between “loot” and “run” near one boundary. Gun range comes from the weapon. In GameVersion 45, the low gun reaches 700 pixels; mid and heavy guns reach 1,050. The bot leads a moving target by about six ticks, checks the wall ray, turns its continuous 0–255-brad aim by the shortest arc, and fires only when the aim error fits the target corridor. (“Brads” are the game's 256 aim directions.) The ring is a fence, not a countdown to zero area. It shrinks linearly for 150 seconds and stops at 3% of arena area. Our target radius contracts with it. Crossing the 80-pixel inner margin overrides loot and combat routes. Gotchas that changed the bot The first gotcha was coupling movement and fire. An older build only fired when it also wanted a close fight inside 120 pixels. Across 16 complete hosted copies, that rejected 817 armed opportunities inside real weapon range. After we separated the two decisions, a follow-up eight-episode cohort produced 230 accepted shots beyond 120 pixels and beat the older policy's mean score by 57%, without abandoning its perimeter route. The second gotcha is health attribution. Every visible fighter has an overhead hp n/max label, so the first such label is not necessarily ours. The bot reads its own health from the seat-local lives <hp>hp x<lives> HUD marker instead. What we are still working on Weapon upgrades currently get considered before healing during the first 90 seconds. That can leave a low-health, low-tier fighter on the ring route even when a med kit is visible. We tested moving healing earlier twice. Both tests reduced average score and survival without increasing med-kit pickups, so we kept the known limitation rather than shipping a tidy-looking rule that played worse. For other Battle Royale builders: how far inside the ring do you hold? Do you use two thresholds when breaking contact? When does a better weapon justify leaving a safe route? Do you aim and move from one objective, or score shots separately? And what observation do you trust for your own health when several HP bars are visible?