jabbo16 / ecgberht Goto Github PK
View Code? Open in Web Editor NEWStarcraft: Brood War bot using BWAPI4J
License: GNU General Public License v3.0
Starcraft: Brood War bot using BWAPI4J
License: GNU General Public License v3.0
Right now Ecg only builds one bunker and one turret at the Main Chokepoint that is closest to the Natural Region, some improvements would be:
Being able to place defenses at other locations like the natural base, this helps FE builds.
Build more turrets if getting drops or cloaked unit attacks like DTs or Lurkers, helps with #8
Bunker rush for BBS?
Hi mate, I'm trying to practice vs various Terran BOs, what values go in this key ?
Current algorithm sometimes builds the bunker a bit far from the command center.
A nice heuristic could be a mix of key buildings distances and maybe? covered/protected tilepositions by bunker range.
Ecgberht learning versus Random opponents is bugged because of BASIL picking a race from the start.
A fix would be generating a learning file for each opponents played race (including proper random)
Similar to Proxy Fac logic, calculate best positions near the enemy base that are not near natural paths
Add learning to BM Ebay and Proxy Fac
Use of JPS to calculate best positions for sieging tanks to protect main path from enemy base
Right now all of the bot strategies are meant for TvX, so the bot can play worse strategies vs certain matchups (like Bio vs Protoss or Terran).
Current strategies should be reworked/deleted/added so the bot plays using proper metagame and not meme strategies.
One example its the new 2PortWraith build that its good vs Zerg.
In some test game against the built-in AI Ecgberht stopped attacking after sending the first wave.
Got to 150+ supply but didnt attack when It should have.
This history could be used to ponderate the learning, this way the bot will prefer more recently games when deciding what strategy/build to choose.
ImproveMech Build Order (implemented right now but floats a lot of minerals).
Add Armory building, upgrades.
Goliaths.
Finish #12 .
Reactive unit composition for mech, add more goliaths if enemy air units spotted, no marines to kill air.
Add config file to allow for different config parameters like text debugging, build orders enabled/disabled, tournament mode and debug drawing.
SCVs fail to repair buildings other than bunkers.
We are currently using a few Lists that could work better as Sets or Maps because they dont allow duplicates.
Port latest version to BWAPI4J
https://github.com/OpenBW/BWAPI4J
Two main benefits from this is:
Taking advantage of this rework also complete #2 at the same time
It was supposed to be fixed with CIG 2018 version but still fails sometimes. Most common map with this problem is Destination
.
The bot should train a few firebats when playing against Zerg, the max amount of firebats should be a fixed value, around 2-3 firebats max, may be increased/decreased depending on the amount of zerglings.
Sometimes when destroying enemy main base Ecgberht doesnt send a scouter to check other BaseLocations.
Probably has something to do with the enemyBuildings Set not being empty when It should be.
List of current bugs/improvements to be done:
BWTA sometimes gets the wrong chokepoints of some Region
s, using BWEM should help with this.
Requires #7 to be done first.
The marines usually get too far ahead and leave the tanks undefended at the backline, this usually gets the tanks killed and the marines then exposed to the enemy units.
One improvement I have thought is to split the squads by "Bio" and "Mech", setting the "Bio" squads to protect the "Mech" squads and to not get too far from them.
Also tanks wont unsiege when enemies are too close and get killed while sieged.
Group Behaviour Trees initialization to reset them with an Strategy
parameter.
Some reactive checks to change Strategies
on the fly
Right now sometimes the bot can build at weird places because of how the location finder algorithm works, It should try to explore first buildable positions belonging to owned Areas/Bases.
Rework it completely as It sucks right now ๐ฉ
Dropships are already implemented but only for island expansions (not used right now because of BWAPI bug).
Should be just adding new logic to DropShipAgent
to pick units, follow a proper path to the enemy base and to drop them to cause the max amount of damage to the economy (killing workers, etc.).
Test if choke/base detection logic works fine and army doesnt derp anywhere with AIST S2 map pool:
(2) Benzene
(2) New Heartbreak Ridge
(3) Aztec
(4) Circuit Breaker
(4) Eddy
(4) Fighting Spirit
(4) Roadkill 1.08
Fix these current opened issues:
Other improvements/fixes:
Fix tanks looping (siege -> unsiege, repeat) when enemy targets are in range but not visible ๐ค
Vessels still run fly float into scourges ๐
Vultures suicide when retreating ๐ฅ
Implement high ground siege tanks (insert star wars prequels meme)
Ebay bm and proxy fac learning?? (kinda similar to SH gas steal or locutus pylon bm)
Medic only squads should move to closer non-medic squad instead of chilling around the nearest Command Center ๐น
Implement own fixed getDistance
method
Add new memes ๐
Something its wrong with it, Squads dont try to attack enemy buildings in sight and only move to the center of the enemy base.
Not sure if worth it but It would be really easy to implement because Its similarity with the Irradiate
implementation.
This will cause less floating gas and more minerals income, will improve overall strength of Bio strategies.
The bot should check whether comsats have enough energy to cast scans before sending units into lurkers.
See replay for 2018-04-13 17:09:57.
SCVs start building from the center position so It should be better to move them to that center position instead the topLeft Position when moving to the build location.
This change also needs mineral prediction changes.
Right now GameState
its too big and does too many things, It should contain objects relegated to general tasks and manage them.
Sometimes the marines get stuck at ramps/chokepoints when changing the "objective" to attack.
Orders should be issued instantly instead of waiting for the squad to get close to the previous objective.
Issue related to #6
Use scans only when being able to kill invisible units.
Squad retreating if no detection available against cloaked units.
Training of Science Vessels and implementing an agent for them.
This map has some semi islands
expansions that can be reached using mineral walking, the bot should be able to expand to this bases(floating CCs or using mineral walk) and to explore, scout and attack them in case the enemy decided to expand to one of this bases.
Factory needs some space to build the addon, currently not implemented in our BuildingMap class.
It should check the extra size required for the addon when choosing the position where to build the new Factory and also update the map with the extra addon size.
The bot currently gets bugged when the factory has no space for constructing the addon.
Current Army management and micro its a bit underwhelming, needs a rework to be improved.
Related with #22, wraith logic was is borked.
Atm the wraiths just flee when there are enemies close enough to the cluster which the wraith belongs, It should consider wraith's distance to enemy units to see It if can kite any of them or one of the units are close enough to be a danger. Logic before used tried to do that but It was awful and didnt work.
Also dont expand if cannons are close ๐
Because of latency supply is not tracked correctly when not playing singleplayer, this messes up some timings that check supply numbers like scouting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.