- Archived Talk 20090519
Yes, I came up with this name long before I got involved in Robocode, so it has nothing to do with codesize, heh. It has to do with being physically small. As in nanometer. I play Unreal Tournament competitively, and I liked the sound of "nano".
Currently, my only released bot is PerceptBot. I have an unreleased megabot named Claire that was to be a proof-of-concept for an RLS-filter-based predictor/gun, but the filter ended up diverging in the majority of cases, so Claire won't ever see the light of day. My current brainchild is Statistician, a proof-of-concept for two completely new algorithms -- a statistics-based aiming algorithm (using either Waves or VirtualBullets) that implements a kind of dynamically adjustable PSpace, and a completely original (and very complex) curve-flattening movement algorithm, designed specifically to handle curve-flattening for multiple bullets at once.
Update 6/2/03: I have scrapped Statistician as a competitive bot. The movement algorithm was too CPU-intensive (it was basically a brute-force search with adjustable granularity), and the segmentation done on his statistics was too fine and too random. I would, however, like to announce Tax. I found a research paper for an amazing new algorithm in my new subscription to IEEE Neural Network Transactions, and it turned out to be fairly easy to implement. Tax will be (I think) the first bot to use a neural network to classify enemy movement, allowing him to switch between guns on the fly, depending on the situation.
Update 1/22/04: Wow, it's been awhile. After spending months of effort on high-falooting ideas, including PatternSegmentedStatGun, and some stupid early adaptive movement ideas, I have learned a bit about what is and is not feasible in Robocode. I am now in the process of cementing my knowledge of the basics of competitive Robocode, including modern segmented stat guns and a normal flattening movement. Unnamed is the somewhat paradoxically named bot that is currently housing my first solid gun implementation, ever (I am very proud of my fourth place in the Targeting Challenge!). I am currently stuck on Wall Smoothing, which seems to be fairly necessary in a good movement, but which I have been unable to nail down. Does anyone want to share how it's done? :)