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 - 123savethewhales

Pages: 1 ... 128 129 130 131 132 133 134 [135] 136 137 138
2681
DSL TC Showcases / Toughest bot in Nar AI?
« on: September 28, 2009, 04:53:53 PM »
DestroyerFHP is hax, literally.

2682
DSL TC Showcases / Thyrus` Showcase
« on: September 28, 2009, 02:43:16 AM »
SnS = Sit and Spin.  To put in words they are bots that use their drive to power their weapon by turning (spin) in one direction.  Since you cannot drive while spinning, they are call "sit" and spin.

I personally find them extremely boring, both driving them and fighting them.

2683
DSL TC Showcases / Thyrus` Showcase
« on: September 27, 2009, 02:28:03 PM »
Looks nice.

2684
Tutorials and Tips / AI-ing (.py files, coding, R+D, and help)
« on: September 27, 2009, 01:15:56 PM »
Quote from: Madiaba;68744
I have an AI.py I wrote a while back, for a 'Photon Blaster' bot. I'll PM it to you...
Look it over well and let me know of anything needing explained.
 
BTW: Nice to see you diving into the game...
.


I got it to work, thanks.

2685
Tutorials and Tips / AI-ing (.py files, coding, R+D, and help)
« on: September 26, 2009, 11:42:52 PM »
Quote from: Madiaba;68720
-I know that the 'input' command DOES work fine standing alone under 'Tick'..
 
-I've also have seen a difference when enlarging the analog value for a fire. Made a couple cool AI like that, a while ago though.
 
-As far as the flamethower's intermittentness, I did notice sometimes on a few freak AI I made that there were 'lapses', for lack of a better word, of consistant firing. One of the lapses that bugs many, including me, is the lapse in consistent cannon fire. I considered that the 2 (fire lapse and cannon lapse) might be related since they both use the co2 means of simulated power...but I never followed up on it.

Do you mean this?
Quote
   def Tick(self):
        # fire weapon
        if self.weapons:
           
                self.Input("Spin", 0, 100)
           
        return AI.SuperAI.Tick(self)

This works, but the moment I put # in front of if self.weapons it crashes on load.  I can replace if self.weapons with if 1 == 1 though.

Although, since the if statement isn't causing the 'lapses' (as i am using if 1 == 1 on mine), let us not get too caught up in it.

My guess is that everything has this split second lapses, it's just that it is visually impossible to tell on spin motors, burst pistons or burst motors.  It is just on those rare occasions (such as flamethrower or cannon) does this really show any visible symptoms.

Without drawing too much conclusion though, I think it's safe to say that flamethrower pulsing isn't inherently a problem on the specific AI or the tactic, but lies at a lower level.  Too bad I can't really prove anything without looking at the source code (not that I would be able to understand it anyway).

2686
Tutorials and Tips / AI-ing (.py files, coding, R+D, and help)
« on: September 26, 2009, 03:28:00 PM »
Quote from: Madiaba;68631
Easy to follow method: If you simply want to use the regular AI tactics for AI steering and control, and yet have your weapon(s) fire continuously, then you can:
1. put this line under 'Tick':
 
....def Tick(self):
........self.Input("AlwaysFire", 0, 100) #Analog for flamethrower.

 
2. then name your in-game analog control the same name: 'AlwaysFire'.
 
.

well, I had tried this before (seemed to be the most obvious thing at the time)

Quote
def Tick(self):
       
self.Input("Spin", 0, 100)
           
return AI.SuperAI.Tick(self)

which freezes the game.

My code now (which I posted yesterday), consist of

Quote
def Tick(self):
       
if 1 == 1:
self.Input("Spin", 0, 100)
           
return AI.SuperAI.Tick(self)

Which fires about 99% of the time.  It still has the "pulsing" problem with the AI letting go of the button for a split second (usually in between another command).  When this is combined with how flamethrower requires another motor turn on to start the flame, it creates all kinds of non firing behaviors.  It's not a problem for anything else, but for the flamethrower bug to work the button needs to be held down at all time, or the flame won't remain at full power.  I think this problem lies in __init__.py or somewhere deeper where the game stops all command for calculation so it can reassign a new sets of key it should hold.

If this is true, then the only real way to get around that is to use a custom flamethrower that doesn't use up gas to "imitate" the flamethrower bug (which is what I am using now).  Or better yet, maybe one that has the "fire" command on "switch", which I don't know how to make.

2687
Tutorials and Tips / AI-ing (.py files, coding, R+D, and help)
« on: September 26, 2009, 01:38:16 PM »
So after I read the Engage tactic, I am still not sure which line is for weapon firing.

Def Execute is clearly there to control driving behaviors, while Evaluate is there to handle priorities.  Since all I want is for the bot to hold the weapon button from start to finish without modifying the driving behaviors, is there any way to get around that?

Also, are there any guides to modifying AI available on the web?  To be honest I really don't know what a lot of the variables are suppose to do, such as self.priority.  My guess is the priority sets which tactics gets used in a given situation, base on self.target_id (which my guess is determining rather or not an enemy exist).

Aside from the timer shutdown, there's also a weapon "pulsing" problem.  Which is that the weapon turns off and on every second or so (which only becomes noticeable after I used my modded flamer).

My guess is, would it have something to do with the "scheduler" class in __init__.py?

Quote
class scheduler:
    "A 'brain' to schedule a set of actions."
    resume = 0
    done = 1
    abort = 99

    def __init__(self):
        self.actions = []

    def setActions(self, actions):
        self.actions = actions

    def tick(self):
        "Run the top action and pop them off as they're completed."
        if len(self.actions) > 0:
            result = apply(self.actions[0][0], self.actions[0][1])
            if result == scheduler.abort:
                return False
            elif result == scheduler.done:
                # this step is done, move to next
                self.actions.pop(0)
                return len(self.actions) > 0
            else:
                return True
        else:
            return False

2688
DSL TC Showcases / MrRoboto's JAS: Just Another Showcase
« on: September 25, 2009, 11:59:24 PM »
Quote from: MrRoboto75;68470
^^^If I do that, then its not a wheel, is it?
Functionally wise there shouldn't be much difference, or at least I won't know until I tried.  But as for looks, that's someone you have to judge yourself.

2689
Modifications / NAR AI pack releases !
« on: September 25, 2009, 02:49:58 AM »
No unfortunately I am not kidding.  The AI keep stopping the flame and it is down to a tiny bulb after 10 seconds.  I don't know rather this is just happening to me or everyone else.  The original omni.py has not been modified in any way.

Even after I take out all the conditions that will turn off the weapon on "omni.py", which I renamed omni2.py, I am still having problems getting the AI to just hold the button.  While the flame does stay on longer, it still stops holding during the start of a turns/when enemy timer starts/when bot is directly on top of another, etc.

I guess I don't literally mean no flames comes out, I just mean that it become extremely short range (unlike when a real person is driving and holding the fire button, which remains at full range for the whole 3 minutes).

Besides how did you get it to shoot at full range with "self.Input("Spin", 0, 1)"?

I posted my modified py here if you want to take a look at it.
https://gametechmods.com/forums/showthread.php?p=68324#post68324

BTW, does anyone else have problems with Smelter?

2690
Tutorials and Tips / AI-ing (.py files, coding, R+D, and help)
« on: September 25, 2009, 02:20:21 AM »
Humm, I took out all the conditions and simply put a permanent if statement for fire, but even so the weapon still shuts off from time to time (example: when the enemy's timer goes on). How come?

Setting analog to 999 is way fun and solve all the problems (yeah flames shooting half screen), but that's sorta like cheating.

Edit: I decide to post the final version of the AI here.  Thanks for all the help.

Quote
from __future__ import generators
import plus
import AI
from AI import vector3
import Arenas
import Gooey
import math
import Tactics

class Omni2(AI.SuperAI):
    "Omni2 strategy"
    name = "Omni2"

    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)
               
        self.zone = "weapon"
        self.triggers = ["Fire"]
       
        if 'triggers' in args: self.triggers = args['triggers']
       
        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("")
           
            self.RegisterSmartZone(self.zone, 1)
           
        return AI.SuperAI.Activate(self, active)

    def Tick(self):

        self.Input("Spin", 0, 100)

        return AI.SuperAI.Tick(self)

    def InvertHandler(self):
        # fire weapon once per second (until we're upright!)
        while 1:
            for trigger in self.triggers: self.Input(trigger, 0, 1)
           
            for i in range(0, 8):
                yield 0

    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:
            self.RemoveTactic("Engage")
           
               
            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)
   
AI.register(Omni2)

I never thought making the AI hold one button would be so hard.

There's also the option of making a custom component that is exactly the same as the original flamethrower but doesn't use any gas.  So long as we maintain the same design as the non cheat part (retaining the same amount of co2 tanks as you would normally, and not add in any pistons to use the gas), it would bypass the AIing problem without giving the AI any additional advantages.  I will use this along with the omni2.py until someone have a better idea.

bobflamerAI.txt
Quote
name = BFFF Flamethrower AI
preview = bffff_preview.bmp
dir = bob
model = bobflamer.gmf
type = weapons
base = Flamethrower
description = description = A BFFF Flamethrower that uses only 1 gas to bypass AI problems.  For the sake of fairness it is recommanded that you put in the amount of CO2tanks as you would normally need.
attachsound = sounds\cmp_generic.wav
standard = 1
hidden = 2
firesound = sounds\flame_thrower.wav
airmaxinoutrate = -1
hitpoints = 500

Probably just a nitpick, but since AI can have over 100 Throttle on "forward" or "turn", it should be consider cheating to use forward/leftright as the firing mechanism since it will give it extra reach.

2691
Tutorials and Tips / DSL Bot Optimization Guide for Beginners
« on: September 24, 2009, 07:32:24 PM »
Thanks, I am going to fix that.

You probably notice that I am not really a big fan of burst motors/pistons.

2692
Modifications / NAR AI pack releases !
« on: September 24, 2009, 07:06:57 PM »
BTW, the flames on "Smelter" dies in about 10 seconds or so because the AI keep letting go of the fire button, unless that was intended I think you need a new AI that will hold down the Fire analog button the whole time, preferable one that activate the drive motor pre-start to activate the flame.

2693
DSL TC Showcases / MrRoboto's JAS: Just Another Showcase
« on: September 24, 2009, 12:02:16 PM »
For Wheel of Misfortune, maybe you can take out the side panel and connect the beater bars horizontally for shield.  It can free up extra weight for more weapons.

2694
DSL TC Showcases / Scrap Daddy Design: DSL Edition
« on: September 23, 2009, 09:47:32 PM »
Looks nice.  How well does it fair in battle?

2695
DSL TC Showcases / Viper's Dsl Showcase
« on: September 23, 2009, 02:29:53 PM »
I have made a list of motor stats (among other things) here

https://gametechmods.com/forums/showthread.php?t=2402

2696
DSL TC Showcases / Naryar's DSL freaks
« on: September 23, 2009, 01:59:12 AM »
You need a customized rainbow color skin with a "rainbow pride" decal to go with that.

2697
DSL TC Showcases / Viper's Dsl Showcase
« on: September 22, 2009, 11:21:59 PM »
I think metal hinge wedge are just better than skirt hinge wedge.  While that doesn't mean you can't build a bot with skirt hinge that can get under a metal hinge, it does means that if you have two identical bots, with the only difference being that one is using metal hinge wedge and the other using skirt hinge wedge, the metal hinge wedge will win most of the time.

2698
DSL TC Showcases / Viper's Dsl Showcase
« on: September 22, 2009, 01:14:59 PM »
Quote from: Viper89;67878
Reply to comment on the batteries, How many ants would be suffient for this type of bot. Also thanks for the other info it is very helpful:smiley:.

I "overpowered" my bot with 2 etek drive and 2 etek weapon with 7 ant.  It wouldn't even used up half way for the whole round.

2 npc fast and 3 npc normal?  Maybe around 6?  You can always add more if you find that you are running out during a match, or less if you find yourself with too much power.

And if you worry about motor speed, here's an experiment you can do.  Try driving around @ testing area with all your batteries, then, take out all of them and leave maybe 3 or 4 ants, and drive around again.  See if you can notice a difference.  There should only be 1 drop off point where battery power affects motor speed.  Last I check with 2 etek it was from 2 ants to 1 ant batteries.

I just notice something.  Get rid of those multi extender in the middle of the disk.  They got 375 hp and they can break before your razor does.  Replace it with either beater bar, or just take out the one razor in the middle entirely (usually the middle one hardly deals damage anyway).

2699
DSL TC Showcases / Viper's Dsl Showcase
« on: September 22, 2009, 12:41:46 PM »
Every extra post about "not spamming" is yet another spam.  I thought we got the pattern already.  This includes my post itself of course.

A mod should delete all the spam along with all the "do not spam" messages.  But if that's not possible, please do not post anymore non showcase related comment after this one.  If you have something to say about this particular message and must comment on it publicly then go make a topic on the general discussion session.

BTW, what weapon motors are those?  Normal or Fast?

I think you can help the tipping problem by moving the driving motors back.  You probably also want some kind of back extender so when someone ram you head on you don't just tip over.

You can probably get the extra KG by removing some of those red batteries.  I don't see any burst motor in your bot so there's no need to meet the amp requirement.  Just ant should be fine.

The aluminum extender connecting the 2 plows doesn't look very well protected.  If you anticipate it getting it, then a DSL bar would be better.  If not, then I guess aluminum or even polycarbonate would do just fine.

One last thing, vlad is a better wheel than tornado.  You get 500 more HP, same grip, and cost 2kg less.

2700
DSL TC Showcases / Viper's Dsl Showcase
« on: September 22, 2009, 12:48:43 AM »
Blame that on the voters, or the politicians, just not the troops.

Pages: 1 ... 128 129 130 131 132 133 134 [135] 136 137 138