bonzaiferroni / bonzAI

106 stars 41 forks source link

disable the `TradeNetwork` by default or clear out default`TradePartners` list #14

Open tedivm opened 7 years ago

tedivm commented 7 years ago

The TradeNetwork should either be disabled by default or the TradePartners list should be empty in this public repository. The reasons are simple-

Disabling it by default could be as simple as requiring a constant to be set to true or having a memory point set to toggle this.

bonzaiferroni commented 7 years ago

It seems there is a bit of confusion about the purpose behind bonzAI. It is not intended to be a ready-to-use AI like TooAngel. It is just the code that I am running and I made it open so that there would be another open codebase to be used as a reference. So this change would require I do some modification before/after syncing with the repository.

I cannot ignore the fact that people are using it that way, whether I intended or not, and so I am mindful about how certain aspects might impact the game. This is why I have stopped publishing updates to the raiding code.

On the other hand, if people are going to use it, it is their responsibility to look through the code and update it to their specifications. I'm very clear about that in the readme. I have not tried to profit from this, when players have seemed to have me included in their TradeNetwork, I have contacted them and let them know about this issue.

tedivm commented 7 years ago

To be clear, everyone who knows about this thinks it's super sketch. I'm trying not to make a big deal out of this, because it could have just been an accidental thing. But if you're actually leaving this here on purpose, knowing that it benefits you in this sketchy/underhanded kind of way . . .

etrexel commented 7 years ago

@tedivm I know about this and do not think its "super sketch". I above all things in screeps hate people who deploy freely available codebases in screeps without any knowledge of what is in them or without even an attempt to modify them.

I use Bonzai's codebase as a reference for some things because his design is quite clever, but I write my own codebase for this reason: I can mimic the parts that I like with my own added spin, and do not take the parts that are clearly just for his own purposes.

I appreciate him making it available as it has helped me to grow as a player in the game and accomplish new things. I do not expect him to cater to me as someone benefiting from his code as that is just absurd.

It is my personal opinion that those who can't find this sort of thing for themselves and disable/change it are really not ready for the game, or just aren't trying and should be punished as such. Sorry if this is an unpopular opinion.

kirkportas commented 7 years ago

+1 @etrexel. Copy-pasters of AIs are probably the biggest threat to a game like Screeps and to any coding competition. Any players who aren't engaged enough to even skim their submitted code by the time they're at RCL6+ should be handicapped. Having code as advanced as Bonzai's available at all is risky already.

tedivm commented 7 years ago

@etrexel - it's not just the users of the code who are at a disadvantage. The thunderkittens are getting resources from zombie/inactive/novice players. They're basically getting extra accounts to support their primary accounts via some clever social engineering.

tedivm commented 7 years ago

From the readme page-

If you have any problems or something seems really unclear, please raise an issue.

To me it seems like this is unclear, so I went ahead and raised the issue. Even something as simple as a warning on the readme would make this situation better than it currently is.

bonzaiferroni commented 7 years ago

clever social engineering

I think you give me too much credit! If it was an attempt to get resources, it would be a very poor one. The console is very verbose about who it is sending resources to.

I'm not opposed to making a change in future versions, I just wanted to clear up the confusion about bonzAI. It is really just intended as a reference. I see no problem with using it as a starting point if players want to run it directly, but they are pretty much on their own. The fact that people have decided to do this has been a bonus for me. Not because of some diabolical resource funneling scheme, but because the code has benefited greatly from having more eyes on it.

tedivm commented 7 years ago

@bonzaiferroni for the record I did not assume you did this on purpose, and I just assumed that when I opened the ticket this would be resolved quickly. I was not expecting it to turn into the discussion that it did.

However, once the pushback towards solving the problem started then I got concerned. Whether you're intentionally creating a "diabolical resource funneling" or are just taking advantage of some stale code, the actual consequences here (you getting more resources) are the same. So now that you are aware of this, your decision to let it stand or correct it is a conscious decision on your part (as opposed to just inertia from an old codebase).

kotarou commented 7 years ago

I think this is fine, actually. People who run external code without verification in some way deserve to be slapped. And bonzai could split his codebase into many submodules, or use the eternal config.example trick... but I can entirely understand if they don't want to.

The readme commit (0338664) is an entirely sufficient solution, I think.