Tron

From Robowiki
Revision as of 00:17, 26 March 2016 by MultiplyByZer0 (talk | contribs) (Minor cleanup work)
Jump to navigation Jump to search
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....