Difference between revisions of "Tron"

From Robowiki
Jump to navigation Jump to search
m (mark for cleanup)
(Minor cleanup work)
Line 3: Line 3:
 
'''Description'''
 
'''Description'''
  
Tron is a melee speciallist, it managed to stay in the top for a long time, ruled Simon's GladiatorialLeague? for some time and reached the finals in the RobocodeRumble.
+
Tron is a melee specialist, it managed to stay in the top for a long time, ruled Simon's GladiatorialLeague for some time and reached the finals in the [[RoboRumble]].
  
I came up with the idea while trying to make a "corner move" for Shadow. I needed it to make a sharp 90 deegrees turn to follow the walls in a corner, so I decided to make a new bot that allways turned 90º, that way it would be very easy to avoid walls. I never thought it would be so efective against most targeting algorithms, but I soon found out ;).
+
I came up with the idea while trying to make a "corner move" for [[Shadow]]. I needed it to make a sharp 90 degrees turn to follow the walls in a corner, so I decided to make a new bot that always turned 90º, that way it would be very easy to avoid walls. I never thought it would be so effective against most targeting algorithms, but I soon found out ;).
  
 
'''How does it move?'''
 
'''How does it move?'''
Line 13: Line 13:
 
'''How does it fire?'''
 
'''How does it fire?'''
  
Classic: The main targeting works like an enhanced version of MiniTron, an iterative linear/circular targeting. It keeps a small history of the enemy's run times to account for oscillators. It also has "special case" targeting for "stop'n'go" bots and bullet dodgers.
+
Classic: The main targeting works like an enhanced version of MiniTron, an iterative linear/circular targeting. It keeps a small history of the enemy's run times to account for oscillators. It also has "special case" targeting for [[Stop And Go]] bots and bullet dodgers.
  
New (v1.3+): A pattern recognition targeting that works in melee (I hope ;)).
+
New (v1.3+): A [[Dynamic Clustering|pattern recognition targeting]] that works in melee (I hope ;)).
  
 
'''How does it dodge bullets?'''
 
'''How does it dodge bullets?'''
Line 23: Line 23:
 
'''How does the melee strategy differ from one-on-one strategy?'''
 
'''How does the melee strategy differ from one-on-one strategy?'''
  
It uses a "zone based" anti-gravity logic for melee. For OneOnOne versions prior to 1.3 it just circles the enemy inverting direction when near a wall. Versions 1.3+ use a movement strategy similar to Shadow for OneOnOne.
+
It uses a "zone based" [[Anti-Gravity Movement|anti-gravity]] logic for melee. For 1v1 versions prior to 1.3 it just circles the enemy inverting direction when near a wall. Versions 1.3+ use a movement strategy similar to Shadow for 1v1.
  
 
'''How does it select a target to attack/avoid in melee ?'''
 
'''How does it select a target to attack/avoid in melee ?'''
  
It selects the closest enemy as a target. To avoid "thrashing" between enemies it doesn't change targets until a bot is 200px (IIRC) closer than the current target, or if the other "candidate" is atacking him.
+
It selects the closest enemy as a target. To avoid "thrashing" between enemies it doesn't change targets until a bot is 200px (IIRC) closer than the current target, or if the other "candidate" is attacking him.
  
 
'''What does it save between rounds and matches?'''
 
'''What does it save between rounds and matches?'''
  
Between matches: Nothing. Between rounds: It (currently) saves the last 3000 scans from each enemy, used for targeting, and some misc stats.
+
Between matches: Nothing.
 +
 
 +
Between rounds: It (currently) saves the last 3000 scans from each enemy, used for targeting, and some misc stats.
  
 
'''Where did you get the name?'''
 
'''Where did you get the name?'''
Line 49: Line 51:
 
The original targeting code was Shadow's.
 
The original targeting code was Shadow's.
  
What's new
+
'''What's new'''
(2004-06-29) v3.11 released: Shadow's 3.11 gun with some (mostly untested) melee updates. +16 1on1 ranking points, I'm happy :).
+
 
(2004-05-11) v3.06 released: Stronger against the weak, weaker against the strong. Rating: 1947
+
; (2004-06-29) v3.11 released : Shadow's 3.11 gun with some (mostly untested) melee updates. +16 1on1 ranking points, I'm happy :).
(2004-05-06) v3.05 released: Stronger against the strong, weaker against the weak.
+
; (2004-05-11) v3.06 released : Stronger against the weak, weaker against the strong. Rating: 1947
(2004-05-01) v3.04 released: Lots of small changes to the 1on1 movement.
+
; (2004-05-06) v3.05 released : Stronger against the strong, weaker against the weak.
(2004-04-29) v3.03 released: Old melee code re-activated. Further 1on1 tests.
+
; (2004-05-01) v3.04 released : Lots of small changes to the 1on1 movement.
(2004-04-27) v3.02 released: More testing. Still no melee.
+
; (2004-04-29) v3.03 released : Old melee code re-activated. Further 1on1 tests.
(2004-04-24) v3 test version released: Testing a new 1on1 movement in the Rumble, no melee strategy. To be completed...
+
; (2004-04-27) v3.02 released : More testing. Still no melee.
(2003-09-07) v2.02 released: Improved movement, first version ever to smoke Cigaret. :)
+
; (2004-04-24) v3 test version released : Testing a new 1on1 movement in the Rumble, no melee strategy. To be completed...
(2003-08-12) v2.01 released: Restructured and partially rewriten. Supports the targeting challenge. Exactly the same movement as v1.5. Improved 1on1 and (long term) melee performance. More to come soon...
+
; (2003-09-07) v2.02 released : Improved movement, first version ever to smoke [[Cigaret]]. :)
(2003-08-02) v2 Hype:In the last couple of weeks I've been (slowly) rewriting Tron almost from scratch in hopes of getting a more structured framework for improvements and maybe even a new bot. I just finished the first version of the improved targeting and the results look very promissing. It now learns for 10x the number of rounds (from 3000 scans to 30000!), just by replacing java's LinkedList class with a custom made (read: as simple as they get) double-linked list. My advice: never use the Java collection classes in a time critical inner loop, they are slow as hell! Anyway, if the movement rewrite goes as well as the targeting, I hope to release a new and improved version of Tron in the next few weeks. Comming soon to a Robocode Arena near you! :)
+
; (2003-08-12) v2.01 released : Restructured and partially rewritten. Supports the targeting challenge. Exactly the same movement as v1.5. Improved 1on1 and (long term) melee performance. More to come soon...
(2003-05-24) v1.5 released: Better than ever melee performance, had it's first win (followed closely by DT) in a 5000 round battle today. I'm going in circles with 1on1, should be better against some opponents, worse against others (slightly better overall, I hope)... need some new targeting idea here, I'm happy with the movement for now. Data saving between battles postponed again.
+
; (2003-08-02) v2 hype : In the last couple of weeks I've been (slowly) rewriting Tron almost from scratch in hopes of getting a more structured framework for improvements and maybe even a new bot. I just finished the first version of the improved targeting and the results look very promising. It now learns for 10x the number of rounds (from 3000 scans to 30000!), just by replacing Java's LinkedList class with a custom made (read: as simple as they get) double-linked list. My advice: never use the Java collection classes in a time critical inner loop, they are slow as hell! Anyway, if the movement rewrite goes as well as the targeting, I hope to release a new and improved version of Tron in the next few weeks. Coming soon to a Robocode Arena near you! :)
(2003-04-29) CL Ranking: #1 in the Champions League ranking, and, just noticed it, melee highscore!
+
; (2003-05-24) v1.5 released : Better than ever melee performance, had it's first win (followed closely by [[SandboxDT|DT]]) in a 5000 round battle today. I'm going in circles with 1on1, should be better against some opponents, worse against others (slightly better overall, I hope)... need some new targeting idea here, I'm happy with the movement for now. Data saving between battles postponed again.
(2003-04-27) v1.4's first EternalRumble results: 1st melee, 3rd 1on1(!), can you imagine the smile on my face right now? :)
+
; (2003-04-29) CL Ranking : #1 in the Champions League ranking, and, just noticed it, melee highscore!
(2003-04-25) v1.4 released: 100% Tron-like 1on1 movement, hard to hit, I hope ;). My first (serious) entry as a 1on1 competitor, comments welcome....
+
; (2003-04-27) v1.4's first EternalRumble results : 1st melee, 3rd 1on1(!), can you imagine the smile on my face right now? :)
 +
; (2003-04-25) v1.4 released : 100% Tron-like 1on1 movement, hard to hit, I hope ;). My first (serious) entry as a 1on1 competitor, comments welcome....

Revision as of 00:17, 26 March 2016

This article may require cleanup to meet RoboWiki's quality standards.
Please improve this article if you can.

Description

Tron is a melee specialist, it managed to stay in the top for a long time, ruled Simon's GladiatorialLeague for some time and reached the finals in the RoboRumble.

I came up with the idea while trying to make a "corner move" for Shadow. I needed it to make a sharp 90 degrees turn to follow the walls in a corner, so I decided to make a new bot that always turned 90º, that way it would be very easy to avoid walls. I never thought it would be so effective against most targeting algorithms, but I soon found out ;).

How does it move?

I only moves in 4 directions (up, down, left or right), making sharp 90º turns.

How does it fire?

Classic: The main targeting works like an enhanced version of MiniTron, an iterative linear/circular targeting. It keeps a small history of the enemy's run times to account for oscillators. It also has "special case" targeting for Stop And Go bots and bullet dodgers.

New (v1.3+): A pattern recognition targeting that works in melee (I hope ;)).

How does it dodge bullets?

It moves in a very predictable way for humans but very hard for robots.. ;)

How does the melee strategy differ from one-on-one strategy?

It uses a "zone based" anti-gravity logic for melee. For 1v1 versions prior to 1.3 it just circles the enemy inverting direction when near a wall. Versions 1.3+ use a movement strategy similar to Shadow for 1v1.

How does it select a target to attack/avoid in melee ?

It selects the closest enemy as a target. To avoid "thrashing" between enemies it doesn't change targets until a bot is 200px (IIRC) closer than the current target, or if the other "candidate" is attacking him.

What does it save between rounds and matches?

Between matches: Nothing.

Between rounds: It (currently) saves the last 3000 scans from each enemy, used for targeting, and some misc stats.

Where did you get the name?

Isn't it obvious? :) From the classic game (and sci-fi movie) Tron. I think the game was played with motorcycles, but hey, "Tanks can play too!". ;)

Can I use your code?

It is not open source. I'm a very sloppy coder (when I can ;)), please use the code in MiniTron.

What's next for your robot?

I'm currently improving the new targeting. It looks very promising, I get a consistent 2nd place in my tests (melee, 500 rounds minimum), and I still have a few ideas for improvements.

What other robot(s) is it based on?

The original targeting code was Shadow's.

What's new

(2004-06-29) v3.11 released 
Shadow's 3.11 gun with some (mostly untested) melee updates. +16 1on1 ranking points, I'm happy :).
(2004-05-11) v3.06 released 
Stronger against the weak, weaker against the strong. Rating: 1947
(2004-05-06) v3.05 released 
Stronger against the strong, weaker against the weak.
(2004-05-01) v3.04 released 
Lots of small changes to the 1on1 movement.
(2004-04-29) v3.03 released 
Old melee code re-activated. Further 1on1 tests.
(2004-04-27) v3.02 released 
More testing. Still no melee.
(2004-04-24) v3 test version released 
Testing a new 1on1 movement in the Rumble, no melee strategy. To be completed...
(2003-09-07) v2.02 released 
Improved movement, first version ever to smoke Cigaret. :)
(2003-08-12) v2.01 released 
Restructured and partially rewritten. Supports the targeting challenge. Exactly the same movement as v1.5. Improved 1on1 and (long term) melee performance. More to come soon...
(2003-08-02) v2 hype 
In the last couple of weeks I've been (slowly) rewriting Tron almost from scratch in hopes of getting a more structured framework for improvements and maybe even a new bot. I just finished the first version of the improved targeting and the results look very promising. It now learns for 10x the number of rounds (from 3000 scans to 30000!), just by replacing Java's LinkedList class with a custom made (read: as simple as they get) double-linked list. My advice: never use the Java collection classes in a time critical inner loop, they are slow as hell! Anyway, if the movement rewrite goes as well as the targeting, I hope to release a new and improved version of Tron in the next few weeks. Coming soon to a Robocode Arena near you! :)
(2003-05-24) v1.5 released 
Better than ever melee performance, had it's first win (followed closely by DT) in a 5000 round battle today. I'm going in circles with 1on1, should be better against some opponents, worse against others (slightly better overall, I hope)... need some new targeting idea here, I'm happy with the movement for now. Data saving between battles postponed again.
(2003-04-29) CL Ranking 
#1 in the Champions League ranking, and, just noticed it, melee highscore!
(2003-04-27) v1.4's first EternalRumble results 
1st melee, 3rd 1on1(!), can you imagine the smile on my face right now? :)
(2003-04-25) v1.4 released 
100% Tron-like 1on1 movement, hard to hit, I hope ;). My first (serious) entry as a 1on1 competitor, comments welcome....