bencbartlett / Overmind

AI for Screeps, a multiplayer programming strategy game
MIT License
554 stars 159 forks source link

Add Assimilation checks to Colonization #115

Open Coolfeather2 opened 5 years ago

Coolfeather2 commented 5 years ago

Pull request summary

Description:

I have added assimilation checks to the three colonization directives and the strategist This is an attempt to getting Overmind to play better when neighboring other Overmind users.

I am open to additional things you want me to try and get this implemented on - I have only thought about the colonization directives - or if there is better ways for my code.

Added:

Changed:

Removed:

Fixed:

Testing checklist:

ahmedcharles commented 5 years ago

It might be better to not reformat all of the imports?

Coolfeather2 commented 5 years ago

IDE formatted it when adding new imports automatically I'll roll back those chunks

MatthewARoy commented 5 years ago

Might as well add a low conflict mode where it plays nice with non-overminds too. A setting for growing empires to avoid pissing people off

Coolfeather2 commented 5 years ago

Something like the mode discussed here?

106

MatthewARoy commented 5 years ago

Not really. Basically a mode where invading other players space is prevented. Low-conflict mode where you don't try and expand/mine from other players territory. So basically this mode, but for all players not just assimilated. Should be flag check of "if assimilated or in lowConflict mode"

Coolfeather2 commented 5 years ago

This type of feature you're suggesting would need it's own PR, I do not intend to add a blacklist/whitelist for the player, I don't think it suits this codebase? It's ultimately Muons decision so we'll have to wait for him to have enough free time to review

MatthewARoy commented 5 years ago

Sure, happy to add it after your merge. I'm saying a setting to treat all other players reasonably well is a good stealth mode during a colony growing phase. Don't want your level 4 rooms picking fights over remotes with a level 8 room nearby.

canberranet commented 5 years ago

I agree @MatthewARoy, it probably have to be turned off for SWC, but attacking freely might be painting a target on your back.

MatthewARoy commented 5 years ago

Also it's just not very effective. A lower level room is going to be wasting precious resources trying to fight an RCL 8 room that just spawns a single 50 part creep to defend it's remote. You'll lose that fight every time and drain your room. Much better to try and claim uncontested resources.

I'd propose having a new bot setting definition that describes it's behavior (not in this PR, but in general going forward) 1) ExpansionPolicy: How aggressively it expands, does it attempt to settle near enemy rooms etc.

Universal whitelist/blacklist helps define behavior for all of these, where assimilation is considered whitelist. End-level behavior for whitelist could be as far as assisting in ally roombuilding/defending.