NightAndDay
NightAndDay | |
Author(s) | User:Skilgannon |
Extends | TeamRobot |
Targeting | Guess Factor targeting |
Movement | Minimum-Risk Movement with randomisation |
Best Rating | 4th in MeleeRumble |
Download |
Bot Name
Two bots: Night and Day, as a team, make:
NightAndDay
Day extends Night But changes the color From black to white
Author
Skilgannon
Extends
TeamRobot
What's special about it?
My first TwinDuel bot(s?), and my first team. It is designed so that I only have to change a few constants and it will be able to act as a full 5v5 team. It also uses rudimentary friendly-fire avoidance, by using Line2D.Double.distSeg(Point2D.Double) and projecting the absolute bearing of bots.
How competitive is it?
Fairly. Nothing amazing though.
How does it move?
It uses MinimumRiskMovement with several ideas taken from Shiz (namely only moving parallel to bots which I are likely to target me), but all my own code and implementation. I've also expanded on the idea somewhat, keeping track of which bots are *actually* targeting me and moving parallel to them.
How does it fire?
1.0 used a segmented PlayItForward gun, which rebuilt 50 movements, but the later versions use a simple GuessFactor gun adapted to hit non-relative movements.
How does it dodge bullets?
It randomly reverses every now and again, according to when Raiko's flattener says it should.
How does the TwinDuel strategy differ from one-on-one strategy?
I tried to use smooth functions for everything, so that there are no specific cases for 2v2, 2v1, 1v2, or 1v1. The closest it comes to special casing is by segmenting its gun on the number of teammates it has.
How does it select a target to attack/avoid in melee?
It attacks bots that are:
- Not on its team (duh)
- Easier to hit because they are:
- Closer
- Moving parallel to the absolute bearing
- Have less energy
It will only change targets if the new target's 'targetabililty' *0.9 is greater than that of the old target. This prevents thrashing.
This is a fine balance between trying to make both teammates gang up on one enemy in order to get a 2v1 advantage, and trying to shoot the easiest to hit bot in order to a) keep my energy high and b) inflict maximum damage.
= What does it save between rounds and matches?
No saving between matches (TwinDuel rules), but between rounds it saves the successful GuessFactors
Where did you get the name?
They are the two swords wielded by the fighter Skilgannon in several books by David Gemmell.
Can I use your code?
Under the following terms:
- Your bot MUST be OpenSource.
- You give credit in your code, and in any documentation of your bot.
- Pleeaase don't just take my bot, tweak it and release it under another name. Rather tell me about the changes, and I'll give you credit. =)
What's next for your robot?
Beating LuminariousDuo, LunarTwins, GeminiTeam and MarioBros - how I have no idea =)
Does it have any WhiteWhales?
LuminariousDuo and MarioBros
What other robot(s) is it based on?
None really....some of the gun stuff I double checked against Connavar, and the flattener decision is from Raiko.