This idea is great. One question though:
in your second example how should BWAPI detect the "end" of a small scale match session to get the current score / winning side. Maybe we need some callback like onUMSEnd() similar to onEnd() for melee games in order to reset the current generation, eval fitness, etc.
When this question is answered I'd be happy to get an UMS version of python where it spawns X number of Terran mecha units(tanks, vults, goliaths, science vessels) as one tight group for my side(also add random mecha upgrades for air, land, irradiate, EMP) and Y number of Zerg units (mutalisks, guardians, ultralisks, hydras, defilers, zerglings, queens, overlords) in a tight group for the computer and the computer units have a trigger to attack my group. X could be different from Y by a large margin, no matter which one is greater.
Use Map Settings requests
-
- Posts: 362
- Joined: Thu Apr 26, 2007 12:42 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
-
- Posts: 362
- Joined: Thu Apr 26, 2007 12:42 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
No, there can't be an onUMSEnd, because the conditions can be completely different from UMS to UMS.
This is up to the bot. You must identify how many units are remaining on your side and/or how many units are remaining on your opponent's side, or whatever other condition there is. I can add a wait at the end of each round and reveal the enemy units to allow the bot time to process this information before the next round.
As for your request:
Use Map Settings maps can't set a random number of upgrades in real time. I can randomize the enemy's upgrades by using different computer players, but not for human players since you can't take upgrades/tech away. I can give non-repeatable upgrades/tech though, just not take them away.
Where should I spawn them? Random location?
Also are you sure the units you specified are all the ones you want? What about Devourers, Lurkers, Broodlings, Scourges, Drones, and Infested Terrans? I can spawn buildings too.
What is the unit count range? Should certain numbers be more frequent than others? Can you specify each number of spawns for each unit?
Following example shows counts (switch counts are powers of 2, so aligning to that will be easier to manage) where one of the following spawn counts are chosen randomly (equally; a repeated number means that choice is more frequent):
Ultralisk: 0 0 0 0 1 1 2 3
Scourge: 0 0 2 2 2 4 6 8
Zergling: 0 2 4 6 6 8 8 10 10 12 12 14 14 16 16 18
If you want the computer player to have randomized upgrades/tech, then can you specify the specific upgrades/tech for 7 different computer players?
Also, what about random resources and SCV/other Terran units?
This is up to the bot. You must identify how many units are remaining on your side and/or how many units are remaining on your opponent's side, or whatever other condition there is. I can add a wait at the end of each round and reveal the enemy units to allow the bot time to process this information before the next round.
As for your request:
Use Map Settings maps can't set a random number of upgrades in real time. I can randomize the enemy's upgrades by using different computer players, but not for human players since you can't take upgrades/tech away. I can give non-repeatable upgrades/tech though, just not take them away.
Where should I spawn them? Random location?
Also are you sure the units you specified are all the ones you want? What about Devourers, Lurkers, Broodlings, Scourges, Drones, and Infested Terrans? I can spawn buildings too.
What is the unit count range? Should certain numbers be more frequent than others? Can you specify each number of spawns for each unit?
Following example shows counts (switch counts are powers of 2, so aligning to that will be easier to manage) where one of the following spawn counts are chosen randomly (equally; a repeated number means that choice is more frequent):
Ultralisk: 0 0 0 0 1 1 2 3
Scourge: 0 0 2 2 2 4 6 8
Zergling: 0 2 4 6 6 8 8 10 10 12 12 14 14 16 16 18
If you want the computer player to have randomized upgrades/tech, then can you specify the specific upgrades/tech for 7 different computer players?
Also, what about random resources and SCV/other Terran units?
-
- Posts: 254
- Joined: Thu Dec 18, 2008 12:42 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Yeah, I guess revealing the whole map and adding out of nowhere a special building(one that was not there before) should be a suitable way to detect when the sample run is over(that is when either side has lost all it's war units).
Also can you force the computer to always seek and destroy the player units that try to hide?
By random upgrades I didn't mean change them during the battle but more like either player's units start out of a different set with possibly different upgrades(e.g. the first run it was 3 marines upgraded 1-2, the second time it is 1 marine 0-1, 2 tanks 2-1, etc.)
The spawns of the battle formations should be at random locations yes(the war units need to be grouped closely as if moving together). But the start locations should be at the real start locations of the map(in the case of a python UMS variant those are the 4 possible locations) where a set of the general buildings for the race should be placed(a few supply depots, a command center). No workers/minerals/available resources are needed as this map would serve the sole purpose of battle training.
Devourers, Lurkers, Broodlings, Scourges are appropriate, too.
Unit counts I'll represent as percentages of the total,
e.g. the number Ultralisk: 10 represents a 10% chance that the next zerg spawned unit will be an ultralisk
Zerg(Computer)
Ultralisk: 8
Scourge: 3
Zergling: 20
Hydralisk: 18
Mutalisk: 15
Guardian: 13
Lurker: 14
Queen: 4
Devourers: 5
Total number of units: rand between 5 and 50
Terran(Player)
Marine 12
Medic 3
Ghost 5
Vulture 20
Goliath 25
Tank(with siege upgrade) 15
Wraith 6
Valkyrie 5
Science vessel 8
Battle cruiser 3
Total number of units: rand between 3 and 40
Also can you force the computer to always seek and destroy the player units that try to hide?
By random upgrades I didn't mean change them during the battle but more like either player's units start out of a different set with possibly different upgrades(e.g. the first run it was 3 marines upgraded 1-2, the second time it is 1 marine 0-1, 2 tanks 2-1, etc.)
The spawns of the battle formations should be at random locations yes(the war units need to be grouped closely as if moving together). But the start locations should be at the real start locations of the map(in the case of a python UMS variant those are the 4 possible locations) where a set of the general buildings for the race should be placed(a few supply depots, a command center). No workers/minerals/available resources are needed as this map would serve the sole purpose of battle training.
Devourers, Lurkers, Broodlings, Scourges are appropriate, too.
Unit counts I'll represent as percentages of the total,
e.g. the number Ultralisk: 10 represents a 10% chance that the next zerg spawned unit will be an ultralisk
Zerg(Computer)
Ultralisk: 8
Scourge: 3
Zergling: 20
Hydralisk: 18
Mutalisk: 15
Guardian: 13
Lurker: 14
Queen: 4
Devourers: 5
Total number of units: rand between 5 and 50
Terran(Player)
Marine 12
Medic 3
Ghost 5
Vulture 20
Goliath 25
Tank(with siege upgrade) 15
Wraith 6
Valkyrie 5
Science vessel 8
Battle cruiser 3
Total number of units: rand between 3 and 40
-
- Posts: 362
- Joined: Thu Apr 26, 2007 12:42 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
-
- Posts: 362
- Joined: Thu Apr 26, 2007 12:42 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
What about single-purpose upgrades (overlord speed, ultra armor, ling speed/atk rate, hydra range, etc)?
Should Terran also get all tech? What about Terran's single-purpose upgrades?
EDIT: your terran unit list doesn't add up to 100%, it adds up to 102% (currently making it out of 102 to compensate). Also there are no Overlords in the zerg spawn.
How many SCVs should spawn at the base?
Should Terran also get all tech? What about Terran's single-purpose upgrades?
EDIT: your terran unit list doesn't add up to 100%, it adds up to 102% (currently making it out of 102 to compensate). Also there are no Overlords in the zerg spawn.
How many SCVs should spawn at the base?
-
- Posts: 254
- Joined: Thu Dec 18, 2008 12:42 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
"What about single-purpose upgrades (overlord speed, ultra armor, ling speed/atk rate, hydra range, etc)?"
Basically these should be randomized if possible - whether it's avail or not. Both for the zerg computer and the terran player.
Corrections to Terran counts:
Marine: 11
Science vessel: 7
No need for SCVs at the base, spawn a random number of 3 to 5 in the battle group and I'll assign them as repairers/turret builders.
Going to try the alpha now. Thanks!
Update:
My spawned battle group looks good. I'll check it out again when you're ready with opponent units and adding some buildings to both start locations.
Basically these should be randomized if possible - whether it's avail or not. Both for the zerg computer and the terran player.
Corrections to Terran counts:
Marine: 11
Science vessel: 7
No need for SCVs at the base, spawn a random number of 3 to 5 in the battle group and I'll assign them as repairers/turret builders.
Going to try the alpha now. Thanks!
Update:
My spawned battle group looks good. I'll check it out again when you're ready with opponent units and adding some buildings to both start locations.
-
- Posts: 362
- Joined: Thu Apr 26, 2007 12:42 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
-
- Posts: 254
- Joined: Thu Dec 18, 2008 12:42 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Spawn overlords to provide 200/200 supply limit.
Yes, spawn a zerg building with all possible buildings at one of the random start locations.
Yeah, defilers with all upgrades are necessary.
No need for resources for the human player. Just make repairing free.
Zerglings/scourges in pairs, yes.
The random upgrades sound cool.
Thanks!
Yes, spawn a zerg building with all possible buildings at one of the random start locations.
Yeah, defilers with all upgrades are necessary.
No need for resources for the human player. Just make repairing free.
Zerglings/scourges in pairs, yes.
The random upgrades sound cool.
Thanks!
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Return to “AI development (BWAPI Bots)”
Who is online
Users browsing this forum: No registered users and 11 guests