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
2201
« on: January 23, 2010, 12:01:02 AM »
Malefic looks great. At a glance, it looks like it could be a MW.
On the side hammer: the arms should start out further back for one thing. Don't fall into the trap of thinking you'll trap HS's if the arms are swung slightly forwards--the weapon will do very little damage that way. If you want to do some trapping, some V-shape static spikes in the front work great, though you'll have to downgrade to razors on the weapon arms to get weight for that.
All in all that is an impressive LW side hammer, a very difficult bot type to pull off effectively.
2202
« on: January 22, 2010, 11:35:15 PM »
Your code for eliminating bots needs to be indented one more space--it's just slightly out of line. Computers can be really nitpicky. Try this. from __future__ import generators import plus import Arenas import random import Hazards import math class Box(Arenas.SuperArena): "Twiiiiiiiiiiiiiiiisted" name = "Twiiiiiiiiiiiiiisted Arena" preview = "twisted/twi_preview.bmp" game_types = ['DEATHMATCH', 'BATTLE ROYAL', 'TEAM MATCH'] extent = (-15, 15, 15, -15) def __init__(self): Arenas.SuperArena.__init__(self, "Arenas/twisted/twisted.gmf") #plus.Arena.__init__(self, "") plus.setBackColor(.36, .537, .788) degrad = 0.01745 self.AddStaticCamera("Battle View", (19.5, 15, 19.5), (50*degrad,225*degrad), 55*degrad) self.AddStaticCamera("High Flipper View", (-19.5, 45, -19.5), (48*degrad,45*degrad), 84*degrad) self.AddStaticCamera("Birds Eye View", (0, 45, 0), (90*degrad,0), 75*degrad) self.AddWatchCamera("Combat Cam", (-12, 8, 12), (16, 36, 65*degrad, 30*degrad)) self.AddWatchCamera("Aerial Cam", (-19.5, 35, -19.5), (50, 60, 45*degrad, 60*degrad)) self.AddWatchCamera("Ground Cam", (8, -5, -8), (15, 40, 75*degrad, 35*degrad)) self.AddWatchCamera("Spectator Cam", (13, 15, 13), (6, 18, 45*degrad, 45*degrad)) self.players = () def AddShadowReceivers(self): self.SetShadowSource(5.897, 19.159, 5.899) def Activate(self, on): if on: self.players = plus.getPlayers() Arenas.SuperArena.Activate(self, on) def Tick(self): for each in self.players: if plus.getLocation(each)[-2] < -6: # Adjust this parameter to floor height(s). plus.eliminatePlayer(each) Arenas.register(Box)
Edit: AHH there's a second page! Looks like I'm too late. Oh well. But as I looked I saw a second issue: No 'return' for 'Tick'.
as soon as I saw the py, I fixed that up and posted the fixed one... seems I missed this page though and you already beat me to it lol I should really look ahead to see if there was another page rather then "trusting" were the forum places me
*Twilight Zone music*
2203
« on: January 22, 2010, 11:25:43 PM »
the best bot I built was unstable as .
Red Red Green? was one of my favorite bots to watch in BBEANS4. Didn't seem unstable to me.
2204
« on: January 22, 2010, 11:17:42 PM »
I think it was your 60 AI team maximum mod for the BBEANS AI, I had already reached it before I tried to add the 10 teams. I moved them all to a new AI folder.
IDK if it was yours, but the readme claims it was.
There is no "60 AI team maximum" mod that comes with the BBEANS AI. The only mod that Mad did is make the drop-down list for selecting AI teams longer, which first appeared in DSL2. This does not affect the AI, it just makes more teams visible at once. However, if you were using 6-bot teams, that file could have been a problem as it is meant for 3-bot teams like in stock AI. Glad you figured it out whatever it was. @Click if you ever read the topic: I woud never dream of accusing you of releasing anything incomplete or wrong, it was just that I didn't understand what had happened and the new .pyc was the only thing I had changed.
What am I, a vindictive dictator? I'm not going to ban you for pointing it out if there's a problem with something I released. In fact, I would prefer to know so I can fix it.
2205
« on: January 22, 2010, 10:06:00 PM »
2206
« on: January 22, 2010, 09:32:11 PM »
the Hells Hammer on my game has the Values...
hitpoints = 9090 fracture = 20 concussion = 3 piercing = 0 mass = 20 Whoa, that's still an awesome weapon. By my calculations it has 136,350 efficiency (E = HP*DP/Mass). Regular DSL components are balanced at 60,000 efficiency, so the Hell's Hammer is roughly 2.27 times as good as a stock weapon. Plus the efficiency formula doesn't take into account the size of those things... It makes sense that the prize weapons should be more powerful so you have incentive to use them, but we'll have to wait and see if they're too powerful. In any case Somebody will be tough to overcome.
2207
« on: January 12, 2010, 11:33:04 PM »
Moving this thread to the showcase. FYI, everyone here has just one thread in which they post all their bots, rather than giving each bot its own thread. That's called a showcase.
(Interesting historical sidenote: I think Metal Virus was the one who started the showcase fad.)
As for the bot: that's a replica right? Needs to be a bit wider, and I'm pretty sure Slap em Silly had 4WD, but the lightning spike is perfect for this.
2208
« on: January 12, 2010, 11:22:44 PM »
:O The only way to beat Caesium now is with a hammer bot...
2209
« on: January 12, 2010, 10:52:08 PM »
I actually tried to build a VSnS like that for CC3, only it wasn't invertible and had bigger weapons. The problem was it didn't turn very fast even with NPC fasts+hypnos, and it was useless as a regular VS.
2210
« on: January 12, 2010, 10:26:15 PM »
If you're really going for realism, you should reskin the baseplate grid so it's not green.
Nice work with the lexan effect though. Any bot looks better with some plastic blur IMO, because it masks the 2D-ness of the skin.
2211
« on: January 12, 2010, 10:22:54 PM »
Cool bot. Probably the wedges aren't so good because you have so much stuff loaded on the Snappers.
Reminds me of a MW version of my Cheshire Cat. Kind of sort of not really. I guess the only similarity is the single DDT hammer.
2212
« on: January 12, 2010, 10:07:08 PM »
Weak Spot Detected!
Attack for MASSIVE DAMAGE!
Between the Plows!
Only Longbow is gonna get in there, and even then I don't think it would be a sure OHKO. I think the Havoking is a bigger issue. Trade the HP drive for regular Z-teks and upgrade to all iron spikes?
2213
« on: January 12, 2010, 09:58:19 PM »
Build your chassis around the components, not fill a big chassis with whatever fits!
Unless you're N00bot.
2214
« on: January 12, 2010, 09:46:07 PM »
Run-time error 52? I'm not entirely sure what causes that, but putting the CD in your disk drive usually fixes it.
If you don't have the CD, then you're screwed. You'll have to just get rid of the reflection map and then use Serge's compiler to compile it with a regular skin.
2215
« on: January 12, 2010, 09:38:38 PM »
Ah. It's because your servo is mounted on the baseplate, while Kheper's is mounted sideways on a drum piece. Your servo is also facing in the opposite direction. The '0' angle on the DSL servo is in the +Y direction. So for your bot, 0 is straight up. But I wrote Kheper's .py based on a '0' angle in the +Z direction, because that is how the servo is oriented on Kheper. Fix that requires some rebuilding: rotate your servo so it is exactly like Kheper's. Fix that requires some Python edits: Go through Kheper.py and redo all the angles. Doing a search for "GetMotorAngle" should find all of them for you. To clarify: Servo angles on Kheper= Servo angles on your bot= Edit: WAIT it looks like you figured it out. Well those diagrams should still help.
2216
« on: January 12, 2010, 09:13:09 PM »
ReverseRam is just a tactic that essentially reverses the bot's nose, so the front becomes the back and vice versa.
I used it to AI Juggernaut Mk.3 in BBEANS5, but it didn't work very well. It's fixed now.
I don't think it will work for Flying Guillotine though. All SwitchDirRam does is change tactics from Ram to ReverseRam when the bot's primary weapons break. To do what you're thinking, you would need to be constantly switching back and forth between Ram and ReverseRam depending on where the opponent is. Which might be possible, but I haven't tried it.
2217
« on: January 12, 2010, 08:23:09 PM »
Just as I thought... Trial sort of got whipped by those popups, but Error pulled through for me. I expect the reverse to happen in my next fight with Gameking's HS's  Doomsday Device: smartzone placement fail. Amazing how they still eked out a win with no weapons left though. Did Greeeen's battery die, or why wasn't it moving? R1885 vs. H@ZM47: IMO that last hit was random Havok. If you ask me, the best moment of that fight is in the first round, when Neon Red pushes Smoke into the dead Mirrors, which is still spinning, for a KO. Nothing like utilizing your opponent's dead bots as arena hazards when all else fails. Predictions for next half: Trumpetguy/Viper vs. R0B0: R0B0, no question about it. Roboquad vs. Pwnator/Ounce: Could go either way. Magnetar needs to go OOTA if Roboquad is going to win though. Mad/Pysc vs. II: Madiaba's bait-and-attack-from-the-rear tactic, while brilliant, won't work against HS... infiniteinertia will probably win this one. Doomkiller/roboman vs. russian roulette: Doomkiller and roboman outweapon RR and should win this, but Urjak should have beat RR by that same logic, so who knows.
2218
« on: January 12, 2010, 07:15:06 PM »
Click, I'm ashamed! You made Kepher to NOT have wedges! Tsk Tsk!
I did some testing in the CC3 arena, and it is actually better with wedges in that arena. FYI, the purpose of those wedges is not to get under the opponent. Kheper couldn't care less whether or not it gets under. The purpose of the wedges is sort of like a KE absorber... a fast bot has a very hard time OOTA'ing Kheper with those floppy wedges in the way. On the other hand, the original wedgeless version is quite easily OOTA'd. There's nothing I can do about all those VS's though... if I run into a VS I'm dead. Good thing there's not too many in my bracket.
2219
« on: January 12, 2010, 06:05:13 PM »
https://gametechmods.com/uploads/files/RammerAIv3.zip(Includes Tactics.py and SwitchDirRam.py)
What it does: if the bot is within a certain range (default 5 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.
The new Tactics.py replaces the old Ram and Charge tactics. Both use the same code, but have different default values for some variables. As before, Ram works better for fast bots and Charge works better for slow bots (although both can be customized to fit any bot type).
And thanks to Trovaner's help, I've also managed to include several customizable settings you can put in Bindings.py:
'ThresholdSpeed' is the speed below which the AI will stop pushing the opponent and back up for another ram. The Ram default is 3 and the Charge default is 0.5.
'SightRange' is the base distance the AI "sees" in front of it for obstacle checking, distance from the opponent etc. The base SightRange is automatically increased with the bot's speed for obstacle checking. The base SightRange is also how close the AI needs to be to the opponent before it will back up for another ram. And finally, the AI will continue backing up to a distance of twice its base SightRange, at which point it will charge the opponent. The Ram default is 5 (so the AI will back up 10 meters for each ram, and will start backing up if it is less than 5 meters away from the opponent and moving slower than its ThresholdSpeed) and the Charge default is 3.
'BackUpTime' is a totally optional feature. If you set a value for it, then the AI will only back up for a certain amount of time. This is for bots that don't drive straight in reverse. So if your bot spins out after 1 second of reverse, you can set a BackUpTime of 1 second to prevent that from happening. BackUpTime is measured in ticks. To convert ticks to seconds, divide by four (so 4 ticks = 1 second). For reference, the timer on the old Rammer AI was on a 5-tick cycle. So setting 'BackUpTime':5 will basically recreate the old Rammer AI only with better obstacle avoidance.
Here's some example Bindings for the new Rammer AI:
list.append(("Generic Rammer","Rammer",{'nose':math.pi,'invertible':True,'radius':1,'topspeed':100,'throttle':100,'turn':60,'turnspeed':1,'SightRange':4,'ThresholdSpeed':2,'BackUpTime':5}))
I've also included an improved ReverseRam tactic that actually works, and a slightly modified SwitchDirRam.py to go with it.
IMPORTANT NOTE
The obstacle detection code ONLY works if the walls and obstacles in the arena are delineated with CollisionLines in the arena .py. The AI will fail to detect obstacles in arenas without CollisionLines.
All the stock arenas, most if not all of the DSL arenas, and all of my custom arenas have CollisionLines. However the Small Arena lacks collision lines; therefore I have uploaded a new version with an updated .py that will work with the new Rammer AI.
Whew, long post. Hopefully it will make the new AI easy to use though. Happy AI'ing!
2220
« on: January 08, 2010, 10:54:13 PM »
Blokus.
Ooh, that's another good one. Simple, quick, fun, and no random element. Ya'll should visit a Games by James sometime and pick up Settlers of Catan or something... board games have come a long way in recent years since the days of Monopoly and SORRY.
|