Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Clickbeetle

Pages: 1 ... 105 106 107 108 109 110 111 [112] 113 114 115 116 117 118 119 ... 174
2221
General Support / Re: Need some help with new rammer AI.
« on: January 08, 2010, 08:57:38 PM »
And this goes in Tactics I'm guessing?

Thanks!  I'll go try it out...

2222
Discussion / Re: Flamebles
« on: January 08, 2010, 07:40:07 PM »
Your best choice would be a small custom motor with infinite HP and can be easily hit. It will start to smoke when it gets hit enough. There's most likely a smoke TGA which you can edit and turn it into fire. >:)


More like infinite fracture + low HP.  Motors start smoking once their HP falls below a certain percent, so infinite HP means it would never smoke.  They would also need to be shielded behind armor plates, so they could only be hit by fire.  You wouldn't want Diotoir's fur to start smoking after getting hit by a hammer.  Good idea though.  If I make any flammable bots for DSL3, I'll remember that.

2223
Stock Showcases / Re: Clickbeetle's bots
« on: January 08, 2010, 05:51:29 PM »
I said it was coming, and here it is.




As I suspected, on a kg-for-kg basis, it's not as good as Longbow.  Mostly because so many HW wedges have abundant armor.  However, for those that don't have armor in the middle, a 1 hit KO is almost guaranteed with 24 razors hitting in the space of 4.  On a good hit, it can get over 4000 damage on a bare chassis (I was really hoping for over 9000 though...).

It's another specialist bot.  It's good at beating what it's supposed to beat, and bad with anything else except VS's.  Sarissa can beat most VS's even if they have armor in front.

Info on the name: A sarissa is an 18-foot spear used in phalanx warfare.  Appropriate considering this bot's length.

2224
Tutorials and Tips / Re: AI-ing (.py files, coding, R+D, and help)
« on: January 08, 2010, 05:40:25 PM »
Indents in Python are always four spaces.  Just copy what I did in my post.

2225
Modifications / Re: Christmas present for you all
« on: January 08, 2010, 05:33:13 PM »
Sure, go ahead.

2226
Discussion / Re: A blast from the past... Checkin' da archives.
« on: January 08, 2010, 05:14:19 PM »
Some off-topic classics!


The original COOL MAN's Forum thread:
http://web.archive.org/web/20050315103223/www.robotarena.com/wizforum/forum_posts.asp?TID=3937&PN=1&TPN=1


Anyone remember the Nanaman/Try Me controversy?
http://web.archive.org/web/20050315103016/www.robotarena.com/wizforum/forum_posts.asp?TID=3945&PN=1&TPN=1


Sonic_Boom and HackerX get banned:
http://web.archive.org/web/20040825154553/www.robotarena.com/wizforum/forum_posts.asp?TID=3439&PN=1&TPN=1


I looked ALL OVER for the RyanRulez's Component Pack thread, but couldn't find it.   That one is the biggest controversy I can remember.


So, Redline... now that you're here and a respected bot-builder and everything... what was that component pack really?  Did you make the whole thing up like everyone thought?

2227
Discussion / Re: What is your signature robot?
« on: January 08, 2010, 04:05:05 PM »
A signature bot should be a bot that is always automatically associated with your name, like Naryar with HazCon, SSG with Minesweeper, kill343 with Stratocaster, and razer/wakkydude with SFTW.  You can't pick one for yourself (well, unless you deliberately enter it in tons of tournaments and post it lots of places like Minesweeper), it just sort of happens if your bot becomes famous.

By that definition, a lot of people don't actually have a signature bot.  I'm not sure if I even have one.  There are several bots I have that are frequently associated with my name (Drumblebee, the Sacrifice bots) but none that immediately jump to mind like, "That's my signature bot."

But then again, signature bots are generally decided by the public, so someone else's assessment of my signature bot is probably more accurate than my own.

2228
General Support / Need some help with new rammer AI.
« on: January 08, 2010, 03:46:36 PM »
Well not quite with the AI itself, but with some extra features I want to put in.


The AI is done and working properly.  What it does: if the bot is within 6 meters of the opponent and is moving slower than a certain threshold speed (default 3), the AI attempts to drive away for another ram.  If the bot is facing the opponent, it backs up; if it is facing away from the opponent, it drives forward; and if the opponent is on its flank, it turns to face the opponent and then backs up.  If it can't get away (there is an obstacle in its path) it will face the opponent and push back.  While the AI is driving away, it is constantly checking for clear paths in front of and behind it.  It will continue to drive away from the opponent until it either detects an obstacle in its path or it is a certain distance away from the opponent.  At that point it will charge the opponent again.


How it's different from the previous rammer AI:
-Better hazard avoidance.  The obstacle c all but ensure the AI won't run into walls or hazards while backing up.
-The AI will usually run away first and then turn to face the opponent for a ram.  The only case in which it tries to turn first is if the enemy is exactly to the side.
-The point at which the AI will stop backing up and charge the opponent is based on distance/presence of obstacles rather than a timer.  The result is usually greater distances over which a ram is performed.  Most bots will back up the length of the Combat Arena, stop just before hitting the wall, and then do a boxlong charge.
-Because bots tend to back up a longer distance, the new AI doesn't work as well for bots that don't drive straight in reverse.  For that reason I am keeping the old Rammer AI as another option.  However, it works excellently for bots that do drive straight in reverse.


So here's what I need help with.  I want to make the threshold speed for "run away" activation customizable in Bindings.py.  I also want to make the AI's sight range for obstacle detection customizable in Bindings, because a fast bot will need a longer sight range than a slow bot.


However, I can't figure out a way to call variables from Tactics.py in Rammer.py to make them customizable.  I also tried putting the customization code in Tactics (if self.blah in args:...) but that just made the game crash.  My question is, is there any way to make variables in Tactics.py customizable in Bindings.py?


If there isn't, I can always move the new code into Rammer.py, but it would be more convenient to leave it in Tactics so it can be called by other py's like OmniRam and whatnot.

2229
General Support / Re: GMF Compiler Help
« on: January 08, 2010, 03:17:17 PM »
It could be because the DSL drum uses a reflection map, which isn't supported by Megabyte's compiler.  Or by Serge's, although his does a lot of other stuff that Dummy's doesn't.

To do reflection maps you need the Dummy's compiler modified by Firebeetle here: http://beetlebros.gametechmods.com/robotarena.htm

Or you can just get rid of the reflection map, since you're reskinning it anyway.  You can try to delete the material with the reflection map but it might be easier to just copy/paste and overwrite the whole materials section from something simple like a grape crate.

2230
Tutorials and Tips / Re: AI-ing (.py files, coding, R+D, and help)
« on: January 08, 2010, 03:00:06 PM »
I was trying to make tractor compatable with a srimech, but there's something wrong, and I can't see it.

Code: [Select]
import plus
import AI
from AI import vector3
import Arenas
import Gooey
import math
import Tactics

class Tractorright(AI.SuperAI):
    "Spins in plow style with srimech"
    # - Works just like Spinner.py but with plow and srimech incoroporated into it.
    # - Correct weapon ID numbers will help.
    # - No extra stuff needed in the bindings.
    name = "Tractorright"

    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)
       
        self.spin_range = 3.0
        self.trigger2 = ["Srimech"]        #There's your problem right there; this line needs to be indented once more.
       
        if 'range' in args:
            self.spin_range = args.get('range')

        self.tactics.append(Tactics.Engage(self))

    def Activate(self, active):
        if active:
            if AI.SuperAI.debugging:
                self.debug = Gooey.Plain("watch", 0, 75, 100, 75)
                tbox = self.debug.addText("line0", 0, 0, 100, 15)
                tbox.setText("Throttle")
                tbox = self.debug.addText("line1", 0, 15, 100, 15)
                tbox.setText("Turning")
                tbox = self.debug.addText("line2", 0, 30, 100, 15)
                tbox.setText("")
                tbox = self.debug.addText("line3", 0, 45, 100, 15)
                tbox.setText("")
           
        return AI.SuperAI.Activate(self, active)

    def Tick(self):
        if self.weapons:
            # spin up depending on enemy's range
            enemy, range = self.GetNearestEnemy()
           
            if enemy is not None and range < self.spin_range:
                self.Input("Spin", 0, 1)
            elif self.GetInputStatus("Spin", 0) != 0:
                self.Input("Spin", 0, 0)
           
        return AI.SuperAI.Tick(self)

    def RobotInRange(self, robot_id):
        "Return tuple of (part-of-robot-in-range, chassis-in-range)"
        # GetLastDamage returns:  component damaged, amount, at time, by player, by component
        range = self.GetDistanceToID(robot_id)
        if range < self.spin_range:
            damage = self.GetLastDamageReceived()
            if damage[3] == robot_id and (plus.getTimeElapsed() - damage[2] < 1.0):
                return (True, True)
               
        return (False, False)
       
    def InvertHandler(self):
        # fire all weapons once per second (until we're upright!)
        while 1:
            for trigger in self.trigger2:
                self.Input(trigger, 0, 1)
           
            for i in range(0, 8):
                yield 0       
       
    def LostComponent(self, id):
        #print "Lost Component!"
        return AI.SuperAI.LostComponent(self, id)

    def LostComponent(self, id):
        # if we lose all our weapons, stop using the Engage tactic and switch to Shove
        if id in self.weapons: self.weapons.remove(id)
       
        if not self.weapons:
            tactic = [x for x in self.tactics if x.name == "Engage"]
            if len(tactic) > 0:
                self.tactics.remove(tactic[0])
               
                self.tactics.append(Tactics.Shove(self))
                self.tactics.append(Tactics.Charge(self))
           
        return AI.SuperAI.LostComponent(self, id)

    def DebugString(self, id, string):
        if self.debug:
            if id == 0: self.debug.get("line0").setText(string)
            elif id == 1: self.debug.get("line1").setText(string)
            elif id == 2: self.debug.get("line2").setText(string)
            elif id == 3: self.debug.get("line3").setText(string)
           
    def Disable(self,btarget):
        # Disables opponent by charging it at an angle
        # we use a different angle (depending on the size of the opponent!)
        # if target is equal in size, the plow weapon charges are more direct

        if btarget > self: self.Turn(79)
        else: self.Turn(-79)
        if btarget < self: self.Turn(35)
        else: self.Turn(-35)
        if btarget == self: self.Turn(90)
        else: self.Turn(-90)
        if self.target: self.Turn(360)
       
        return AI.SuperAI.Disable(self, btarget)
   
AI.register(Tractorright)
I think the proble is with the line defining the trigger or this bit
Quote
    def InvertHandler(self):
        # fire all weapons once per second (until we're upright!)
        while 1:
            for trigger in self.trigger2:
                self.Input(trigger, 0, 1)
           
            for i in range(0, 8):
                yield 0     

Edit: I've given up for the time being as it isn't working.


Fixed.  The line defining trigger2 needs to be indented more.

2231
Tournament Archives / Re: Clash Cubes 3 - SignUp
« on: January 08, 2010, 01:57:17 PM »
If you make that thing heavy enough and/or big enough, it won't break the game.  At 15 kgs and about the size of an air tank, I think it's probably too good.  But if you made it, say, 40-50 kgs, or you made it really big (like at least the size of an E-tek) then it could be fair.  It will take some experimenting to decide what's too good.


Making it drain power probably isn't enough of a drawback, since A) You don't have to turn it on to make it work, and B) Like any spin motor, it will only drain 100 power, no more no less.


I'm curious what this "behind the scenes" work you mention is all about.

2232
Custom Components Showcase / Re: Pay Tribute With Replicas
« on: December 30, 2009, 12:37:26 AM »
^^Win.  Just hope you don't run into Tornado Mer...

2233
Existing Games / Board Games
« on: December 30, 2009, 12:31:40 AM »
Yup, good old screenless batteryless board games.  Anyone play them?


I like Tigris & Euphrates, Small World, Race for the Galaxy, Settlers of Catan, Puerto Rico, Power Grid, Ticket to Ride, and several others.  Just got T&E and Memoir 44 for Christmas this year.

2234
Off-Topic Discussion / Re: General Chatter Thread
« on: December 29, 2009, 11:52:09 PM »
Nice complaint there, System32 Scott Pakin.

2235
Off-Topic Discussion / Re: What was the best moment of 2009 on this forum?
« on: December 29, 2009, 11:28:07 PM »
Sparkey98 shares no IP addresses with other accounts, so if he's multi-accounting, he's using proxy IPs.  Same deal with Avalanche and lloop de lloop (two other suspected LRA2 accounts).

Oh, and best moment: CC2 grand final, because a wedgeless, non-HS bot won.  I don't know of any other cases where that's happened, or even almost happened.

2236
DSL TC Showcases / Re: Clickbeetle's bots
« on: December 29, 2009, 11:02:53 PM »
Drumblebee D2!  (D is for DSL)



Coulda entered this for BOTM, but meh... everyone would know instantly it was mine, and it's not really very original.  Plus I think there is still room for improvement.

2 fast NPC's, 2 Perm 132's, 2 red battlepacks + 3 ant batts, 3mm Al armor (I know, I know, it's not very weight-efficient but it's the strongest armor I had weight for), 16 large beater bars.  Fully invertible.

My goal with DB D2 was to make a big, fast drum with a lot of throwing power.  It's easy to load Perms with tons of drums and beater bars so they end up spinning not very fast, and the drum is easy to stop.  Not so with Drumblebee D2.  Each side of the drum has its own Perm 132 spinning a very reasonable 80 kg of weapons.  The drums are all but impossible to slow down, and it consistently gets under any other drum bot.  It even gets under some bots with wedges in the right circumstances.

The stinger in the back is designed to hit bots that get thrown over and behind the drum, and possibly get them back on the drum for more damage.  It doesn't work as well as I would like, but it comes in handy if there's a bot stuck on top of Drumblebee's chassis.  And in one case, I used the stinger to hit the carbon fiber extender holding on The Anarchist's Cookbook's weapon motor and disable it in one fell swoop.

2237
DSL TC Showcases / Re: Sage's Showcase
« on: December 29, 2009, 10:41:15 PM »
You should call that bot "Specter" or "Phantom" or "Unseen" or something ghost-related because it's almost all transparent.  At a glance, all you see is the chassis, the wheels, the Perm, and the hammers floating out in space!

2238
DSL TC Showcases / Re: JD's DSL Showcase
« on: December 29, 2009, 10:23:47 PM »
So... much... top armor... this bot is the antithesis of Kheper.  I better not run into you in round 1.

Props for being original though.  I like the "invincible tank" theme.  Personally I would have tried to get a Ti half sheet underneath the chassis to protect the bottom (that hinged skirt won't work well because it will just flex out of the way).

the only technical difference between Grannies and Tornados is the 'resistance' value.

Now if only i know what it means...

Low resistance makes the wheel skid and slide more when turning.  High resistance makes for sharper, more controlled turning.

2239
DSL TC Showcases / Re: MikeNCR's Bots
« on: December 29, 2009, 10:02:47 PM »
I've noticed that floor dragging weapons often do no damage for some reason. I blame it on the physics engine being odd.

Weapons that are touching the floor won't do damage for some dumb reason.  But if you elevate them just a little bit--say, by putting a small component in the center of the disc--then you can get low weapons to work.  See: Civil Uprising.

The HS that has generated such controversy actually looks cool; it reminds me of Relic/F-bomb with an overhead weapon.  You don't have weight for a roll cage do you?

While it's not realistic in the sense that it would work in real life, it is as realistic as you can get in RA2, like you said.

2240
Stock Showcases / Re: The Stock Showcase of The Ounce, to Learn
« on: December 29, 2009, 09:32:27 PM »
The bot looks great, but that gap in the middle worries me.  Too much weapon power concentrated toward the sides of the bot.  I can see the middle maces getting knocked off and then the whole rack falling off when the base extender gets hit.  I would turn that base extender sideways (or use a T connector) so you can put more maces in the middle.

The ram plates are a nice addition; that bot looks like its wheels would ordinarily get hit a lot.

Pages: 1 ... 105 106 107 108 109 110 111 [112] 113 114 115 116 117 118 119 ... 174