Coach AI has arrived !
==================
This simple BWAPI-AI/UDAI (User defined AI) is not designed to compete with another UDAI or human, instead its made to help me/newbie/intermediate/advanced/top players to test and sense and remember things that aren't easy/possible before.
Note: This works only with v1.16.1 using ChaosLauncher, it also works with ICCUP, you'll even get the win points, it wouldn't be a cheat but rather a declared treachery, but if one of the players is Computer, ICCUP server won't log the game.
========================================
List of features this helper UDAI currently has:
========================================
- RealTime track of the number of workers assigned to Minerals and same for Gas.
- RealTime track of the number of killed enemies.
- Customizable notification sound and period when worker production stopped (1s), idle worker exist (5s) or you've missed multitasking (10s).
- RealTime track of the number & type of idle production buildings, and warning when one idle for 10s (for Zerg, only the number of Larvae displayed).
- RealTime track of the number & type of idle fighting units (only non-worker units that canAttackMove: HT, Siege-Mode Tank, Lurker cannot, Medics can !, also note that Hold position units aren't idle), and warning when one idle for 20s.
- RealTime intel about all current enemies.
- RealTime track of the number until supplies blocked and the number of supply units needed to max army.
- autoTrainWorkers which train 1 worker @time from each base until 50 workers exist (for Zerg only 1 Hatchery is used for producing).
- autoMine makes workers gather Minerals/Gas automatically like in SC2, so there is no idle worker.
- autoBuildSuppliesBeforeBlocked when its 6 from being blocked (for Zerg only 1 Hatchery is used for producing), to disable it you can set this value to something like -200.
- Detecting the game speed, by just looking at the FPS value: 24=Fastest, 21=Faster, 18=Fast, 15=Normal, etc..
- Prevent the player from queuing 3 units from the same production building.
- AnyRace_CoachAI.json:
Allows the player to modify/disable/enable many values, also this config file can display a text block that appear constantly during the game (most of us might forget what was planned before the game, so a written BO and tips on the game screen might be a good practice for memory). - Message shortcuts the player can input and UDAI can understand:
c1="show me the money", c2="black sheep wall", c3="operation cwal", c4="power overwhelming", c5="staying alive", c6="there is no cow level".
UDAI=only in multiplayer (ICCUP/LAN) to acknowledge superiority from the non-CoachAI player, and that the CoachAI-player is not cheating by having intel about him. - RealTime track and record of the Macro actions build/train/upgrade and its time (the MacroLog).
- Hotkeys tracker/counter to encourage more actions (more APM).
- New hotkeys:
F5=Toggle between the display of the MacroLog & the Hotkeys tracker/counter. Up,Down=Scroll through the MacroLog when more than one page exists.
While on the Hotkeys tracker screen, you can press Control to display more of the enemies killed, Shift to briefly look at the multitask measures.
F6=Displays units/buildings info, toggle the display mode of in progress units/buildings.
F7=Switches between the preset game plans.
F8=Switches between the current enemies infos, and also drawing the selected enemy army in the dark/fog, also pressing Shift toggles the display mode.
F9=Finds the idle workers (similar to SC2).
F11=Displays some walling tips. - Game info is drawn even when the game is paused.
- Multitasking++:
+ Show Spoiler +Screen Multitasking:- A counter for each screen you step into, with total jumps during the game, the average stay @1 screen, the total stay on each screen for above 5s (customizable live, by editing totalTimeOnScreenOrSelectionAbove) and finally, a customizable notification sound when you stay @1 screen for above 10s (customizable live, by editing sameScreenOrSelectionWarningEvery).
Selection Multitasking:- A counter for each selection you select, with total switches during the game, the average focus @1 selection, the total focus on each selection for above 5s (customizable live, by editing totalTimeOnScreenOrSelectionAbove) and finally, a customizable notification sound when you focus @1 selection for above 10s (customizable live, by editing sameScreenOrSelectionWarningEvery).
- WorkersCut log (only 2+ seconds cut is calculated): to see when exactly in the game you've stopped making workers and for how long (I personally record my screen to see what I was doing, because replay is not always an option).
- Prevent making more workers after the default 9 min (to punish the player who doesn't make the ideal amount of workers early on), ofc you can change this default 9 min in the config file (workersProductionStoppedDuring).
- Custom countdownTimer: just like seen in some missions, but you can use it in any map to practice/polish specific task/timing, when the timer ends the game will too, you can set the countdownTimer to whatever value you like (in seconds), it works whether its a game start or a saved game, use the "dontDrift" value in the config file to change it.
Features on both game and replay:
============================
- RealTime track of the number/type of units/buildings and also the ones in progress, and the remaining build time for each one in progress, also the remaining time for each Tech/Upgrade in progress.
- The most accurate RealTime measure of Macro train/build/upgrade (Terran repairs not accounted), because most people tend to measure it just by the used supplies at specific time or by inaccurate replay analysis tools, on replay you can know @any second who is the best Macro player (same as the score screen you see at the end of game/replay).
- Buildings that has Rally Point will draw a line to the RP.
- Displaying the number of mineral workers on each Nexus/CC/Hatchery.
- Displaying buildings gaps values and ground units sizes, for quick and easy reference to better walling (activated by pressing F11).
- Minerals Above measure that counts the time of being above 250/500/750/1000 minerals.
- Workers production stopped measure (Workers Cut), counts the time that Nexus/CC has been idle, if you have 2 bases the counter will be doubled, 3 -> tripled, etc.., it works for P & T, not Z, the default period for counting is the 1st 9m (540s), you can modify this by editing workersProductionStoppedDuring value in the .json file.
- Idle Workers measure displays the number of idle workers, and the total lost time (as with Workers Cut, this increase when there is more Idle Workers).
- Showing how many unit/building has been lost during the game/replay (just select one of the same type).
Features on replay only:
===================
- Showing the replay duration beforehand, and also the replay name, date, game title, game type and the map used.
- Easily distinguishing which players against which players on team replays, (even SC:R doesn't has this !, maybe time to write some code lazy Blizzard ?)
- During team replays showing if playerX allied with playerY, and if playerY also did the same.
- RealTime track of taken tech & upgrades (you need to select any player's unit to display the infos, you'll find the Minerals Above counter with the same color as the selected player).
- For understanding replays better, RealTime track of each unit order and drawing a line to the order target if there is a target.
- Display each player BO on replay, how the log works ?.
- Automatically highlight idle workers.
- Displaying live score of produced/killed/lost units/buildings, to get the current state of players, this is about unit/building control (more close to micro, same as the score screen you see at the end of game/replay).
- Recording the max number of idle workers of each player, and when that happened.
- The screen will automatically move to where a Nuclear launch, Comsat scan or Storm is positioned.
- An intuitive/easier way to toggle vision of the selected player (and his allies) by pressing F7 (SCR requires that you blind ALL other players individually to get the vision of 1 player which is not smart, here we just need to select a player/or 1 of his allies to see the required vision).
- You can ask the CoachAI questions like:
Who wins? (or just "?"), How old r u?, r u male/female, who won the latest world cup?
I'm kidding, he'll only answer the 1st 1.
==================
- "autoTrainWorkers": true
- "autoMine": false
- "autoBuildSuppliesBeforeBlocked": 6
- "maxWorkers": 50
- "maxProductionBuildingQueue": 2
- "totalTimeOnScreenOrSelectionAbove": 5
- "sameScreenOrSelectionWarningEvery": 10
- "workerCutWarningEvery": 1
- "idleWorkerWarningEvery": 5
- "idleProductionBuildingWarningEvery": 10
- "idleFightingUnitWarningEvery": 20
- "workersProductionStoppedDuring": 540
- "logWorkersAndSupplyProduction": true
- "logUnitsProduction": true
- "replayLogUnitsFor": 420
- "replayLogSupplyFor": 40
- "dontDrift": -1
===========
Installation:
=========
- Extract the .7z file contents from this topic to SC v1.16.1 folder.
- Extract CoachAI.zip contents to StarCraft\bwapi-data folder.
- Watch 1m from this video, but change the AI from Protoss_McRave.dll to AnyRace_CoachAI.dll.
c++ source code
Known bugs:
+ Show Spoiler +
- When hotkeyed unit(s)/building lost, it still appear as valid on the Hotkeys tracker.
Thanks:
+ Show Spoiler +
- BWAPI-AIs devs @ https://discord.gg/XGy52Q, specially @N00byEdge, @PurpleWave
- CoachAI also depend slightly on https://github.com/icza/screp
- CoachAI also depend slightly on https://github.com/icza/screp