Don't ban sns, just ban meltlybrainThe problem with that is if two SnS bots go against each other, nothing happens.
I don't really know why SNS are banned when they were allowed in the original ironbot tourney. Especially when "flail enhancement" is banned in the DSL part.When you combine the weight class and conditions for this tournament, I personally feel that SnS are too powerful for it, and not just in the DSL division. If enough people want them allowed, I'll consider changing it.
Oh yeah, I just remembered that Grinding Noise, a rad "popup" won last time. It might abuse the rules a bit here, even if it's lightweight. Will you ban those as well or not?Since this is a lightweight tournament and there's less room to abuse the rules with, I'm not sure if it'll be a problem. Albeit, if you can think of any examples of how lightweights could pull this off, feel free to let me know.
I think the rules are pretty good as they are. Definitely interested- already started prototyping some bots. Also want to through out there that your ironforge entry is way overweight. It's ironforge, so weight limits are halved :PIt has ballasts.
That was really dumb of me, didn't even consider that, sorry dude.I think the rules are pretty good as they are. Definitely interested- already started prototyping some bots. Also want to through out there that your ironforge entry is way overweight. It's ironforge, so weight limits are halved :PIt has ballasts.
(https://gametechmods.com/uploads/images/31102ib1.png)
Welcome to Ironbot Jr. - mostly same as the original Ironbot from four years ago, but now having lightweights with a division for Stock, DSL, and Ironforge (no bracket relation between the three) with some other minor rule changes. If you don't know, the goal of Ironbot was not necessarily to win matches, but to keep your bot as in-tact as possible, as once you lost a component (with a couple exceptions), it was gone for the rest of the tournament.
You have 9 months
Signups are open, you have one week to submit bots!Any particular reason signup time is so short?
Any particular reason signup time is so short?
Mainly to get people to enter, though like I said, I may extend signups if necessary. Due to the nature of this tournament, there's also a lot that will be going on in-between filming, and I'm trying to learn how to use a new video editor just for this tournament.You have 9 monthsSignups are open, you have one week to submit bots!Any particular reason signup time is so short?
Oh yeah, I just remembered that Grinding Noise, a rad "popup" won last time. It might abuse the rules a bit here, even if it's lightweight. Will you ban those as well or not?Since this is a lightweight tournament and there's less room to abuse the rules with, I'm not sure if it'll be a problem. Albeit, if you can think of any examples of how lightweights could pull this off, feel free to let me know.
I'd expect them to be banned under 'no SnS'yep
Hercules's IF and updated DSL bots accepted and AI'd.
I'm thinking about extending signups another week to try and give more people the time to enter. You guys cool with that?
That would be great; please do!Hercules's IF and updated DSL bots accepted and AI'd.
I'm thinking about extending signups another week to try and give more people the time to enter. You guys cool with that?
Sure.
Also, I have some pm's from clickbeetle about his ironbot python and ai. I can pm them to you if you want.
Look at the Ironbot arena (cube.py). You'll notice I have a bunch of code commented out, and bracketed by #Ironbot stuff #/Ironbot stuff. This code does a few things:
- Reads a couple of txt files (Bot0_comps.txt, Bot1_comps.txt, etc.) which contain a list of component ids, and breaks those components on the corresponding bots. These txt files are located in the main RA2 directory.
- Removes the floor under the bots (cubefloorpanel.gmf) during the introduction, so the components that break off can fall out of the arena, then puts it back when the match starts.
- Makes immobility warnings not happen by setting plus.practice(1).
- Disables the bots after 30 seconds and makes them invincible, so it's like a 30 second time limit. You can leave that part commented out if you want a longer time limit.
The second part is in the bot AI. I used custom AI's for all the bots in Ironbot. Here's the modified Omni I used: http://beetlebros.gametechmods.com/files/OmniIB.txt (http://beetlebros.gametechmods.com/files/OmniIB.txt) (make sure to save as .py, not .txt)
There are two important parts in the AI .py. The first one is at the beginning of def Tick where I say "Import previously broken component IDs". This reads the txt files so the AI knows what components are already lost. The second important part is in def LostComponent. This writes to the txt file whenever a component breaks. Also, self.LostComps = [] and self.DoThisOnce = 0 have to be in def __init__.
So to run Ironbot, first I cleared Bot0_comps.txt and Bot1_comps.txt so they are blank. After the battle, DO NOT RUN ANY MORE BATTLES. Immediately quit RA2, open up the txt files, and copy the broken component IDs into a permanent file that will not get overwritten. (You will need to remove some duplicate IDs.) Make sure to keep things organized so you don't forget which broken component IDs go with which bot.
To start a battle with fresh bots, clear the txt files before booting up RA2. To start with damaged bots, copy the component IDs from your permanent file into the txt file before booting up RA2. The arena will read these IDs and break them before the match starts. Then, the AI will add any new broken components to the txt file.
In Ironbot, I had a rule where bots got a few spare wheels. I used apanx's exporter to find out which IDs were wheels, and then deleted those from the list of broken components.
Also, later on in Ironbot, I started having some lag issues when 90% of a bot got broken off all at once. When that happened, I went into the bot lab and manually removed components.
It's pretty complicated, but I already did the hard part. You should be able to get an Ironbot-style tourney going just by using OmniIB.py and un-commenting that code in cube.py. Of course, I'd appreciate it if you didn't just rip off Ironbot rule for rule. Put your own twist on it. ;)
Before I left, I tried making an ironbot tournament myself, but I ran into too many problems. I DID manage to get the code to work, but it wasn't easy, and it was very complicated. Here's a quote from click via pm.Tried using it and it didn't work, nor do I have any idea of how to get it to. Thanks anyway though.Look at the Ironbot arena (cube.py). You'll notice I have a bunch of code commented out, and bracketed by #Ironbot stuff #/Ironbot stuff. This code does a few things:
- Reads a couple of txt files (Bot0_comps.txt, Bot1_comps.txt, etc.) which contain a list of component ids, and breaks those components on the corresponding bots. These txt files are located in the main RA2 directory.
- Removes the floor under the bots (cubefloorpanel.gmf) during the introduction, so the components that break off can fall out of the arena, then puts it back when the match starts.
- Makes immobility warnings not happen by setting plus.practice(1).
- Disables the bots after 30 seconds and makes them invincible, so it's like a 30 second time limit. You can leave that part commented out if you want a longer time limit.
The second part is in the bot AI. I used custom AI's for all the bots in Ironbot. Here's the modified Omni I used: http://beetlebros.gametechmods.com/files/OmniIB.txt (http://beetlebros.gametechmods.com/files/OmniIB.txt) (make sure to save as .py, not .txt)
There are two important parts in the AI .py. The first one is at the beginning of def Tick where I say "Import previously broken component IDs". This reads the txt files so the AI knows what components are already lost. The second important part is in def LostComponent. This writes to the txt file whenever a component breaks. Also, self.LostComps = [] and self.DoThisOnce = 0 have to be in def __init__.
So to run Ironbot, first I cleared Bot0_comps.txt and Bot1_comps.txt so they are blank. After the battle, DO NOT RUN ANY MORE BATTLES. Immediately quit RA2, open up the txt files, and copy the broken component IDs into a permanent file that will not get overwritten. (You will need to remove some duplicate IDs.) Make sure to keep things organized so you don't forget which broken component IDs go with which bot.
To start a battle with fresh bots, clear the txt files before booting up RA2. To start with damaged bots, copy the component IDs from your permanent file into the txt file before booting up RA2. The arena will read these IDs and break them before the match starts. Then, the AI will add any new broken components to the txt file.
In Ironbot, I had a rule where bots got a few spare wheels. I used apanx's exporter to find out which IDs were wheels, and then deleted those from the list of broken components.
Also, later on in Ironbot, I started having some lag issues when 90% of a bot got broken off all at once. When that happened, I went into the bot lab and manually removed components.
It's pretty complicated, but I already did the hard part. You should be able to get an Ironbot-style tourney going just by using OmniIB.py and un-commenting that code in cube.py. Of course, I'd appreciate it if you didn't just rip off Ironbot rule for rule. Put your own twist on it. ;)
Good luck with it, it's a bit complicated, but with this, you should be able to do it the same way click did it.
If anyone wants to post this someplace where others who may want to see it can see it, feel free.
Edit 1: I see you're using a custom arena. Hopefully you can just copy/paste the ironbot code into your arena.
Edit 2: Got my entries here. This is literally my first ironforge bot, and I suck at dsl realistic, but I tried my best. Here it is. https://gametechmods.com/uploads/files/0298wolf_entry.rar (https://gametechmods.com/uploads/files/0298wolf_entry.rar)