The ICS413 Roborumble is coming soon, a software engineering class filled with competitive students wanting to make their virtual robots the best of the best. But one cannot start making the best of the best without seeing what robocode can do. We’ve played with the robots to meet simple requirements, but in preparation for the battle to come we must understand the possibilities presented to everyone by looking at the samples robocode provides in its installation.
Our current challenge: Analyze the movement, targeting, and firing of 8 different robot samples, codenamed Walls, RamFire, SpinBot, Crazy, Fire, Sitting Duck, Corners, and Tracker.
(feel free to click the name to see the Analysis of this alone as well as the Final Thoughts)
With each robot we are literally trying to get into the mind of what it was designed to do, find that ghost of the creator at the time he was making the robot saying, “I want you to do this robot, do this!” and in doing so find things about robocode and these robots that could be useful for our future competitive rounds of robot fighting.
Let’s take a look at the sample fighters:
1.Thinking Inside the Box: Walls
The Wall robot, true to its name, is a robot designed to go along the walls of the arena. Its primary objective is to round the walls in one movement as smoothly as possible. It rejects the concepts of stalking a target, or aiming its gun at a specific target in favor of simple mechanics.
Movement: Travels the wall at all times if possible, on start will arbitrarily aim for an edge, and if it impacts something it will rotate 90 and move towards the next wall after retreating. It is not specially aiming to be at the wall but its primary strategy requires it reaches the wall and hugs it.
Tracking: The robots design is to hold the gun perpendicular to the wall it is aiming to hug, in this way it is targeting the largest expanse giving it the most possible chance to aim at a target. On rotation the gun will rotate to compensate giving it one of the few moments when the gun isn’t aligned parallel to the x or y axis.
Firing: Indiscreet, the firing method for walls is set to fire shots of medium power whenever its gun and radar crosses paths with another robot. The simple method still appears effective against other robots, especially those with little movement.
Overall: Walls is one of the hardest to hit robots in all the sample bots, it aims at anything and is constantly moving at high speed with little stopping it, a good strategy to consider.
Back to Top of Entry
2. The Football Lineman with Cannons: RamFire
The RamFire robot attempt to prove that running over an opponent can be more beneficial than shooting at them. It general concept is to use high powered shots to weaken opponents in combination with ramming them. It tries to show that while shooting may have range a good old fashion ram still has its place in combat.
Movement: The RamFire’s movement style focuses on charging above and beyond the distance to ram a target, often this is part of its folly as a robot moving quickly in a direction not following that path will be able to easily evade.
Tracking: The tracking method for RamFire follows a simple “Sic’um boy” attitude. The radar/gun will spin till it picks up any other opponent and makes that its target. In addition anytime it hits another robot it considers that its target and will start taking the contact as a ramming point, switching that to its target due to proximity.
Firing: When it comes to firing, the RamFire uses it as a secondary attack rather than primary. The only time the RamFire will actually fire is after a successful ram. In addition it is designed to never fire enough to kill if possible and resorts to an aggressive ram after the fire to try to finish off its opponents.
Overall: The robot as an interesting Close Quarters Combat style to it, but the effectiveness is limited to slow moving or distracted opponents to be effective.
Back to Top of Entry
3. Who Gave Their Robot a Washing Machine Motor?: SpinBot
Hope he didn’t need to do his laundry anytime soon, the SpinBot takes the concept of circles and uses that as its evasive tactic. Being an AdvancedRobot rather than a regular Robot, one would think it would give it an advantage in battle, but unfortunately the advance settings prove ineffective in this form.
Movement: The design of SpinBot for movement is very simple, SPIN. It is designed to spin in a very tight circle with one exception, if the robot hits another robot it considers if it caused the collection and will change its circle movement slightly to compensate for the impacted in path. In this way the SpinBot attempts to be constantly in motion.
Targeting: SpinBots design has no unique targeting style, and will like many others simply fire if its radar picks up another robot. It uses the movement it travels in to move its forward facing gun into different angles to hit things pretty much locking its gun to the forward section of the robot.
Firing: SpinBots firing method is also very simple. Quoting the author, SpinBot will “Fire hard!” when it finds another robot. This simple method may help take out another robot but also risks a lot of energy to fire with max power with any target it find no matter what distance or change of hitting.
Overall: SpinBot is just a taste of AdvanceRobots ability to do many actions at once. It is not very effective in combat and its advanced spin can hurt it more when it comes to dodging bullets, since it runs a very tight circle. An interesting sample but not something adaptable for competition easily.
Back to Top of Entry
4. Trying to Give Madness a Method: Crazy
The Crazy is an attempt to use AdvancedRobot to make a swerve path that no other robot will take, and no regular robot could follow. The key to it is motion, which is unique but not necessarily useful.
Movement: The Crazy’s movement is grounded in AdvanceRobot class’s ability to turn and move at the same time. By alternating between turning right 90, left 180, and right 180 while moving forward, for as long as it can. It alternates between forward and backward travel whenever it impacts something. It is the most unique pattern of movement, and does help in some dodging but not a lot.
Targeting: The Crazy uses the same tracking as the SpinBot, relying on its motion to bring the gun in front of an opponent with no movement away from it pointing straight ahead.
Firing: Crazy fires with bullets of power 1 whenever it scans another robot. Unlike the SpinBot it is a little more conservative with its power but because it uses the same targeting system, the result is almost the same, shots will miss and power will be wasted unless the robot it is firing at is moving very little.
Overall: Crazy’s Movement was a demonstration of how AdvancedRobots methods can give it lots of options, but in combat the low level targeting and firing method makes it more a sample of potential than anything else. The Crazy movement avoids shots ok, but because part of is path is generally linear it still gets hit by bullets at the right angles rather consistently.
Back to Top of Entry
5. Destroy Before Being Destroyed: Fire
The Fire’s primary goal is as simple as its name, to fire at anything it sees. It is given one defensive movement but its main goal is to fire at everything first and foremost.
Movement: Fire does not move normally. Fire’s one defense is to move to a new location by travelling perpendicular to the angle the bullet that hit him came from (preventing a stationary robot from firing at it again).
Targeting: Fire will rotate its gun and radar around in circles and target whatever crosses the path of the radar. It is a simple but effective way to find targets.
Firing: Fire will fire whenever it scans another robot. As an extra trick, if the Fire runs into another robot it will fire at that robot as well. In this way it can get rid of obstacles that are close before moving back to sweeping for new targets.
Overall: A good demonstration of radar firing and a simple defense tactic, a good place to start for sample robots.
Back to Top of Entry
6. Awaiting the End of Battle: Sitting Duck
Sitting Duck is not meant to win in combat, it shows basic statistics in battle through the status of the robot, but otherwise does nothing.
Movement: Sitting Duck does not move.
Targeting: Sitting Duck does not target.
Firing: Sitting Duck does not fire.
Overall: A Sitting Duck is a sitting duck, plain and simple.
Back to Top of Entry
7. Attempted Defensive Turret: Corners
The Corner robot can be thought of as Wall “Lite”, it wants to dominate a corner and spray its enemies in a sprinkler fashion. It wants to demonstrate the concept that in a corner it can only be attacked from half as many sides as in the center.
Movement: The Corner’s attempt to find the wall is dependent on not getting impacted based on what round it is on it will pick a corner based on general angle, rotate towards that angle right at the beginning, move towards the edge turn then head towards the corner, not doing so only if there is someone in the way. The fault occurs when it hits something on the way, as it considers that the end of its action even if it doesn’t reach the corner, combine that with Firing/Targeting and a serious flaw will occur.
Targeting: Corner is designed to target things in its path to the corner and get rid of them first. After this its main form of targeting is to sweep the open area away from the corner its standing in like how a sprinkler would rotate. It is an effective idea for spraying bullets into the field and is not targeting anyone specifically.
Firing: The firing method for Corner has the robot stop what it’s doing if it finds a robot in its gun path (whether it is moving to its corner or already in the corner sweeping its gun) and will fire based on the distance the opponent is at. The robot fires weak for distances greater than 200 or when it’s low on energy and greater 1 level at a time when it comes between 200 and 50, and then finally under 50.
Overall: The Corner idea is an ok one but its implementation is not perfect, in addition its goal of using the corner to evade getting hit is flawed in the fact that not moving makes it more of a target. This shows how some concepts may sound good but not be good in practice.
Back to Top of Entry
8. RamFire Minus Ram: Tracker
Tracker is RamFire’s little brother, designed to follow an opponent and fire at it when close but never intentionally ram into it. It has a couple extra tricks up its sleeve but generally it is a hunter but not a direct fighter.
Movement: Tracker will move towards a target it picks from tracking and move towards it within 100 pixels, if it gets too close to its target it will retreat back 40 units, and if it impacts another robot it will move towards that instead (moving back if it is too close again). It has a simple method of moving towards the opponent but trying not to be too close.
Targeting: The first time out the Tracker picks the first robot it scans as its target. It will then use that as a base. But if it cannot find that robot in even moves it will seek a new target. Also, if it impacts with a robot for any reason, it will decide to go after that robot for revenge.
Fire: When Tracker is between 150 and 100 pixels of the target, it will rotate gun at its target and fire at it with high power. This small window for firing leads Tracker to be more of a silent hunter than a silent killer, since it will rarely fire if its opponent is moving away from it constantly.
Overall: Tracker tries to put a lot of pressure on a robot by coming close to its opponent, probably a strong idea against a retreating robot, but in combat the limited range to fire feels a bit restrictive, in battle with all the sample robots I’ve reviewed it does not fair very well.
Back to Top of Entry
Final Thoughts: Each robots strengths and weaknesses are placed as lessons for a new programmer to learn what could and could not work in actual competition. Some things that sound like practical ideas are shown being broken apart, and some methods that seem simple are effective in the field. When it comes to designing our own robots this is something important to consider for any strategy, especially since each of our opponents will see the same things we do. With this combat briefing behind us, we know these three things: 1.Strategies need testing in situations, 2.Not every idea will work out well, and 3.This challenge to be the best will be a big one. The challenge moves forward again, it will soon be time.
Back to Top of Entry
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment