Tron

From Robowiki
Revision as of 02:46, 4 November 2008 by BotCreator64 (talk | contribs) (New page: '''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....)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

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 ;).

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'n'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 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.

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.

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 rewriten. 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 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-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....