Difference between revisions of "User:Skotty"

From Robowiki
Jump to navigation Jump to search
m (Updated description of XanderCat)
m (Various updates)
 
(12 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.  It's been quite awhile since I last used it, but I've recently been getting into it again.  This time, I actually released a robot into the 1-on-1 competition.  My latest robot is named XanderCat.  It should perform okay, but I will need to spend more time on it if I want it to compete with some of the wave surfing Jedi-bots.
+
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 have an SCJP and a GSSP-J certification, and am currently working on an SCEA.  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.
+
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 Robot Frameworks ==
 
* '''[[XanderFramework|Xander Framework]]''' - My newest robot framework with pluggable guns, radars, and drives.
 
 
== My Bots ==
 
== My Bots ==
* '''[[XanderCat]]''' - MegaBot based on the Xander FrameworkCurrently using BasicRadar, OrbitalDrive, and a CompoundGun which combines a StatGun, CircularGun, and LinearGun.
+
* 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.
== Some Background -- Things I Do ==
+
* Rihan - a first step at exploring creating a framework, but was never fully completed.
=== Family Stuff ===
+
* 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.
I have a familySo a lot of my time goes towards family things.
+
** '''[[Fiona]]''' - Simple drive, complex gun arrayVersion 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.
=== Enterprise Java Web Applications ===
+
** '''[[Mikey]]''' - Simple drive, specialized guess factor gunVersion 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 gunThe end goal is to see if I can develop a gun that is good against surfers without losing APS performance overall.
This is what I do professionally.  I've worked on apps for insurance companies, hospitals, DoD, and othersUsually a combo of Java EE and a framework such as Struts, Spring, or JSF.
+
** '''[[SamAxe]]''' - Simple drive, basic guess factor gunVersion 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.
=== Java Desktop Applications Development ===
+
* '''[[XanderCat]]''' - MegaBot based on the Xander FrameworkThis 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 I do as a hobbyI don't have anything too significant at the moment, other than a Swing application for doing file backups named CatBack.  I've also written a few other odds and ends, like an app to manage my own list of movie rankings, keeping them in sync with my movie ratings at the IMDB.
+
* '''[[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 usedBuilt 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.
  
=== Look for Potential Programmer Friends to Collaborate With ===
+
== Random Stuff ==
I always want to find other programmers I can be friends with, and who I can collaborate with on some programming projects. On this front, I have been a MASSIVE failure.  I haven't had a friend interested in programming since I was 18, and that was decades ago.
+
[[File:RoboRumbleScoreDistribution20130204.png|left]]Distribution of scores in the RoboRumble general 1v1 category as of 2/4/2013.  I thought it was interesting.
=== Real Robots ===
 
From time to time, I consider building some new friends to keep me company around the house.  I have a Handy Board that I use as a brain, and I often use legos for the robot body.  I don't do this too often though, as I often find it unfulfilling.
 
=== Automotive Repair ===
 
I've been repairing and modifying cars for the last 20 years, though not as much as I used to.
 
=== Home Improvement ===
 
I've finished an entire basement and done many other smaller home improvement or repair jobs.  Holmes on Homes is one of my favorite showsNot only entertaining, but sometimes educational as well...not many shows are like that.
 
=== Speaker Boxes ===
 
Not a regular thing, but I still dabble in it.  Something else I started over 20 years ago, back when I was 16 and custom built speaker boxes in the back of my hatchback was cool.  I'm currently modifying some boxes I built way back then to serve as my home theatre speakers.
 
=== Robocode ===
 
A periodic though infrequent hobby.  Started playing C-Robots many years ago.  Now I occasionally dabble in Robocode, but I have too many other things to do that take up a lot of my time.
 

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

RoboRumbleScoreDistribution20130204.png

Distribution of scores in the RoboRumble general 1v1 category as of 2/4/2013. I thought it was interesting.