Difference between revisions of "User:Skotty"
m (→Java Desktop Applications Development: typo fix) |
m (Various updates) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Bot Authors|Skotty]] | [[Category:Bot Authors|Skotty]] | ||
− | I started tinkering with Robocode back in 2006 when it was at version 1.1.3. | + | I started tinkering with Robocode back in 2006 when it was at version 1.1.3. In the beginning I only competed against the sample bots, a few select opponents from the Robocode Repository, and in a small work competition. Later, as I began working with more advanced concepts, I expanded into the RoboRumble and began periodically running a RoboRumble client. |
− | Professionally, I have been doing enterprise Java development for over a decade | + | Professionally, I have been doing enterprise Java development for over a decade. I stay pretty busy with work and family, but from time to time, I am able to put a little time into recreational activities like Robocode. |
+ | |||
+ | One of my original goals in Robocode is to bring object oriented design principles into Robocode robot design. It is for this reason that I focus almost entirely on MegaBots, mostly ignoring the small code size categories. It would be exceedingly challenging to develop competitive robots that follow object oriented design principles when under very tight code size restrictions. My latest fully featured framework has a code size of roughly 30,000 by itself. I have debated making a minimalist framework, but it would probably only get down to about 5,000 at it's smallest, still too big for anything but Mega classification, so to date I have not made any effort to do so. | ||
+ | |||
+ | == My Frameworks == | ||
+ | * '''[[XanderFramework|Xander Robot Framework]]''' - My Robocode robot framework with pluggable guns, radars, and drives. This framework is huge, with a code size of almost 30,000 by itself. | ||
+ | * '''[[XanderPaintingFramework|Xander Painting Framework]]''' - Framework for painting on the battlefield. Provides a menu to turn painters on and off during battle, and also provides a simple windowing system for painting informational displays that can be moved around the screen. Code size is about 10,000, but can be easily disabled and almost entirely removed from a finished robot. | ||
+ | * '''[[XanderFileUtil|Xander File Utility]]''' - While not really a framework per se, the Xander File Utility is a stand-alone class designed to make it easier to manage data to be saved to disk across multiple robot versions. | ||
− | |||
− | |||
== My Bots == | == My Bots == | ||
− | * '''[[ | + | * Athena - a complete first robot that used a linear approach and orbit drive strategy with linear and circular targeting. Worked wonders against sample bots but was not well suited to challenging the far more unforgiving RoboRumble competitors and was never released into the RoboRumble. |
− | + | * Rihan - a first step at exploring creating a framework, but was never fully completed. | |
− | + | * The ''burn'' crew -- These robots are meant to demonstrate some different gun concepts, but they are not really meant to be strong competition. All of them have the same simple drive, but different guns. Development has somewhat stalled out for now, but I do want to update them again in the future. | |
− | + | ** '''[[Fiona]]''' - Simple drive, complex gun array. Version 1.2 uses an array of 4 guess factor guns, each with a different amount of data roll (one of which has no data roll). The gun with the best virtual hit ratio is used to fire. All use the same KNN selected data (but this may be changed in later versions). The virtual hit ratios are composed 60% on short term performance, 40% on overall performance. | |
− | + | ** '''[[Mikey]]''' - Simple drive, specialized guess factor gun. Version 1.1 uses a single guess factor gun with a modest amount of data roll, with a minimum data point weight of 5%. In essense, this is like an anti-surfer gun. The end goal is to see if I can develop a gun that is good against surfers without losing APS performance overall. | |
− | + | ** '''[[SamAxe]]''' - Simple drive, basic guess factor gun. Version 1.1 uses a single guess factor gun with no data roll. KNN selection parameters are the same as Mikey. This robot serves as a baseline for the others. | |
− | + | * '''[[XanderCat]]''' - MegaBot based on the Xander Framework. This is my flagship robot, and attempts to make the best use of the most advanced concepts and Xander framework capabilities. In addition to being in the RoboRumble, versions of this robot have also been entered into the TCRM and MC2K7 challenges. | |
− | This | + | * '''[[Spitfire]]''' - My Bullet Shielding robot. Only moves when shifting position slightly to fire. The only time not bullet shielding is when opponent is disabled, at which point a head-on shot is used. Built using my Xander Framework. |
+ | |||
+ | I will likely create a few other specialty robots and release them, but XanderCat will always be the flagship of the fleet. | ||
− | == | + | == Random Stuff == |
− | + | [[File:RoboRumbleScoreDistribution20130204.png|left]]Distribution of scores in the RoboRumble general 1v1 category as of 2/4/2013. I thought it was interesting. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 21:57, 27 March 2013
I started tinkering with Robocode back in 2006 when it was at version 1.1.3. In the beginning I only competed against the sample bots, a few select opponents from the Robocode Repository, and in a small work competition. Later, as I began working with more advanced concepts, I expanded into the RoboRumble and began periodically running a RoboRumble client.
Professionally, I have been doing enterprise Java development for over a decade. I stay pretty busy with work and family, but from time to time, I am able to put a little time into recreational activities like Robocode.
One of my original goals in Robocode is to bring object oriented design principles into Robocode robot design. It is for this reason that I focus almost entirely on MegaBots, mostly ignoring the small code size categories. It would be exceedingly challenging to develop competitive robots that follow object oriented design principles when under very tight code size restrictions. My latest fully featured framework has a code size of roughly 30,000 by itself. I have debated making a minimalist framework, but it would probably only get down to about 5,000 at it's smallest, still too big for anything but Mega classification, so to date I have not made any effort to do so.
My Frameworks
- Xander Robot Framework - My Robocode robot framework with pluggable guns, radars, and drives. This framework is huge, with a code size of almost 30,000 by itself.
- Xander Painting Framework - Framework for painting on the battlefield. Provides a menu to turn painters on and off during battle, and also provides a simple windowing system for painting informational displays that can be moved around the screen. Code size is about 10,000, but can be easily disabled and almost entirely removed from a finished robot.
- Xander File Utility - While not really a framework per se, the Xander File Utility is a stand-alone class designed to make it easier to manage data to be saved to disk across multiple robot versions.
My Bots
- Athena - a complete first robot that used a linear approach and orbit drive strategy with linear and circular targeting. Worked wonders against sample bots but was not well suited to challenging the far more unforgiving RoboRumble competitors and was never released into the RoboRumble.
- Rihan - a first step at exploring creating a framework, but was never fully completed.
- The burn crew -- These robots are meant to demonstrate some different gun concepts, but they are not really meant to be strong competition. All of them have the same simple drive, but different guns. Development has somewhat stalled out for now, but I do want to update them again in the future.
- Fiona - Simple drive, complex gun array. Version 1.2 uses an array of 4 guess factor guns, each with a different amount of data roll (one of which has no data roll). The gun with the best virtual hit ratio is used to fire. All use the same KNN selected data (but this may be changed in later versions). The virtual hit ratios are composed 60% on short term performance, 40% on overall performance.
- Mikey - Simple drive, specialized guess factor gun. Version 1.1 uses a single guess factor gun with a modest amount of data roll, with a minimum data point weight of 5%. In essense, this is like an anti-surfer gun. The end goal is to see if I can develop a gun that is good against surfers without losing APS performance overall.
- SamAxe - Simple drive, basic guess factor gun. Version 1.1 uses a single guess factor gun with no data roll. KNN selection parameters are the same as Mikey. This robot serves as a baseline for the others.
- XanderCat - MegaBot based on the Xander Framework. This is my flagship robot, and attempts to make the best use of the most advanced concepts and Xander framework capabilities. In addition to being in the RoboRumble, versions of this robot have also been entered into the TCRM and MC2K7 challenges.
- Spitfire - My Bullet Shielding robot. Only moves when shifting position slightly to fire. The only time not bullet shielding is when opponent is disabled, at which point a head-on shot is used. Built using my Xander Framework.
I will likely create a few other specialty robots and release them, but XanderCat will always be the flagship of the fleet.
Random Stuff
Distribution of scores in the RoboRumble general 1v1 category as of 2/4/2013. I thought it was interesting.