On the topic of open source code bases

  • AYCE

    Thanks for everyones feedback. It is greatly appreciated. What I have concluded is to discontinue the releases of KasamiBot in its current state.

    My view on screeps has always been that it is a game about developing an automated AI, and hearing about coders who develop their own bot is discouraged by open source code bases like KasamiBot seals the deal.

    My intentions where good, I wanted to allow players to have some competitive bots on private servers where they just downloaded the bot from steam workshop and added it to the game. As the current system is set up, it is just not possible to release such a bot without the risk of it being used on the public server.

    The currently released KasamiBot is not very competitive combatwise, but will be challenging for beginners. I will be releasing an overview over weaknesses that can be used to take out KasamiBots, to help bridge this gap. My personal codebase has been rewritten and improved since the bot-release, so I'm not worried about releasing such weaknesses. That will at least force users to understand and further develop the current code base if they want it to be useful.

    I also want to encourage beginners to write their own code, and I will write an tutorial based on top of the official tutorial to introduce more advanced techniques like remote mining, basic defense and pathfinding. It will focus on structure of the code, and hopefully teach new players some design patterns I've found useful. The end of this tutorial will be released as KasamiBot 2.0, but will basically be a framework to further develop a bot in.

    As for bots on private servers, I encourage the developers to come up with a way to release a closed source bot. I don't know how this should be done, or if it is even possible, but if there is a way to release a bot without disclosing the source, I'm happy to once again release KasamiBot as it's intended usage, a private server competitor.

    Again, thanks for all feedback!

    I encourage everyone to check out #botarena (slack) if you are interested in developing automated bots, we have an very active community of botwriters who focus on non-interactive bots. It's a great place to learn, and the botarena starts are probably the most exciting thing to watch in the screeps world.

  • Culture

    The way JS works there really is no way to have closed source bots, the best you could get is maybe a wasm based bot,

    I personally don't mind people using prebuilt bots, although, IMO it does take some of the fun and challenge out of the game. I personally run my own codebase on Shard0 and a slightly modified BonzAi on Shard1 to build GCL while I'm working on ZeSwarm.

  • Dev Team

    Hey all,

    Thanks for erecting this question, I really think it's important because open-sourced code bases clearly give players using them an advantage over other novice players on early stages of the game.

    I discussed that with dev team, and here is what I have to say.

    Screeps is a sandbox game. This means that everyone is free to play as they want (unless they violate ToS, of course), so setting limits on using open-sourced code bases would be wrong. Devs created this world for us, and that was done not for them to dictate us how to play and how not to play (again, obvious ToS restrictions doesn't count).

    So dealing with open-sourced code bases and NCPs is up to the community.

    As I'm asked explicitly (what CMs feel about this), I think it's appropriate to word my position as a player. I personally dislike NCPs who try to play Screeps without writing a single line of code. I admit that they have right to do so because, again, it's a sandbox game. But I also feel that I have right to dislike them for using bots, and I have right to send dismantlers as soon as I see NCP in range. I think it's fair because if they get advantage from using someone else's code at early stages, they should also feel disadvantage of that at mid/late game.

    I don't call up other players to follow my example, sandbox game means that this question is up to everyone to decide.


  • I know I'm really late to the party, but I'm in a commenting mood and this topic interests me so I'm going to add my 2Cents. Bots are unavoidable but ultimately unimportant because at this point every player is already competing against lots of other players of varying skills and bots are just the same. Sure it would suck to start side by side with a friend and have them do way better than you because they install a bot and you write your own code, but if not your friend then someone next to you will do a lot better than you because they already have an established code base or rooms/resources that were already built up and this will happen with both bots and existing (non-boting) players.

    I think the argument is that bots ruin the new player experience, but its actually just players ruining other players experiences and it doesn't matter if that player is running a bot or not. I'll admit that I have ruined lots of new players experiences, slaughtering so many players for territory that I didn't really care about and couldn't use. It didn't matter that I was running my own code, what mattered is that players felt they were being killed and helpless to do anything about it. Sometimes its because I had better code, lots of times it was because I had more resources, rooms, time, experience. At the same time I'd like to believe that I've also enhanced lots of new and established players experiences as well, through forming an alliance and cooperation.

    In the end I don't think its bots that are ruining new players experiences, I think it is other players and the solution to that is the community. As a community we have the opportunity of molding the experience of those around us and if you want to create an experience then the best way to do that is to team up with others who feel the same and work together to create that experience.


  • @mashee I'm sorry to hear that you quit because of bots. They can hurt the diversity of the codebases out there. Your struggle has inclined me even more so to target NCP's. Perhaps I'll make a post asking about how to identify NCP's in this thread.

    Edit: Apparently this forum doesn't embed replies. Any advice on identifying NCP's outside of obvious controller signing, and hearing about them through the community?

  • Culture

    @todpunk if you have examples of it not being accurate please let me know so I can look into it.

  • @tedivm I noticed that the original authors of the bots also show up on the clone map. For example bonzaiferroni shows up as a bonzai bot user. The author of a code base certainly wouldn't count as a script kiddie but perhaps they are benefiting form collaborative efforts amongst their users.

  • Culture

    The voight-kampff API provides a list of users and identifies the author in the json-


    The primary field for each "bot" is the author (where applicable- bots without a lead developer, such as CCC, don't have this field filled).


  • Keep bashing on people running bots. You say maybe half the people you see in game are NCP or using others code.

    Guess what, they are paying their dollars every month also. When a mmo starts offering lifetime subs, thats not a good thing.

    Yes, I ran k-bot, I liked watching my ant farm, and trying to understand the code. I ran it passive and avoided conflict. Last time I coded was 20 years ago in college. I did it on the main servers because I work for a living and needed someplace for it to run 24/7, I wasnt a threat to anyone near me. None of the bots are a real threat to any of you "real" coders. So what are so many of you butt hurt over?

    I logged over 400 hours on steam enjoying this game using and reading others code.

    I'm gone now, I'm sure many like me are.

    Enjoy your "lifetime" sub.