Use Map Settings requests

Anything related on how to build / improve your AI using BWAPI, BWTA, BWSAL, etc.
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Use Map Settings requests

Postby Heinermann » Sat Nov 20, 2010 4:38 am

Some bots may have run into road blocks for training sessions (running multiple games).

Sometimes running multiple games isn't necessary if you can remain in the same game.
So, I am taking Use Map Settings requests.


Despite not publishing many maps, I was involved in the UMS community for quite some time and consider myself an advanced mapper.
If you require new or modified maps then please request them here.

Some examples:
  • A version of Python that "restarts" the game by respawning the starting units at a new random starting position.
  • A micro map that generates a random unit for each side and restarts when one side has been defeated.
Please provide as many details as possible.
I won't do "generate random realistic situations" when the situations aren't specified in detail.
If you say "all units" then I also assume heroes, buildings, and powerups, so please specify which units.


Maps
  • Krasi0's TvZ micro training on Python 1.3 <incomplete>: [attachment=2791:python_T...Training.scx]
  • DeathEagle's Goliath vs Zerglings micro training <incomplete??>: [attachment=2794:GoliathsZerglings.scm]
  • Heinermann's Yamato Ability dodging <incomplete>: [attachment=2796:yamatododge.scm]
  • Laccolith's Worker Rush practice: [attachment=2850:workerRush.scx]
krasi0
Posts: 254
Joined: Thu Dec 18, 2008 12:42 pm

Postby krasi0 » Sat Nov 20, 2010 9:10 am

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.
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sat Nov 20, 2010 4:30 pm

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?
krasi0
Posts: 254
Joined: Thu Dec 18, 2008 12:42 pm

Postby krasi0 » Sat Nov 20, 2010 9:33 pm

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
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sat Nov 20, 2010 9:56 pm

Yeah, I guess revealing the whole map and adding out of nowhere a special building

I can give a special building to the winning player. You lose obv if you lose all units.

Also can you force the computer to always seek and destroy the player units that try to hide?

Yes.

About upgrades, I'm going to have to leave that up to the bot to upgrade them. (Ex: Give an engineering bay and can upgrade)
About removing the resources, I decided to keep them but disable construction of all buildings/units except bunkers, supply depots, turrets, and refineries.
Already created a random locatioin system. The units will be automatically grouped because this is the behaviour of triggers.

If you want anything changed let me know.
Also what about the zerg's upgrades/tech?
krasi0
Posts: 254
Joined: Thu Dec 18, 2008 12:42 pm

Postby krasi0 » Sat Nov 20, 2010 10:09 pm

give the zerg all techs, and use random variations for attack and armour upgrades (1-3, 2-0, 0-0, etc)
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sun Nov 21, 2010 12:46 am

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?
krasi0
Posts: 254
Joined: Thu Dec 18, 2008 12:42 pm

Postby krasi0 » Sun Nov 21, 2010 7:53 am

"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.
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sun Nov 21, 2010 5:13 pm

  • What about Overlords?
  • Should I spawn a Zerg base as well?
  • Details on what the bases should look like?
  • How many resources should the player receive? (Or should I make repair/buildings/upgrades free?)
  • Should Zerglings/Scourges spawn in pairs?
  • No Zerg Defilers?
EDIT: Going to spawn 4-8 overlords using the same system as spawning scvs. Tell me if you want that changed.
Also going to have the Terran player receive random tech and single-purpose upgrades randomly as that unit type is spawned.
krasi0
Posts: 254
Joined: Thu Dec 18, 2008 12:42 pm

Postby krasi0 » Sun Nov 21, 2010 7:51 pm

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!

Return to “AI development (BWAPI Bots)”

Who is online

Users browsing this forum: No registered users and 1 guest