Difference between revisions of "First Robots"

From Robowiki
Jump to navigation Jump to search
m (moved History/FirstBots to First Robots: should use category)
(cleanup, add links)
Line 1: Line 1:
The first publicly available bots were uploaded to the Bot Exchange beginning on August 17, 2001. The rules were slightly different, based entirely on survival, so most bots fired infrequently and some not at all. A deprecated method, getGunCharge?(), was used for much firepower calculation, but merely confuses the old bots in the current Robocode.
+
''': ''This article is about the history of Robocode, for the my first robot tutorial, please visit [[Robocode/My First Robot]].''
Brute was the first upload. Based almost entirely on sample.Tracker, Brute had a primitive sort of radar locking. Unfortunately, Brute's gun was always turned perpendicular to its body and only fired when the gun was facing the opponent - which rarely happened.
 
  
Jazzbot followed a day later. Jazzbot got stuck on the walls alot, but wasn't as inept as Brute. Jazzbot used the following code to fire: setTurnGunRight(normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));. It targetted bots who shot it when possible, and also had a "team mode." The next version of Jazzbot, had an intersting circular movement.  
+
The first publicly available bots were uploaded to the [[Bot Exchange]] beginning on August 17, 2001. The rules were slightly different, based entirely on [[survival]], so most bots fired infrequently and some not at all. A deprecated method, getGunCharge(), was used for much firepower calculation, but merely confuses the old bots in the current [[Robocode]].
  
SquigBot was next, like the original Jazzbot, its movement was most similar to sample.Crazy. SquigBot had a complicated aiming system that allowed it to his sample.Walls. The aiming was basically linear, but inadequate by today's standards.  
+
[[Brute]] was the first upload. Based almost entirely on sample.[[Tracker]], Brute had a primitive sort of [[Radar|radar locking]]. Unfortunately, Brute's gun was always turned perpendicular to its body and only fired when the gun was facing the opponent - which rarely happened.
  
MarkVIII? followed, it was less like the sample bots than the previous three, and had a leading aim that was not quite as good as SquigBot's. It was also capable of beating all the sample bots in melee. StalkerI?, which came the same day, could beat the samples by today's rules if it always fired threes, but it didn't. Stalker was a modified and fairly successful Tracker except for a wall bug.  
+
[[Jazzbot]] followed a day later. Jazzbot got stuck on the walls a lot, but wasn't as inept as Brute. Jazzbot used the following code to fire: <code>setTurnGunRight(normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));</code>. It targetted bots who shot it when possible, and also had a "team mode". The next version of Jazzbot had an intersting circular movement.
  
SmartBot? was the first bot of September '01 and did nothing productive, and StalkerIII? was an upgrade from StalkerI?. Two more upgrades followed: SquigBot 2 and Jazzbot4_1. Both used linear fire and had a sometimes locking radar. When both are always set to fire(3), the results are close, whereas if they are let to use their original fire control code, Jazzbot wins handidly. SquigBot's movement was still crazy like, while Jazzbot's was an interesting version of Spinbot. SquigBot was the better melee fighter of the two.  
+
[[SquigBot]] was next, like the original Jazzbot, its movement was most similar to sample.Crazy. SquigBot had a complicated aiming system that allowed it to his sample.Walls. The aiming was basically linear, but inadequate by today's standards.
  
CoreBot? then became the first bot with multiple "cores" and an extendable framework. It was far bulkier than it would be today and had only two "cores." It was a wall rider in melee, and a rammer in 1vs1. Because of this, it usually finished 2nd in melee competitions.  
+
[[MarkVIII]] followed, it was less like the sample bots than the previous three, and had a leading aim that was not quite as good as SquigBot's. It was also capable of beating all the sample bots in [[melee]]. [[StalkerI]], which came the same day, could beat the samples by today's rule if it always fired threes, but it didn't. [[Stalker]] was a modified and fairly successful Tracker, except for a wall bug.
  
DeathSeeker? was an effective tracker/rammer, it attacked its opponent while making quick pauses to change direction more effectively. BaseBot? was released on the same day and wasn't very good. MovingDuck? was no better.  
+
[[SmartBot]] was the first bot of September '01 and did nothing productive, and [[StalkerIII]] was an upgrade from StalkerI. Two more upgrades followed: SquigBot 2 and Jazzbot4_1. Both used linear fire and had a sometimes locking radar. When both are always set to <code>fire(3)</code>, the results are close, whereas if they are let to use their original fire control code, Jazzbot wins handidly. SquigBot's movement was still crazy like, while Jazzbot's was an interesting version of [[SpinBot]]. SquigBot was the better melee fighter of the two.
  
Rotator is possibly the most significant bot of the early collection. It had successful radar locking done with little code: double theta=normalizeAngle(bearing-getRadarHeadingRadians()); if(theta<0) setTurnRadarLeftRadians(10000); else setTurnRadarRight(10000); Of course, that could be easily reduced, but it was nevertheless small and very effective. Rotator would charge in at a 30 degree angle and then orbit around the opponent at roughly a 90 degree angle. Every successful bot today can be traced back to this concept.  
+
[[CoreBot]] then became the first bot with multiple "cores" and an [[extendable framework]]. It was far bulkier than it would be today and had only two "cores". It was a wall rider in melee, and a [[Ramming Movement|rammer]] in [[one-on-one]]. Because of this, it usually finished 2nd in melee competitions.
  
The last two bots are inconsequential: KillerGorilla? got confused a lot, and Detector spun its gun around madly.
+
[[DeathSeeker]] was an effective tracker/rammer, it attacked its opponent while making quick pauses to change direction more effectively. [[BaseBot]] was released on the same day and wasn't very good. [[MovingDuck]] was no better.
 +
 
 +
[[Rotator]] is possibly the most significant bot of the early collection. It had successful radar locking done with little code: <code>double theta = normalizeAngle(bearing-getRadarHeadingRadians()); if(theta<0) setTurnRadarLeftRadians(10000); else setTurnRadarRight(10000);</code> Of course, that could be easily reduced, but it was nevertheless small and very effective. Rotator would charge in at a 30 degree angle and then orbit around the opponent at roughly a 90 degree angle. Every successful bot today can be traced back to this concept.
 +
 
 +
The last two bots are inconsequential: [[KillerGorilla]] got confused a lot, and [[Detector]] spun its gun around madly.
 +
 
 +
[[Category:Robocode history]]

Revision as of 12:58, 27 August 2009

: This article is about the history of Robocode, for the my first robot tutorial, please visit Robocode/My First Robot.

The first publicly available bots were uploaded to the Bot Exchange beginning on August 17, 2001. The rules were slightly different, based entirely on survival, so most bots fired infrequently and some not at all. A deprecated method, getGunCharge(), was used for much firepower calculation, but merely confuses the old bots in the current Robocode.

Brute was the first upload. Based almost entirely on sample.Tracker, Brute had a primitive sort of radar locking. Unfortunately, Brute's gun was always turned perpendicular to its body and only fired when the gun was facing the opponent - which rarely happened.

Jazzbot followed a day later. Jazzbot got stuck on the walls a lot, but wasn't as inept as Brute. Jazzbot used the following code to fire: setTurnGunRight(normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));. It targetted bots who shot it when possible, and also had a "team mode". The next version of Jazzbot had an intersting circular movement.

SquigBot was next, like the original Jazzbot, its movement was most similar to sample.Crazy. SquigBot had a complicated aiming system that allowed it to his sample.Walls. The aiming was basically linear, but inadequate by today's standards.

MarkVIII followed, it was less like the sample bots than the previous three, and had a leading aim that was not quite as good as SquigBot's. It was also capable of beating all the sample bots in melee. StalkerI, which came the same day, could beat the samples by today's rule if it always fired threes, but it didn't. Stalker was a modified and fairly successful Tracker, except for a wall bug.

SmartBot was the first bot of September '01 and did nothing productive, and StalkerIII was an upgrade from StalkerI. Two more upgrades followed: SquigBot 2 and Jazzbot4_1. Both used linear fire and had a sometimes locking radar. When both are always set to fire(3), the results are close, whereas if they are let to use their original fire control code, Jazzbot wins handidly. SquigBot's movement was still crazy like, while Jazzbot's was an interesting version of SpinBot. SquigBot was the better melee fighter of the two.

CoreBot then became the first bot with multiple "cores" and an extendable framework. It was far bulkier than it would be today and had only two "cores". It was a wall rider in melee, and a rammer in one-on-one. Because of this, it usually finished 2nd in melee competitions.

DeathSeeker was an effective tracker/rammer, it attacked its opponent while making quick pauses to change direction more effectively. BaseBot was released on the same day and wasn't very good. MovingDuck was no better.

Rotator is possibly the most significant bot of the early collection. It had successful radar locking done with little code: double theta = normalizeAngle(bearing-getRadarHeadingRadians()); if(theta<0) setTurnRadarLeftRadians(10000); else setTurnRadarRight(10000); Of course, that could be easily reduced, but it was nevertheless small and very effective. Rotator would charge in at a 30 degree angle and then orbit around the opponent at roughly a 90 degree angle. Every successful bot today can be traced back to this concept.

The last two bots are inconsequential: KillerGorilla got confused a lot, and Detector spun its gun around madly.