AI competitions and ethics

In light of recent events, I feel I need to write a piece about this topic. So, my time is mostly spent on SCHNAIL (StarCraft Human’N’ AI League) nowadays, and I get to deal with a lot of problems across a wide area. I have to do full stack development, ops, and much more. That’s okay, that’s what I signed up for. But a concern has come up, and frankly, I didn’t consider the issue before.

Here is a friendly larva-schnail to soften the tone.

Gaining an unfair edge

In SCHNAIL, you have a system where you play against AI. In the user’s side, there is technically an AI that is injected, but it does nothing. We plan to add some statistics collection, and maybe displaying some info on the screen in the future to help the player. But this is clearly indicated, and consented by the user. Also, it will not be available in any kind of ranked/measured environment. Do not underestimate the competitive edge this can give to players. I was listening to an episode of the Tasteless Podcast, and one of their points was that even just displaying the saturation numbers above main buildings is affecting the game in a huge way. The engine behind the bots is absolutely capable of doing something like this.

And this is all fine and well, right up until you try to do it against humans. I do not condone that practice, and I don’t want to develop a tool that is capable of this. At this point, it is not really infeasible to do this, but it is my belief that as soon as you display any kind of number on the screen, people will go at unbelievable lengths to get an edge. Therefore, we must be on the lookout for cheating.

On SCHNAIL, you play against custom AIs. You might think you are not hurting anyone by cheating. In fact, for testing and practicing, I think it’s perfectly fine. The proble is, SCHNAIL will have bot rankings in the future, and those could be skewed by this. I do not speculate on the incentives behind doing that, but I’m sure there could be some, so I made a decision: Cheating, or any manipulation of the player side is not tolerated, and countermeasures will be taken. I will do my best to prevent it, because it is not in anyone’s interest. If you really want to cheat against a bot, you can set up your own ecosystem, but in SCHNAIL, there should be equal opportunity for the players, and an objective measure of bot strength. This helps advancing AI research, and getting a proper human vs. AI competition going. Said countermeasures will include preventing, and punishment as well. (I will ban cheaters in a heartbeat)

I feel it is especially important to take a stance on this, as doing anything malicious with BWAPI is reflecting badly on the community, even though it might be an action of an individual. I do not support, condone, or tolerate any kind of behavior of this sort, and refuse to be associated with it.

The implicit contract about your opponent

Another – seemingly obvious – topic I want to speak about is a clear indication that you are playing against an AI. In SCHNAIL, it’s not really a concern – the platform is literally built for that express purpose. But at any time, I think it’s highly unethical to deceive someone into thinking they are playing against a human, and with BWAPI, that is maybe possible. There is an implicit contract in online games that you are both giving your time and attention, and are actually present in the game. Any kind of rewards you get from the game, you pay with your active attention as well. This gets a little muddled when you play against an AI – but in the end, it’s just another form of PVE. And well, try to cheat in an MMO for example, and see what happens. You might say it’s generally frowned upon. SCHNAIL will be no different. I will take extra care to make it clear in every case that your opponent is an AI, and hardcode this in a way that my stuff will not be used for deceiving anyone.

Handling your data as a bot author

Lastly, something that is marginally related. This platform will eventually generate some data about the games. Specifically, replays and learning data. I view these as very valuable raw resources for AI research, and commercial applications as well. I do not know when, or how they could be used (Well, I have ideas), and that’s beside the point. I decided that when you submit a bot, you can give, or revoke your consent about using this data. There will be a separate checkbox for academic, and commercial usage. Consent is applied on an ongoing basis, so if you submitted some data already, then you can’t retroactively revoke your consent, but you can stop giving it at any time (meaning your data will not be submitted from that point on). I think this approach is reasonable.

Handling your data as a player

I think the same courtesy should be extended to the player as well. You can give and revoke consent on submitting your replays. Maybe there should be a middle ground with sending anonymized replays too. If you use this platform to practice, and don’t want to reveal your secrets/weaknesses, I can see why you wouldn’t want to submit your replays with your name.

Closing thoughts

I’m a bit annoyed that I have to deal with this, but it is unavoidable. My development time should be better spent on actual features that make this fun, but I just can’t avoid this, and have to handle it before someone gets the wrong idea. I like to be open about my development process, and what I’m working on, but by the nature of this, I won’t be sharing what countermeasures I’m taking – at least not with the general public. But be assured, they will be there, and the cleanliness of the competition is of prime importance. The most finite, and finite resource I have is the trust of my users, and I will do my best to not squander it.

Thanks for reading, and I would love to have a discussion about this – please don’t hesitate to express your opinion! In the meantime, please consider supporting the SCHNAIL project, and MCDT on Patreon! You can also follow on Facebook, Twitter, YouTube, or Twitch if you so desire.

Leave a Reply