@Magenta, there is no end-game message at this time, but that's a good suggestion. @Moogie's advice is the best option for now. The bots don't get any info. It is your program that receives the Ready messages, and then ongoing Bot messages and controls the actions of the bots.
Regarding the changes we discussed over laser and shield balancing: The changes will take some time, so if we get another entry (arrowslit anyone?), I'll leave these rules as they are and start a new question later. If not, I'll edit this question once the changes are ready.
@Moogie, fair point. I'm working up to the full scope of the game which includes scrap collection and bot manufacturing, and these functions will depend heavily on movement. In the mean time, this discussion over laser and shield balancing is extremely beneficial and I truly appreciate the participation and opinions.
(2/2) An important question: since this will change the dynamic between all bots, should I make these changes now, or allow this challenge to close and come back with a new version? I'm leaning towards new challenge.
(1/2) What I'm hearing is: lasers are too powerful, shields are too weak, and bot stacking should result in friendly fire. Here's what I plan to do: make laser damage exponentially decay with distance so longer-range hits will do < 1 damage, change shields to not pop until they absorb 1 damage, and move the laser origin closer to the center of the bot so that stacking results in friendly fire. This means that long-distance fire will be less potent when it hits, and shields can last longer against weak long-distance fire. Thanks for the input @Moogie and @Draco18s!
@Draco18s, that's a shame! I could imagine someone taking advantage of the inaccuracy of Bombard's long distance shooting by creating an arrowslit scenario with heavily shielded bots.
@Draco18s, that is a gif of a game between the "reckless abandon" sample player program (top left) and "death star" (bottom right). I'll add some details about what the colors and shapes mean.