Difference between revisions of "Tron"

From Robowiki
Jump to navigation Jump to search
(Minor cleanup work)
(Rewrite page)
Line 1: Line 1:
{{cleanup}}
+
{{Infobox Robot
 +
| image          = Tron_Logo.jpg
 +
| author          = [[User:ABC|ABC]]
 +
| extends        = [[AdvancedRobot]]
 +
| targeting      = [[Dynamic Clustering]], [[Play It Forward]]
 +
| movement        = [[Anti-Gravity Movement]], [[Wave Surfing]]
 +
| current_version = 3.11
 +
| released        = 2003
 +
| license        = closed
 +
| download_link  = http://robocode-archive.strangeautomata.com/robots/abc.tron3.Tron_3.11.jar
 +
| isOpenSource    = no
 +
| isMelee        = yes
 +
| isOneOnOne      = yes
 +
}}
 +
{{Navbox small
 +
| title = Sub-pages
 +
| page1 = Version History
 +
| page2 = Archived Talk
 +
}}
 +
== Background Information ==
 +
; What's special about it?
 +
: Tron is a melee specialist. It stayed at the top of the [[MeleeRumble]] for a long time. 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.
  
'''Description'''
+
; How competitive is it?
 +
: '''{{RumbleStatsDefault|link=http://literumble.appspot.com/BotDetails?game=meleerumble&name=abc.tron3.Tron%203.11|rumble=MeleeRumble|scorelabel=APS|score=67.05|rank=10th|win=387|loss=10|plrank=11th|glicko2=N/A|pwin=97.48|vote=0|anpp=91.34|score2label=Survival|score2=46.28}}'''
  
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]].
+
== Strategy ==
 +
; How does it [[Movement|move]]?
 +
: Tron moves only in four directions (directly up, left, down, and right), wobbling slightly while moving and making sharp 90º turns. It always moves in the least dangerous of the four cardinal directions. With version 3, it became a [[Wave Surfing/True Surfing|True]] [[Wave Surfer]] in [[1v1]].
  
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 fire?
 +
: Tron was the first robot to use [[Dynamic Clustering]], invented by [[User:ABC|ABC]] and then known as "Tron's Gun" and described as a "forward pattern matcher". (Specifically, it uses DC-[[Play It Forward|PIF]]). This gun was then ported to [[Shadow]], open-sourced in [[DCBot]] (alongside [[Chalk]] by [[User:Corbos|Corbos]]), sparking the KNN revolution.
  
'''How does it move?'''
+
; How does it [[Dodging Bullets|dodge bullets]]?
 +
: In [[one-on-one]], it surfs. In melee, it moves in a way that is very predictable for humans but very hard for robots.
  
I only moves in 4 directions (up, down, left or right), making sharp 90º turns.
+
; How does the [[melee]] strategy differ from [[one-on-one]]  strategy?
 +
: It uses a "zone based" [[Anti-Gravity Movement]] in melee.
  
'''How does it fire?'''
+
; 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 about 200px closer than the current target, or if the other candidate is attacking him.
  
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.
+
; What does it save between rounds and matches?
 +
: Between rounds, it saves the last 3000 scans from each enemy (used for targeting) and some misc. stats. Between matches, it saves nothing.
  
New (v1.3+): A [[Dynamic Clustering|pattern recognition targeting]] that works in melee (I hope ;)).
+
== Additional Information ==
 +
; Where did you get the name?
 +
: From the classic game (and sci-fi movie) [[wikipedia:Tron|Tron]]. I think the game was played with motorcycles, but hey, "Tanks can play too!"
  
'''How does it dodge bullets?'''
+
; 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]].
  
It moves in a very predictable way for humans but very hard for robots.. ;)
+
; What's next for your robot?
 +
: [[User:ABC|ABC]] hasn't updated Tron since 2005.
  
'''How does the melee strategy differ from one-on-one strategy?'''
+
; What other robot(s) is it based on?
 
+
: Quite a few ideas and algorithms were bounced back and forth between [[Shadow]] and Tron.
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.
+
__NOTOC__ __NOEDITSECTION__
 
 
'''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 [[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-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....
 

Revision as of 21:23, 7 September 2017

Tron
Tron Logo.jpg
Author(s) ABC
Extends AdvancedRobot
Targeting Dynamic Clustering, Play It Forward
Movement Anti-Gravity Movement, Wave Surfing
Released 2003
Current Version 3.11
Code License closed
Download
Sub-pages:
Version History - Archived Talk

Background Information

What's special about it?
Tron is a melee specialist. It stayed at the top of the MeleeRumble for a long time. 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 competitive is it?
MeleeRumble ‒ APS: 67.05% (10th), PL: 387-10 (11th), Survival: 46.28%

Strategy

How does it move?
Tron moves only in four directions (directly up, left, down, and right), wobbling slightly while moving and making sharp 90º turns. It always moves in the least dangerous of the four cardinal directions. With version 3, it became a True Wave Surfer in 1v1.
How does it fire?
Tron was the first robot to use Dynamic Clustering, invented by ABC and then known as "Tron's Gun" and described as a "forward pattern matcher". (Specifically, it uses DC-PIF). This gun was then ported to Shadow, open-sourced in DCBot (alongside Chalk by Corbos), sparking the KNN revolution.
How does it dodge bullets?
In one-on-one, it surfs. In melee, it moves in a way that is very predictable 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 Movement 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 about 200px closer than the current target, or if the other candidate is attacking him.
What does it save between rounds and matches?
Between rounds, it saves the last 3000 scans from each enemy (used for targeting) and some misc. stats. Between matches, it saves nothing.

Additional Information

Where did you get the name?
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?
ABC hasn't updated Tron since 2005.
What other robot(s) is it based on?
Quite a few ideas and algorithms were bounced back and forth between Shadow and Tron.