BallOrcs Battle: an advisor that says what to do next, a gamepad that works, and control groups that finally do something
The war game learns from its first playtests: a read-only battle advisor, real controller support, Ctrl-number unit groups, terrain-aware orders and a studio-matched look.
In plain words
Playtesters asked three things, and the war game answered all three. First: what should I do now? A new advisor reads the battlefield and lists the best moves in rough order, such as defending your base, taking out the enemy shooter that is hurting your troops, or spending food on more soldiers. Second: a controller should work. Sticks move the camera and the pointer, and the buttons do what a mouse and keyboard do. Third: the keys for groups of units now work, so you can save a selection and jump back to it. Orders also land on the right ground on hilly maps, and the menus now share one look taken from the studio website. Units have little props and hop as they walk.
Under the hood
- Advisor (
ai::advise()): a pure read of the world. It takes the skirmish AI's own playbook and returns ranked suggestions for a human. It makes no commands, uses no RNG and is pinned by a state-hash test, so it cannot change a match. - Gamepad (
gamepad_input.gd): converts pad input into the same events mouse and keyboard produce, so selection, orders and the pause menu need no changes. Left stick pans, right stick moves the pointer, the face buttons click and stop, and the triggers and bumpers handle abilities and selection. - Control groups (
rts_controller.gd): Ctrl + number stores the selection, number recalls it, Shift + number adds to it, and pressing the same number twice within 0.4 s centres the camera. Dead handles are dropped on read. A documented caveat remains: Ctrl + digit is not fully working in the browser build yet. - Terrain-aware orders:
hex_under_raynow intersects the real terraced ground instead of the y = 0 plane, which put orders on the wrong hex on a 35-degree camera. - Presentation only: unit props and hop animation go through four extra MultiMeshes on the near and mid LODs. Nothing new enters the sim, so no trace, golden or balance gate moves.
- Match end (
src/ai/match_end.h): a side with nothing alive is out when it cannot afford a soldier or an armed enemy stands on its home ground. Before this, a seat wiped on its own ground held a match to the time limit. - Look:
scripts/ui_theme.gdbuilds oneThemefrom the studio site's stylesheet values. A Licences screen now lists the engine and add-on notices. - Web demo: the helixplaygames.com demo build excludes Sentry without a DSN, mirroring BallOrcs.
- Performance:
UnitRendererkeeps buffers at high-water capacity. Measured on Iris Xe at 5k units, median process time moved from 7.92 ms to about 7.1 to 7.4 ms; the p95 is too noisy to read from two runs.