Page 2 of 4 FirstFirst 1 2 3 4 LastLast
Results 11 to 20 of 33

Thread: Future of Bot Development

  1. #11
    Basic Member
    Join Date
    May 2014
    Posts
    270
    Quote Originally Posted by Platinum_dota2 View Post
    Well, he made a mistake, and I know first hand that furious puppy wasn't happy about this.
    I'm so so sorry to hear that . I though he was okay when I said that I've used his code as a base because it's a public repo (http://dev.dota2.com/showthread.php?...=1#post1415110).
    I've done some tweaks and changes in his code since then and keep some of them as the original such as all the scripts that have the connection with how's meepo works. His code already have a good base to use and easiest to understand for me as new scripter back then. That's the reason why I'm adding a credit in title to him. I'll change how to give a credit to people since you said it's a weird way to referencing someone. At first I only want to use it for personal, then come the moment when you can upload the script to the workshop and I though why I don't just share it to the workshop so the other new player can have an experience with the new heroes I've implemented. And seeing that the default bot was so broken back then I started to improve some of the mode such as rune and warding. By the time I'm getting more comfortable with the API I'm starting to change and tweak some of his codes.
    I'll change my workshop description and referencing all the codes that I've been use to implement all the heroes. Once again I'm so sorry. I have no intention to piss him (ironmano/furriouspppy) off.

  2. #12
    Basic Member
    Join Date
    Oct 2016
    Posts
    247
    i dont think anyone here has had malicious intentions yet, we all just see a nice base or code we can grab to save us rewriting everything or to learn scripting from and although it may piss some people off, especially those who have worked the hardest to supply the best code unwillingly, the community wouldnt be as advanced as it is now if people werent sharing, etc.
    I hope in the future that everyone is respectful towards each other and dont claim code as their own that isnt and that everyone is willing to allow others to use code.
    although if offical bot tournaments come about, surely the scripts submitted for them should be encrypted.

  3. #13
    Alright, lets do the Valve summoning ritual to hear their what is their point of view: "by the power vested in me by the LC jungle picker Gods, I'll summon thy ChrisC"

  4. #14
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,013
    Quote Originally Posted by Platinum_dota2 View Post
    I'm sorry, but I don't buy the argument that "I don't remember who I got code from" when you download someone's code from the workshop and copy paste from it.
    You'd be surprised. Considering I code when I have some free time (... luxuries when you get old ) and as many rewrites as I had, I did credit some functions I took ("some functions" as in "I took around 10 or so" not "some functions" as in "i took 100 but only mentioned 10" ) with links when possible, but I did have some others (3 or so) which I can't remember the source. The reason is that the original code was from a VERY old source when the APIs first came out (I think there were 3 or so "early" botpacks) which don't really match on the new repositories (not to mention I might not end up using them and delete them). Point is, I am not crediting some, but not others out of malintent. I really "don't remember who I got the code from" since it is something I consider "legacy" left in my code from a very early attempt which I don't use atm (considering I am movign so slow and am still at an early stage I can't even say whether I'll find it useful since the more Lua experiments I do, the more ways I find in how you can "use" Lua to get things done (it is an amazing language). Other sources are tutorials or the Lua repos where they show you code similar to starter packs to either explain concepts or straightforward open-source libraries.

    For example I first started with a clunky code for classes that I eventually rewrote from scratch as I learned more. When I look at other bots I do get inspiration or decide to burrow some concepts but totally rewrite (still, the math functions are similar since the calculus behind them is the same). Still I don't consider this stealing.

    Obviously this isn't the point of the OP. The references inside the OP (the reddit link is prolly one of many) clearly show malintent and intentional plagiarism (I won't mention the attitude again !) - and yes I agree with a lifetime ban in that case, but truth be told, that might just be a reaction out of anger and disappointment from our side and not an objective decision (i.e. how "bad" is "bad" and how much "bad" is it enough to get say 1 year vs 6 months or a lifetime ban? Does attitude play a role? What about a free account? Is it an account ban? A hardware ban? And the questions go on... No, I won't bring up this topic since Valve should decide, but I'll stick to my original 6 month recommendation for all cases (I am sure that if we include "attitude" we'll open Pandora for sure... also - how can we tell if "I'm sorry, I won't do it again" is truthful or not? So a simple, single punishment i safer imo)


    Quote Originally Posted by Yavimaya View Post
    i dont think anyone here has had malicious intentions yet, we all just see a nice base or code we can grab to save us rewriting everything or to learn scripting from and although it may piss some people off, especially those who have worked the hardest to supply the best code unwillingly, the community wouldnt be as advanced as it is now if people werent sharing, etc.
    I hope in the future that everyone is respectful towards each other and dont claim code as their own that isnt and that everyone is willing to allow others to use code.
    Nicely put.

    Quote Originally Posted by Yavimaya View Post
    although if offical bot tournaments come about, surely the scripts submitted for them should be encrypted.
    I disagree. If encryption is a default option, then it should be for all cases, not just special events.

    Dunno how you guys feel about this, but maybe Valve should give the option of encryption to users. i.e. you can put an open-source simple bot to show off or to teach others and an encrypted bot that is more sophisticated (sort of like standard vs premium - but without the money part :P )

    Please keep in mind that in order for submissions to be encrypted, that means that code is unavailable. However, in order to execute it, then the code must be accessible. When adding these 2 premises, you get 2-way code hiding: en+de-crypt. That means that it will only be a matter of time before someone finds a way to decrypt it and steal code anyway (or worse, open a black market for decrypters or source codes). There is no way to make a code encrypted without a way to reverse it and at the same time have it available for execution. Even if some new opcodes would be used to get new bytecode, then again, it is a matter of time before someone finds out their Lua equivalent and we get back to square one.

    So my point is ... I don't think there will ever be a way to make it 100% secure, unless someone knows something that I may be missing now
    Even with 100 protections (say Themida for the VM, although it'd be too much) keep in mind there are Linux and Mac DOTA versions. That's one of the methods storm.dll was decrypted back in Starcraft days: the Windows dll was encrypted to hell and back, but the Mac version dynlib wasn't.

    Perhaps the only way would be to only allow workshop bots to work solely online on DOTA servers and never save an offline version.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  5. #15
    Basic Member
    Join Date
    Oct 2016
    Posts
    247
    yea i thought about that after i posted, encrypting, then having to decrypt on the fly is going to add way to much power use too.
    then there is the fact that if they do add dedicated servers for scripts, then if you can only play on dedicated, there is probably no reason to have the scripts DL at all, since the server runs all commands and calcs and we are just clients.

    Edit: damn, i posted before i read that last line.

  6. #16
    Basic Member
    Join Date
    Jan 2014
    Posts
    53
    Quote Originally Posted by Platinum_dota2 View Post
    BTW. I haven't been here for a while, has Valve abandoned custom bots or it is just that people come here less often?
    Quote Originally Posted by nostrademous View Post
    FYI - I talked with @ChrisC and he said we have not been forgotten. The Valve team is just slammed with fixing-up and finishing the Battle Pass (presumably for the upcoming The International) which takes priority over bot API.
    So he's presumably still busy with finishing up the first campaign.

  7. #17
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Running solely on dedicated server is a possibility (working on support for that now), but we probably need a vetting system where people can publish WIP bots for testing prior to getting "promoted" to full dedicated server support. Hard to see how that happens without local downloading, unless we allow all bot scripts to just run on dedicated servers. Which is a possibility, but we'd need to look into more.

    Anyways, it's interesting option for keeping code private.

    For now, I'd advise making your licensing terms clear for use of your code, and if you find anyone infringing, issue a DMCA takedown request, which is pretty standard for workshop uploads.

  8. #18
    Quote Originally Posted by ChrisC View Post
    Running solely on dedicated server is a possibility (working on support for that now), but we probably need a vetting system where people can publish WIP bots for testing prior to getting "promoted" to full dedicated server support. Hard to see how that happens without local downloading, unless we allow all bot scripts to just run on dedicated servers. Which is a possibility, but we'd need to look into more.

    Anyways, it's interesting option for keeping code private.

    For now, I'd advise making your licensing terms clear for use of your code, and if you find anyone infringing, issue a DMCA takedown request, which is pretty standard for workshop uploads.
    Thanks! Any suggestion on a license that allows using code but only with a proper reference?

  9. #19
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,013
    First of all, thank you so much taking our suggestions into account
    Quote Originally Posted by ChrisC View Post
    For now, I'd advise making your licensing terms clear for use of your code, and if you find anyone infringing, issue a DMCA takedown request, which is pretty standard for workshop uploads.
    I know it is a lot to ask, but an analyzer for code plagiarism/infringement would also help. Keep in mind some of the devs now use github. It doesn't matter if it is a WIP, a finished product, a PoC or an actual release. It doesn't matter whether the code is iffy or it is worthy of a poem award when it comes to how beautifully written the code is. Fact is, there are people using github (or other repos). If the code is "hidden" from the public via server-side repositories on Valve, there is still a possibility of someone downloading a GitHub bot and reuploading it and we won't be able to tell since we can't access that person's code.
    Obviously, there is no 100% way of doing an analyzer but I just wanted to bring up this other issue as well. Even if we wanted to issue a DMCA TDR, how would we? On what basis? The code is hidden so we can't tell. At most we can MAYBE guess based on behavior (i.e. let's say I know my bot has a problem with stacking where it moves in circles not able to decide 6 times and then continues on its way and I would know this is 100% reproducible. If I see another bot doing this I MIGHT assume they just copied all (or say, the stacking) code, but how can I tell ? What if another guy used a similar method and it just "happens" to look similar but it's not an infringement ).
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  10. #20
    1) I dont care too much. Drama creates publicity, and with publicity you get more people finding out and possibly coming in to contribute. Shutnik will be the IdrA of bot-scripting
    Not that I would plagiarize, and I can see the obvious downsides, but it's weird how it can have some weird positive effects.

    2) bot scripting is still quite new, but some of these issues are the same issues that dota-stats-sites have already run into and 'solved'. Can probably just use the same packages they use for keeping up to date with minimal hassle https://github.com/dotabuff/d2vpkr https://github.com/odota/dotaconstants

    This isnt a full solution to your point. but it will help a bit

    "It might be good to bind bot scripts with the version of the map that was there when the last bot update was submitted (similar to WC3), so people don't have to play with broken bots until the developer apply the needed fixes."
    If its possible for valve to do this (i.e. current patch is 7.09. you could still play versus bots in-game in 7.08 if author not updated), this would be awesome. because it is 100% going to be one of the biggest problems for workshop bots in future, once other issues are solved.
    Actualy shit...I think valve really need to do this. For the custom game scene in general. From threads I've seen on reddit, numerous people have given up custom-game development because dota patches just completely break their custom games and they find it hard to update fast, or actual dota bugs prevent them from fixing crashes in new versions.

    3) I agree. I've been trying to work/do things that not too many other people also doing. so can find more things that need changing/adding to api

    Havent contributed to the override projects much yet, as it's hard to tell what is the most sensible way to do a full overwrite and wanted to be able to see what people were doing with them first.
    but this will certainly change for me.

    "A customizable laning module that is independent of the desire system. For instance, as input the module can get a hero, a lane, the list of ally heroes in the lane (this can be internalized), deny/LH aggression (separate parameters), whether the hero should farm or support and how much it should harass enemy. It should also not use any abilities or items and leave those things to the scripter."

    I recently asked for something like this in the API section.

    This may be personal preference, but Im not a big fan of watching dota bots vs dota bots. the games are too long to maintain interest. could maybe show the highlights of a bot tournament though for sure.
    https://github.com/ThePianoDentist/t...dentistdotabot Lina bot which pulls small camp when 'laning' (Aim to work on pulling and stacking bots initially)
    https://github.com/ThePianoDentist/dotabots-ml-tools Parsing data from bot games

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •