CG stance regarding code sharing & alts

There are a couple of things that became more prominent in the recent months, and were until now generally negatively seen, namely code sharing and alt accounts in multiplayer games.

On multiple occasions in the past, CG has asked not to share bot code of multiplayer games, and removed posts of people doing so. However in the recent month or two, it seems CG has gotten a lot more lenient and now maybe even condoning it.

In my opinion, this is a really bad idea, as I have made abundantly clear on the chat in a few debates. So I won’t repeat myself here, unless people really want to keep at it, but there is probably not much left to discuss.

What I would like to hear is the official stance of CG regarding the matter. Do you condone sharing multiplayer bot code on games still used as a form of competition in between contests?

And while we’re discussing this, why not also include a stance regarding people having multiple accounts? I feel less strongly about it, but it would still be great to clarify the policy for everyone.

Thanks!

11 Likes

I fully agree on the sharing of whole solutions and bots.
Unfortunately it will be almost impossible to completely prevent, especially since lots of the bots are shared on github. The only time I shared a full competitive solution was for The Accountant when I knew there would be no possibility to play again. Then, there are the people who share incomplete solution as what we have seen at the end of Hypersonic. I kind of enjoy these because they won’t work as copy-paste solutions and help other players to improve their coding and understanding of AIs.

Another note on multiple accounts : I don’t mind as long as they are not used in a competitive way. I use multiple accounts to prepare introduction contents for friends and colleagues. One way I could avoid this would be to allow players to “start fresh” on a league game : being able to start over again in the lowest wooden league. This way I could test my ideas in a low league without having to create a new account for this :slight_smile:

1 Like

I think reCurse refers to alt bots on CSB, that cope many places on top 20-30 Legend.

1 Like

You think that many “double accounts” scoop top ranks in the top of csb ? (naive question I have really no idea)

1 Like

For many people, contests are the real challenge and multiplayer puzzle is a just a useless sandbox playground where you just submit your contest AI and you never touch it again. You’ll always have a top 5 winner of a contest sharing his code on github. Because he doesn’t care of the multiplayer puzzle and he doesn’t care if 50 peoples just copy/paste it. What codingame can do ? Nothing. They can’t get a code removed from github. It’s a useless war.

Alts account can be fighted. At least codingame can just disallow 2 accounts with the same IP adress on the same multiplayer puzzle. I don’t know if it would solve the problem.

Many people also care about the multis and it’s worth talking about. This is actually what got me hooked to CG in the first place. Had I encountered this level of spoil at first, my interest would have instead quickly faded to drop out of CG before even remembering there are contests. Most of the fun was reading mentions of techniques or algorithms in post mortems, research them and try to make them work by myself. Because there was no other way to get better. Great incentive for me and I am sure many others. There wouldn’t still be activity in multis otherwise.

I disagree with the defeatism that code sharing cannot be prevented. After I raised the issue on the last contest, at least 2 people who ranked high stated they won’t share full code again. And if you had not done it, no one in the top5 of FB would actually have his code public (excluding a very momentary pastebin of Neumann). Instead there are probably at least 5 clones in the top 20.

If the CG stance is to not allow it, we can then make it work much better as a community.

7 Likes

Why not let programmers think and choose for themselves how exactly they want to have fun and/or learn things?

Outside of CG, sharing of complete solutions is a very common practice in pretty much every competitive programming community, including bot programming ones.

I have no opinion on alt accounts, but any IP based block is bound to trigger false positives.

Hard to please everyone, isn’t it?

The easy solution is to not have the same puzzles at all between multis and contests. The trivial rule changes as is currently done won’t cut it.

1 Like

Contests are one thing, but we now have a legend-ready fully functional bot for CSB months after the fact, which is another matter really.

Again, the important thing is to have a consistent stance on the matter and go with it. If CG says it’s all good, then that’s that and I won’t bring it up again (unless someone asks me).

2 Likes

We discussed about it today with @_CG_G-Rom . I will share our point of view really soon. But right now I need to work on my blog post :smiley:

3 Likes

If CG declares that indeed, like you said, every programmer can choose how to approach a multi including code sharing, then my mission is accomplished. At least the position is clear and the rules understood by everyone, even if I happen not to agree with that.

I argue against it because I think it dimishes the value of the challenge and the variety of submissions to play against. My point is not about forcing people on the way to play multi, but having rules on what is fair ground for competition. For example, in my view there is much less incentive to solve puzzles if the solution is publically available before even reading the statement. To an extension, I feel the same about “solving” multi games, and if I know most of the competition is branching off the same code, or if something close to the “best strategy” is a copy/paste away for everyone, it’s much less interesting (for me).

Of course this discussion is very philosophical, there is no right answer. Rest assured I am not pretending to have the absolute truth on the matter, this is of course just my opinion. There are many point of views on what makes you participate in multis (or not) and it’s good to discuss. But just because other sites do one thing doesn’t mean CG can’t do something else if it wants to.

3 Likes

Thanks, I really appreciate it. Looking forward to your post. :slight_smile:

Just to be clear, what I pastebined was my complete code with typos in it. Typos that require a full understanding of my AI to be corrected. I don’t think anyone took the time to do so because of the amount of time it would require, and that was the goal. The code is unusable as such, it can only give an idea of how I code, nothing more.

1 Like

I understood what you did, but in a sense I don’t think your C&P prevention was very different from Magus who edited out his evaluation function instead. The difference I pointed out was more on how public the sharing was, as you pasted it once in chat (I think) and pretty much never mentioned it again, while Magus was very active on promoting it.

And with the recent CSB bot, there was no attempt made to prevent it from being fully functional from the get go. It’s been a while I had in mind to make this thread, so I thought now would be a good opportunity to do it.

Can confirm, making it functional out of the box was the idea. I’d rather people have a working example.
It is lacking some key features, which I considered to be more important to learn than tinkering with sim engine. Notably, it has no GA implementation.

If i look at how i progress on codingame, i used a lot the others codes.

When i started with the site, i used all post mortems articles to build AI’s for the puzzles. For some puzzles the code itself was available and i use a lot. I never copy/pasted anything, but without these codes, it would be very much harder.

I remember reading pb4 poker chip race code a lot. I remember a code for Back to the code, very interesting too. A python code for Game of drone (i use it to make my javascript code). The Java code from Holol for Codebuster. You can say “you can just read the post mortem”. Try to read the Holol post mortem article for Codebuster then read his code. You’ll see that his code contains many key features and the post mortem just doesn’t talk about it.

All i want to say is that code sharing is not just a bad thing. I used these codes to progress. And that’s why i shared my fantastic bits code. And i will be glad if others players share their code for next contests because i’ll read it for the same reasons.

3 Likes

Yes, not a bad thing at all. But the devil is in the detail.
Sharing the working code of bots in Legend Ligue would transform multiplayer games in just another hell of Clash of Code copy-pasting. No more meaningful Leaderboards. In long run, it could be devastating to CG.

Share snippets and ideas. Let 'em code themselves.

7 Likes

I think the main problem is not about code sharing, but the quality and readiness of the shared code. In fact I can ditch my CSB code (with hours, days of ‘useless’? effort on it), use this bot with a 3hour GA implementation and get better results. And with that kind of bot, the code sharing idea can backfire. If I got top 30 legend on 5 minutes, why I bother on improve it? Just submit and move on to another puzzle. I’d do that, maybe they’ll refactor it, but on a distant future.

Probably there are hundreds of CSB bots on Github, 99% of them useless, and nobody cares about that. There are also a lot of good code snippets (I think 99% of CSB bots on top 50 uses Magus snippets and collision idea, and he even got physics code from another CG player), and it’s ok. So the point is not code sharing, but readiness to use it.

Github and code sharing is unstoppable, and CG should work on around that. As CG is creating a Learning Section, I think the best idea is to try that people don’t simply share code on github, but add it as a CG Learning Course. You can have your full code shared, but splitted on the tutorial. This way it isn’t a simple C&P, at least you must join the pieces to have it working, and in the process you’ll learn about the code and how it works.
Sometimes multi puzzles are overwhelming (especially with incomplete statements, and weird bugs that you must debug), so having good guidelines is a plus to get more people into the game.
In chat the most recurring question on newcomers is “where do I learn to code?”, This is maybe a wasted opportunity for the CG platform. I learned C++ and GA outside CG platform. Yes, each multi has a small description with links to some algorithms and such, but very basic. Improving the learning area inside CG can be a plus.

But this is IMO, I’m not a pure coder, I work on management where they asked me for results, not new code. So if I found a good OpenSource app that covers the requeriments I use it. Auth servers, Document Managers, Private Clouds, Business Process Managers… a lot of good code that I use and refactor/add modules to get what I need. First check existing solutions, test them and if they are good, keep them and start refactoring. If not, then start from scratch.

1 Like

Preach. I think that is the only good way of doing things.

First, I would like to remind everyone to remain respectful in all of your exchanges here.

I understand your frustration, @reCurse. We used to remove links to code sharing and now we are being more tolerant about it.

We have decided to not forbid code sharing. However, we hope that if you choose to do it, you do it intelligently.

As some of you have written, we have no way of forbidding code sharing anyway. And we believe, like Magus, that it could benefit a lot of developers. We have added code sharing on Clash of Code with the same mindset.

About alt accounts (or smurfs), we do not allow them. Keep in mind that today we don’t take action on them but it may change without notice.

6 Likes