Robo Home | Changes | Preferences | AllPages

This is probably a dumb question, but why do so many of the top robocoders restrict themselves to minis/micros? Is it because they don't want to endanger SandboxDT? I can see the challenge of making a bot both small and strong, but what's wrong with making the best bot? --Tad

It's more fun for me. The size limit prevents huge masses of code like Duelist that are a pain to work with. Since it's small, you can quickly try out new ideas. It would take me forever to create an entirely new movement strategy for Duelist. me.myPosition().absoluteAngleTo?(environment.getTarget().getPredictedPosition?(me.getTime() + 10)) - ugh! Of course I want to beat DT. I only had the 1-v-1 crown for a week or two before DT took it back. For a while I was spending tons of time trying to make Duelist beat DT. But it was a lot more frustration and a lot less fun than writing minibots. Try writing a few, you'll see... :-) --David Alves

Thanks, David. Your reasons make sense to me, but I still have this dumb idea that I can beat Sandbox, and there is no way I could do it with anything less than an elephant bot. I find working on Dalek frustrating and the results are painfully incremental. You are right that the fun element gets lost, but them's the breaks. --Tad

I think that everyone should code a bot that they want. But for me that will allways be a "megabot". Writing a bot that keeps to a certain size has two effects: 1) It doesnt allow you to try some of the advanced strategies available to you in an unrestricted bot, and 2) It promotes bad programming style. I like java because it keeps away from the C/C++ "traditional" approach of writing unreadable tiny all on one line code that "old school" programmers like so much. When I write a bot I want to be able to come back to it after a month and be able to understand what ive written previously! Well, thats my 2 pennies anyway. -wolfman

I can certainly understand Wolfman's point of view. In order to code smaller bot's significant sacrifices have to be made to good Java practices. For example, public variables appear throughout the classes so that setVariable() & getVariable() methods don't have to be written which undermines the OO concept of encapsulation.
However programming the Mini bots is good fun, it never ceases to amaze me that you can get a pretty competitive robot with so little code. I find myself writting more comments than code in these small bot's just so I can decipher the code when I next read it Hexkid

I suppose I've never attempted to make a bot with size restrictions, but I may throw a microbot version of one I used to be developing to see how it does against the other featherweights... Can't beat alot of the microbots I've put him up against, but I figure beating guys like Smoke is something I'll just have to wait for (iiley is welcome to tell me how Smoke works any time he wants). I suppose my thing is that EVERYTHING is a gigantic project to me if I'm doing it for fun, my first bot that I tried to make (not a ton of success, really) was already trying to learn (thus I figured out CompressedSerialization and later posted it here). --Kawigi

Smoke is similar to Cigaret,both use Wave to do aiming,and use similar movement,random a offset angle of the enemy's absBearing to move.Both Smoke and Cigaret are open source,you can download them on RobocodeRepository. -- iiley

I prefer small bots simply because they are faster to develop, and because you need to come up with some clever ideas if you want to make a good bot (with big ones, many times you just keep adding code without thinking why). The two factors make for a much more competitive and exciting arena... --Albert

The key question here is Tad's "what's wrong with making the best bot?". You sure need to come up with a few really clever ideas to do that. The competition is hardest with MegaBots. Maybe too hard? =) -- PEZ

There is notting wrong with making the best bot :-) But my bots would not be better by beeing bigger. Right now I can fit all my ideas into a Mini, so I do. When I come up with something that needs lots of code, I'w create a Megabot (I did with LauLectrik 1.2, which is no longer a mini). From my understanding, we will beat DT when we can (re)create a movement as good as DT's (which is clearly different from all other bots) and it has notting to do with size, but with knowing how. -- Albert

But I think that DT might have even stronger guns than movement. I'm constantly contradicting myself when it comes to what's more important, movement or targeting, I know. But as clearly as DT's movement is different from all other bots, so is its targeting. -- PEZ

For me, I do minibots (especially NanoBots) because I can turn around an idea so quickly and give it a shot. That, in combination with simpler bots and simpler ideas makes understanding what's going on easier. I also find competing in the Mini leagues just as challenging (and rewarding) as MegaBots - but I'm able to create a new Nano from scratch in an hour or so. It takes days or weeks to get a competative Megabot. Finally, I enjoy code optimization. I do it every day at work and it's something I really good at. Larget bots don't require this (until your trying to do too much in a tick) smaller bots thrive on this. The better you optimize, the more tactics a bot can use. I still remember when Nanos had no lead routines and their movement was either in cicles or hit wall and reverse. We've come along way since then. :) -- Miked0801

What I have found with doing minibots is that I learn more about robocode. In a megabot I can just throw in code for my ideas, but in a minibot (even more so in micro's and nano's) I have to judge the importance of each idea and whether it is worth the bytes it is coded with. Hopefully some time I can put it all together and create a monsterbot -- tobe

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited March 23, 2003 8:11 EST by Tobe (diff)