Filling empty player slots with bots that make good strategic decisions – which objective to contest, when to defend, where to concentrate force — is hard when objective value is dynamic, contested, and shaped by every other unit on the map. This talk covers how we built and shipped the strategic decision layer for World of Tanks: HEAT. We treat every unit on the map — allies and enemies alike — as a token in a masked multi-head transformer, so the model reasons about units in context, and predicts per-vehicle tactical signals. An optimizer then turns those signals into coordinated, capacity-constrained team assignments in real time. We deliberately confine learning to tactical scoring so the solver, its constraints, and hand-tuned strategy stay controllable and inspectable for designers. Expect the full pipeline: model design, calibration, the solver and its constraints. Plus the lessons: why our best online policy looks worse on several offline metrics, and how we keep the whole decision step under 30ms in production.
1. Frame it as constrained assignment, not ranking. A practical predict-then-optimize blueprint for multi-agent decisions: keep learning confined to per-(agent, objective) tactical scoring and hand global coordination to a classical optimizer layer that owns capacity, occupancy, and many-to-one allocation. Attendees will see why this is a task-allocation problem rather than a classical RecSys, and how the split keeps the system controllable and inspectable for designers.
2. A reusable model architecture for scoring a multi-agent state. How to turn a messy 10v10 battle snapshot into a calibrated (vehicle × objective) score cube: encode every unit on the map — allies and enemies — as a token, use a masked multi-head transformer so units attend to each other, route each pair through DCNv2 cross-heads for explicit bounded-degree feature crosses and calibrate the binary heads so the outputs are usable as solver costs, not just rankings. A concrete, transferable recipe for anyone scoring entitie.
3. Training useful predictors from weak, trajectory-derived labels. What to do when you only ever observe one realized outcome per replay and have no counterfactuals for the roads not taken: derive commitment labels from future trajectories, supervise a set of heads under masking so partial/overlapping events don’t corrupt the signal, balance the heads with multi-task optimization (FAMO) so none dominates, and calibrate so probabilities behave as soft costs downstream.
4. What it takes to ship under hard real-time constraints. Staying under ~30ms per decision step at 10v10 with CPU (ONNX) inference on a 3-second cadence, where the latency actually goes, and the AI designer facing spatial + score-decomposition visualization that made the system tunable.