log messages missing from "say" with multiple robots from same template
kostmo opened this issue · comments
Two robots (created from the same template) that say
at the same tick do not generate distinct log messages.
Demonstrated in #1593.
It may also be a problem when a single robot say
s two different things, but both invocations of say
are wrapped in the same instant
block.
I tried to look into this, but the code for the Say
command in Swarm.Game.Step
is sorely lacking in comments and I gave up. I think refactoring + adding some comments is probably the first order of business!
This is not a bug, but a feature! 🐛 😄 @byorgey I think addLatestClosest
says it all.
IIRC the idea was that when robots shout over each other, only the closest one will be clearly heard.
I don't have a strong opinion on how it should behave now, honestly it might be best to make these restrictions configurable.
That way we would have a top-level structure documenting all the restrictions the various commands have.
I must admit this information is not present in say
docs, if the limitation stays then we should mention it there.
My vote would be to remove the restriction. The physical justification makes sense, given a certain model of limited "radio bandwidth", but it doesn't necessarily contribute to the "fun factor"; rather it has so far frustrated the debugging process.