Leaderboard by unique code



  • With the discussions going on around shared code bases, would it potentially be valuable to add a leaderboard that takes into account how unique your code base is?

    Some calculation of Control Points * uniqueness of code.

    So 1,000,000 Control Points * 100% unique code > 1,000,000 CP * 99% unique code.

    Or, for a shared code base that has been "tweaked": 1,000,000 CP * 5% unique code < 1,000,000 CP * 7% unique code.

    It very quickly becomes a 2 tier system for people who start custom and borrow from open code bases vs people who start with a shared code base and tweak, greatly benefitting the custom folks.

    How you determine "uniqueness" I don't know, but it adds an incentive that isn't currently there to develop really custom stuff, and allows those who care about code to measure themselves on that metric, and those who aren't as strong at coding (me) to tweak and compete on expansion.

     

    Just a thought.



  • While I can see the appeal of this due to the number of open-source AI users, it'd eat up a lot server resources to compare uniqueness of code on the scale of thousands of players.

    On a side note, those who stick to using open-source AI are not really doing themselves any favors. Firstly, IMO much of the fun in Screeps is making your own AI and evolving/adapting it to the new challenges you face along the way. Secondly, while they do gain an earlier-game advantage, eventually you'll work out how to take one of them down either through trial and error, or by checking out their open code base for weaknesses/bugs/exploits. Once you've nailed one, you've nailed most of them. 🙂

    That said, there are quite a few who adapt the open-source AIs and change their behaviour. I've nothing against them either way. Maybe they didn't have the time to start from scratch. To me its just another challenge to overcome with my own "from-scratch" AI. 🙂



  • While I somewhat like the idea, this is also a bit detrimental for those that share their code for others to use. You have no way of determining who the "original author" of the codebase is, everybody that uses it gets the same amount of credit that way, no matter how involved they were in creating that code.


  • Culture

    It shouldn't eat up that many resources. Every once and awhile a job would have to launch to cluster/compare each code base, but then after that you only have to calculate it when code changes (which you could further optimize by skipping when the code changes are small).

    Even if it doesn't count towards the scoreboard I'd be very curious to see how many people have unique code bases versus just cloning one of the public ones.



  • I'd rather the devs focus on making the game better.

    There is a trivial solution to detecting code uniqueness but it only works against the trivial case.

     

    Catching any non-trivial case is non-trivial.

     

    https://en.wikipedia.org/wiki/Halting_problem



  • While I do and don't agree with @Shedletsky (dev resources are limited and should be put to high value features, this is a somewhat solved problem with MOSS and others...and yes, it will never catch a determined bad actor), I think @Mirroar makes a good case that those who offer code should get some benefit, otherwise they may not be so altruistic.

    And @Syncaidius, sure, the fun is in solving problems, but for me, I learn a lot more from seeing how other people have implemented and building onto that...I'd be completely lost and probably would have abandoned a long time ago if I couldn't use someone else's framework as a starting point.

    Either way, I think there may be a "Gamification" solution to code sharing that lets people who write unique code measure themselves accordingly, whilst also allowing of us who aren't great devs, learn from those who are.