For those that have tackled messaging between teammates or have thought about the concept, I'd like to hear about it. I plan to document the various team-based messaging concepts here prior to implementation and the stuff that actually works will end up in the documentation.
I've done a bit. The most sophisticated thing I've done was full scan sharing. In this setup, a bot receives an onScannedRobot event for each scan by anyone on the team (but one tick later, because it takes one tick to send). This involved pulling the raw info from ScannedRobotEvent, packaging it into a Serializable object along with the bot's location, broadcasting it, then recreating the ScannedRobotEvent (tweaking some things that are relative to scanning bot's location) on the other side and firing an onScannedRobot manually. I have it in a Twin Duel team somewhere, I could find it and share if you're interested.
Good luck with your bot. Sounds like you are off to a good start. =) --Voidious 15:07, 10 June 2010 (UTC)
Oh, one more thing - a lot of Twin Duel teams do some very minimal team communication, and many of those are open source if you want to take a look. My LuminariousDuo just sends current location to its teammate each tick, for instance. --Voidious 15:08, 10 June 2010 (UTC)
Thanks for that. Indeed the first thing that came to mind for me was for everyone to broadcast data about scanned robots in an effort to give the most up-to-date possible information about where the other teams' bots are. I will take a look at LuminariousDuo for sure. Anything to help me get off to a good start. --VARoadstter
Hmm, I missed this before. I've done a couple team bots so I'll mention how they worked:
- LunarTwins: One of the team-of-two was a drone with no radar, so all it communicated was it's own location. Then the non-done of the team just instructed the drone what it's goal location should be and where it should aim. Very very simple.
- Polylunar: The situation gets more interesting here because it's a five-bot-team all with radar. In order to keep track of all enemies well enough, it was necessary to share enemy scans between them of course. Because Polylunar was extending the highly-cooperative strategies I used in LunarTwins, it would be necessary for me to follow one these strategies:
- Some bot takes a leadership role and divides the targets
- Some sort of ad-hoc "target claiming" system
- Send no communication except for scans and location of self
- In some ways #1 seemed straightforward, however it has a serious drawback of causing the reaction time of the team to be greater. #2 doesn't really fix the issue with #1 and would be more painful to implement. Then solution #3 ended up seeming the right choice since it gives the best possible response time for the team. The only possible caveat was that the computation of which bot targets which bot needed to be repeated for each team member, and that for behavior to be sane all bots would need to use the exact same data set as input to the algorithm even if they have more up-to-date scans.
That's just the approaches I've taken anyway, and the reasoning why. --Rednaxela 06:00, 19 June 2010 (UTC)
Awesome. I've been quite impressed with Polylunar in my early testing as it is very efficient at killing bots and I could tell there was some form of team communication going on. It sounds like I'm on the right track in terms of knowing which commands to create.
Does anyone include bullet information from their own shots as a means of helping teammates stay out of the way of friendly fire? I can't help thinking that would help in the overall survivability. --VARoadstter
- I'm pretty sure Xmen does this, and less sure that ShadowTeam does. --Voidious 00:07, 22 June 2010 (UTC)