TooAngel / screeps

TooAngel NPC / bot / source code for screeps
https://screeps.com
GNU Affero General Public License v3.0
605 stars 154 forks source link

feature/Count-Angels-Alliance-Members-As-Friends? #122

Closed Somotaw closed 6 years ago

Somotaw commented 7 years ago

Is this something we would want? We could probably use the LOAN stuff and make this work if we wanted to.

TooAngel commented 7 years ago

Thought about that as well: I was thinking how can TooAngel AIs verify against each other, also discussing in different channels, couldn't find any way.

I'm thinking about something like building up trust. Not sure which side should trigger it, let's say the one who wants to earn trust.

This way the AIs / Alliance can build a some kind of friendship, but dynamic. If someone else wants to join and is able to solve the tasks it is also fine, they did something for us ...

Get what I mean?

Somotaw commented 7 years ago

That would be pretty sweet :D, local config options to be more or less aggressive aswell :) 👍

invisioblack commented 7 years ago

Treat it as a game of prisoners dilemma - Score the interactions as such: Cooperation - Cooperation [Helping each other] + 2 Cooperation - No Cooperation [They Aggress] -4 No Cooperation - No Cooperation [Mutual War] -1 No Cooperation - Cooperation [You Aggress] +4

everyone starts at like 0 - and positive numbers are friends and negative numbers are enemies? The values should degrade over large periods of time.

Somotaw commented 7 years ago

Hmm interesting, are there any analysis links to this pattern you would like to share?

invisioblack commented 7 years ago

There is a feild of study on Cooperation using the prisoners dilemma as the way to evaluate activity.
https://en.wikipedia.org/wiki/The_Evolution_of_Cooperation https://en.wikipedia.org/wiki/Prisoner's_dilemma https://cs.stanford.edu/people/eroberts/courses/soco/projects/1998-99/game-theory/axelrod.html http://216.119.127.164/edgeware/archive/think/main_filing6.html http://www.sci.brooklyn.cuny.edu/~sklar/teaching/f05/alife/notes/azhar-ipd-Oct19th.pdf

So using the task idea from above co-operation with each other would be each person completing a task where one person not completing the task would be a 'defect'. Of course we would probably have to have different levels of defecting because not doing a task is not friendly while actively attacking is much less friendly.

The most effective strategy is tit for tat with forgiveness - since this is an environment with 'noise'.

mschultheiss83 commented 7 years ago

as i read the title i thought, you mean updating src/friends.js and adding all Angels-Alliance-Members.

but the idea is more like feature/dynamic-friends, isn't it?

btw the idea is great!

i would stick to

some thoughts:

some tasks we could maybe add:

TooAngel commented 6 years ago

So the current status is, we have the idiot counter which is something like the foe and we have the reputation which is more the friendship. Not yet used too much I think this is fine for the beginning. The Angels alliance does not exist anymore, so I will close this.