StarCraft AI Competition Results
bgweber writes "The StarCraft AI Competition announced last year has come to a conclusion. The competition received 28 bot submissions from universities and teams all over the world. The winner of the competition was UC Berkeley's submission, which executed a novel mutalisk micromanagement strategy. During the conference, a man versus machine exhibition match was held between the top ranking bot and a former World Cyber Games competitor. While the expert player was capable of defeating the best bot, less experienced players were not as successful. Complete results, bot releases, and replays are available at the competition website."
By default, I'd say that a well-designed bot in an RTS would have an advantage over all but the best players. Since there is so much to keep track of, software would win out over wetware.
Bots in an FPS are one thing, but when you have dozens of units, a build order, multiple fronts, resources, and more to track all at the same time, the infinitely scalable multitasking of a bot would certainly come in handy.
Or maybe I'm off base?
Living With a Nerd
Uses Broodwar, not Starcraft 2, and not just the original.
Just saying. (Cause when they mentioned Ultralisk Microing, I thought about SC2 and how Ultralisks are terrible units there simply because they block your units making Micro a huge pain, and it wasn't so bad in BW when your units could take a bit more of a beating).
Overlords can be spawned from hatcheries, your real enemy is the robotic overmind. Know the difference, it could save your life.
The bot looked like it was pretty good at dancing the mutas around cliffs though, which is usually the downfall of Goliath spam.
I read the internet for the articles.
Competitions like these are great, but they (and games like SCII) really make me pine for an RTS with a robust in-game scripting language. I would like to write complex auto-executing instructions for my units like "Pursue but never enter the firing zone of a known enemy turret or siege tank" or "If your energy > X and enemy of type Y in range R, cast spell S" or "If you are unit type X, always position yourself between friendly unit type Y and the enemy". You could confine the script to some reasonable specifications (say, no more than 1000 queries and 100 orders given per second) if you want to deter brute-force approaches.
This is a totally different problem than writing a good AI, you would be focused on writing powerful tools that aid, not replace, a human player by letting him specify his intent on a higher level than "go here" or "attack that". Better visualization of what's happening would be an integral part of this too. I would love to have SCII give me an overview of what units/building I have, what they are doing/queued to do -- even better if they are grouped into functional 'squadrons'. Being able to have multiple panes/monitors looking at different things would help to.
I guess what I'm saying is that I'm old and slow and want to leverage my experience writing rule-based logic to beat the whippersnappers that can click faster than I can and keep more things going in their heads at once :-P.
There seems to be a very wide range in the abilities of the winner and runner up bots that might not be noticed by someone unfamiliar with Starcraft. In order of appearance:
1) In the flying units versus flying units match, mutalisks (guys with wings) should have focused the scourges (little 'c' shaped guys) because scourges have about 1/5th the health of a mutalisk, but can suicide to take out 5/6ths of a mutalisk's health. Red ai focused scourges, the other ai didn't, with disastrous results for the other ai.
2) In the match with infantry, the players had medics, which heal other units but can't attack, and marines/ghosts, which can do damage but can't heal each other. One ai moved medics with ghosts such that the medics could actually heal. The other ai just left the medics a mile away from the combat, and got slaughtered. Furthermore, the AIs didn't bother with formations, which meant that half their units spent the entire fight trying to get into range. A precombat formation lets almost all the combat units start firing as soon as the fight begins.
3) The red zealots retreated in the face of numerically superior opponents, while the teal zealots just attack moved no matter how many they had. Teal zealots didn't focus fire, which meant that they lose units sooner, and thus had less damage output compared to red. In addition, red failed to kill the pylons (600hp) powering the buildings (a lot more than 600hp). Neither player built their bases to maximize the number of pylons powering their vital gateways; each pylon usually powered only one building.
4) In the fight with dragoons (orange spider things) versus tanks, the protoss (orange) could have frozen half the enemy tanks with a single stasis spell by sneaking the arbiter (flying spider thing) to the back of the tank formation. Furthermore, the protoss could have focused the science vessel (floating teal circle) that was preventing them from being invisible. It would have been a slaughter if the vessel had been focused, as teal would have had no real way to hit the orange units.
5) In the match between Overmind and Krasi0, the article talks about mutalisk clumping preventing some of the mutalisks from attacking. However, the point of the stack is that when one guy is in range, everyone else is. Also, the attack animation is so fast that for all practical purposes, the flyers can shoot while moving. They use their mobility to get out of range of infantry units, then zoom in to pick off outliers when their attack cooldown is finisihed. In actual competition, the terran player would usually rely on a strategic placement of static defenses and a highly mobile cluster. However, the terran (defending force) built tanks, vultures, and goliaths (mech guys that shot missiles) with the flaw that tanks and vultures can't shoot air, and are thus almost useless versus the mutalisks. The mutalisks spent the second half of the clip shooting tanks rather than focusing down the goliaths volleying missiles into them. The terran AI prioritized repairing tanks as much as goliaths, and didn't place tanks next to goliaths to soak up bounce damage from a mutalisk.
In general, the AI had problem with understanding the priority in a fight. That is to say, they often had no sense of what units are critical to a position or what units pose the most threat. They didn't arrange their units to maximize their effectiveness, and often failed to alter their behavior based on the other party. It's a fun contest, but I'm not sure the AIs could beat a moderately skilled player who understands tactics AND strategy.
Signatures are the new names.
A bot that learns from loses? An interesting game. It seems the only winning move is to be Korean.
Have a look at the Spring Engine if you haven't already. There are a variety of RTS games, including some high-quality variants of Total Annihilation, which use the Spring Engine and allow for all sorts of client-side scripting through Lua. There are a variety of client-side lua "gadgets" that players have written already. You can move your units into custom formations by drawing lines or squiggles with the mouse; there are widgets to automate using air transports to ferry units between factories and rally points; there are even widgets to automatically alert the player when certain dangerous units are spotted. IIRC, someone was even working on a script for kiting with long-range units.