[Tournament] BotArena: Pure AI Battle Royale
I'm pleased to announce a new community event. In early September I'll be hosting a pure automation AI battle. This means that the only user interaction allowed is placing their initial spawn. No manual interaction, not via the ui or pushing code. There will be subscription token prizes given out the the winner(s).
Last player standing will be the winner, with prizes awarded for other factors like most kills and fastest growth. If the gameplay stalls out, we will decide at the time, but a tiebreaker in close quarter combat might be decided on. Further competitions focusing on GCL or set objectives might be held.
More details coming up, but hop into #botarena.
@davaned Idea: to force a conclusion, the private server periodically closes rooms around the perimeter of the map, forcing the remaining players into a central showdown. The drama! You let people know this ahead of time so that they can plan accordingly.
@shedletsky The problem with that is that player who's spawn position is at the edge of the map will have a huge handicap.
My thought for forcing a conclusion is to set building repair to 1% effectiveness after a time period to prevent turtling and give the benefit to the attacker so walls can't be repaired.
@davaned another idea would be to lock controllers so they can't be upgraded (and thus would time out) at a certain point unless the player has recently taken out another player's major structures. Basically make it so the only way to live is engage in war.
@tedivm Definitely a possibility, but I'd be wary of that because then you wouldn't be able to expand outwards to get a better position. You could be trying to grab new rooms and get locked out. Starting up a new base next door to them and spawning swarms to harass etc. I'd also be worried of a really lame end where the last 2 players are just bashing against each others walls until they die of controller decay, which would be lame. Tuning just repair means that it naturally weakens defense oriented strategies.
I'd probably just make the rewards for getting kills increase the lower the player number gets. Ideally there'd be some way to have a signal to the bots that new rules are in effect so that players can plan around it.
Options like disabling safemode etc could be added too
@davaned No safemode sounds fantastic
@davaned It would be cool to reduce the RCL 8 controller countdown too.
I'm thinking through the rules and think I have an interesting fast paced version:
- Initial safemode on spawn, no safemodes afterwards. ->Allows early game aggression but just enough time for fast bots to make it to a tower.
At each 150k ticks, tower damage and repair effectiveness is reduced by 20%. -> Prevents turtling, game duration is semi-capped
CPU will only increase on getting a player kill (possibly 10*(1+player kill count). -> Ensures that there is incentives to going aggressive, and allows players to scale up over time while naturally preventing load on server from increasing.
Catalyst is removed from the map -> caps boost effectiveness without buying extremely expensive catalyst from AI terminals.
However, for the initial round I'm going to keep pure vanilla rules. That way the bar for participation is fairly low.
First round will start this coming Tuesday. Rules will be player placed spawns, game simulation started simultaneously for all players. After that there will be no player interaction, either via UI or code editing. Good luck!
Sounds awesome. My code is no where near full automation so I will not be entering.
But I had some thoughts that I will share.
- Giving cpu for killing other players could lead to abuse (players spawning sacrificial bots.) Or just luck, ie someone spawning next to me would get an easy kill and free cpu.
- I think weakening defences to force a conclusion would be required. But I would decrease them gradually. So repairers and tower damage start reducing at 250000 ticks down to nothing at 750000, although if possible u only want to nerf repairing of walls and ramps.
- Removing X would make attackers weaker.
But I am relatively new around here so weigh my thoughts accordingly.
I did a write-up on the tournament: https://screepsworld.com/2017/09/enter-the-botarena/
@SteveTrov those sound like some good suggestions for "the quickening". Maybe also increase the amount of hits lost by rampart upkeep or reduce the interval between them.
To keep everyone up to date, we are currently in a testing round. People are free to spawn in, develop code, and debug. We'll begin the next round in 1-2 weeks.
Another variation on shrinking map:
- start with tall map, say 5 rooms wide, 2 sectors tall.
- after a settle down period start disabling rooms from one of the long sides of the map (randomly selected for the round) and add new ones on the other side, making a conveyor belt of habitable space.
- gradually reduce number of rooms added (maybe making them highway rooms so nobody gets stuck on the edges), clinching all bots into the center until just a strip a few rooms tall remains.
There should be enough time for edge room to reach RCL 8 and work for short time pumping out armies before being eaten by the map.
Rolling map would reduce advantage of bots spawned in the center. Adding rooms in reverse arrow shape would reduce placement advantage even more (see illustration below, red rooms are all lava).
(please delete this post if a screeps bot ever becomes self aware and goes after its tormentors)
If you make a mod for it I'm definitely willing to give it a shot! I think almost everyone's bots would die a horrible horrible death as their owned rooms get deleted from the errors everywhere.
While I like the idea of twists to the challenges in the BotArena, I do think the vanilla experience of Screeps is challenging enough for most people to automate.
Having disappearing rooms, constants changed, random map layouts, and random room layouts (source/mineral-count) etc would require a lot more dynamic AIs. While this might be the goal for automation, I doubt any of the AIs competing would handle such conditions without glitches (or is it just me ).
It would require a custom codebase for the challenge, and raises the bar for joining the botarena.
That said. I like the idea of such challenges, but maybe alternate between vanilla experience and custom challenges like:
- Week 1: Test week vanilla experience
- Week 2: BotArena, no code change or interaction allowed
- Week 3: Test week challenge
- Week 4: Challenge, no code change or interaction allowed
Props to Davaned for #botarena. I recommend everyone to start automate and join us.
I do think the screeps team should think about adding a seasonal experience for bot-developers influenced by botarena, an instance that is reset every month, has a very high tick rate and all players start at GCL 1 every reset. (but code changes are allowed, compared to current botarena)
I think there is a reason Blizzard has seasons in Diablo3, and I think Screeps could benefit the same way. Firstly, it promotes automation, but it also gives the players a new chance every month to compete with a blank slate.