Page 3 of 4 FirstFirst 1 2 3 4 LastLast
Results 21 to 30 of 33

Thread: Future of Bot Development

  1. #21
    one thing that would be very nice, would be a discord channel that wasnt kind of dead/lifeless.

    is there one centralised main dota-bot channel in a room that im missing?
    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

  2. #22
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,012
    Not sure if disc is the solution. It's basically a bar where you invite ALL of your friends for a beer, but the stupid bar waiters put up the music all the way up to the max even tho there is no dance ring, you realize you invited too many friends so you can't possibly talk to them so smaller groups start developing and that, coupled with the loud music ends up in everybody talking at the same time and harder to listen to anybody or get your point across.

    Maybe I'm just nostalgic, but an IRC channel might be better.

    ... then again, now that I think about it, it's hard to try out and write code WHILE ALSO writing in an IRC channel and alt-tab as opposed to voice chat. Hmm.

    Or maybe both? IRC for general talks and disc for troubleshooting or say, code help "hey I have this crash, help me out" type of stuff. Dunno. I think both has its pros and cons.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  3. #23
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    Quote Originally Posted by The Nomad View Post
    Not sure if disc is the solution. It's basically a bar where you invite ALL of your friends for a beer, but the stupid bar waiters put up the music all the way up to the max even tho there is no dance ring, you realize you invited too many friends so you can't possibly talk to them so smaller groups start developing and that, coupled with the loud music ends up in everybody talking at the same time and harder to listen to anybody or get your point across.

    Maybe I'm just nostalgic, but an IRC channel might be better.

    ... then again, now that I think about it, it's hard to try out and write code WHILE ALSO writing in an IRC channel and alt-tab as opposed to voice chat. Hmm.

    Or maybe both? IRC for general talks and disc for troubleshooting or say, code help "hey I have this crash, help me out" type of stuff. Dunno. I think both has its pros and cons.
    I have helped so many people with their code simply when they open an "Issue" on my github page. BUT, and this is a large but, that is not the proper place for it. An IRC could be the way, but a better thing would probably be slack.

  4. #24
    oh. all the channels im in literally never use the voice chat part of discord.

    just message based.

    discord has a pretty good search functionality for finding old relevant discussions, no messing with irc bouncers.
    plus multi-line stuff and code blocks (not syntax highlighted though) are quite nice. can split a server into sensible rooms

    there literally already is a dota2bots discord server but hardly anyone uses it.
    Ill edit and link when back on windows (https://discordapp.com/channels/2585...22632062763008)

    also I just realised I essentially just use discord AS slack lol
    Last edited by TheP1anoDentist; 06-01-2017 at 11:57 AM.
    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

  5. #25
    Basic Member
    Join Date
    Nov 2015
    Posts
    108

    Wall of Nonsense - FuriousPuppy

    Hi everyone. I've been away for a while, but I do still keep my ear to the rails constantly. I'm glad to see that so many people are still around.

    I'm gonna put down an old fashioned wall of text that very few will read, because I'm hoping that something might really develop out of these forums, this thread, this whole API etc.

    I think when this all first started out we just said "Oooh a new toy!" and started coding. There was spaghetti code everywhere, things were a mess and people just started latching on to anything that was working.

    My goal when I started out was just to poke holes in what existed as that is my nature; My jobs have been nothing but failure analysis and qual/reliability. I wanted to see how the API would tackle some of the harder things (Meepo was the first thing that crossed my mind. Would Meepo even work?). I threw together a framework I could tolerate for a few things to facilitate working on my goal: A 'build loading' system that was just meant to abstract a build into a more human readable setup that maintained default bot functionality for bots I hadn't touched. A setup for spell casting etc that I think honestly mostly evolved from Valves example files if not entirely. All I wanted was to help the API develop, I wasn't really thinking I would put out any workshop worthy items yet, and frankly none of what I posted was anywhere near 'Production Code'.

    The forums at that time were nothing but questions and people posting their findings. "How do you get X to work?", "Here is how I solved Y!". So I started a public repo and a forum post and put up a semi-working Meepo and a basic Puck and some jungling code. I also borrowed a lot of utility functions and some ideas for parts of the process I wasn't interested in and everyone was just share and share-alike. This code I put up at the time was half-baked and specifically MEANT to be shared in concept to help others get started. Even I scrapped my repo code a couple times in my personal project because a lot of it was rapid-fire junk but the concepts we're solid.

    Then things started to change... big changes, and fast. I realized my hero-selection was someone else's from the forums, my utility file was a disaster of copy-pasta, I had walls of commented out garbage and I didn't remember where of from who I got any of the stuff I didn't write. However, my Meepo was now farming his mind out, and at a 90+% win rate vs default unfair bots, I was moving on to real ideas and they were adding workshop capability for bots. Next thing I know we are where we are now. I agree with others, I don't think that there was much for 'malicious' practices going on, but the truth is that once it all unfolded, it completely pushed me away from bot development. There were workshop items out there with my code and even my name on them (that I was constantly being contacted about which was annoying) but I couldn't get my own project on the workshop cause it only had one page of mostly repeat 'WIP' submissions and my project was hitting walls with mode overriding that I didn't feel the tools existed yet to fix and every single update to the API left me spending most of my time re-working instead of progressing. Worst of all, few people were trying to contribute back to anyone else anymore.

    I guess what I'm saying is, that we all started this as a community trying to get anything to work, but projects evolved quickly from a code-base that everyone started just to test the waters, we put ourselves in this position and at some point need(ed) to just hit reset. Everything is public, everything was shared whether intentional or not, and really there should have been far fewer projects with far more contributors being started from scratch using the ideas coming out of what there was but that just isn't how it played out. I'm far from done with bot scripting but I decided to take the time off to let some things stabilize in the API and community and now this dialogue is back and here is my two cents.

    The OP:
    Licensing:
    Yes, to all of it. However, this is something I wouldn't want valve to prioritize until the API was mostly complete and the workshop etc. was where it needed to be to be useful to us. Obviously they have to plan for it now and act on reports they receive now, but I would prefer other things come first for Valve and for now let the community get used attaching a license to their project, and respecting the projects of others. Enforcing this will be tough as has been said and if the rest of it never gets finished it will be wasted anyway.

    Reducing the Maintenance Cost:
    Yes please. This QoL improvement would be great to see added to the API, items, talents, skills etc. I updated tons of wiki trying to keep up with changes and then realized that there were just too many changes and too many places to get the info.

    Helping the Override Projects:
    I would like to see a LOT more modularity in the API. For example mode overrides right now are only usable in one of two states, use the default entirely, or re-write every single mode. We have no visibility of how the default modes work, we have a big picture but just try and re-write ONLY a mode like retreat without touching another mode or knowing how attack, defend etc. actually work under the hood. In my opinion it can't be done properly, I don't like the way the modes are broken out, some of it is hierarchical and some of it is flat structure. The decision to fight seems to be made in multiple modes. I would love to see a complete LUA implementation of valves default UI given to us to as a base. Now, I'm not looking for a maintained copy of their AI, just a functional one time version or template, could even been stripped down, just anything that gives us real access to how decisions are made in each UI, how are those desire numbers generated. Without this, modes just interfere too much with each other.

    In fact I've spent most of my time when I am looking at the bot API writing modules to fill the holes in the API as it seems have many other projects. Things like gathering/caching info on the game, teams, heroes etc. I really doubt that valve could add API functions that would fit most peoples desires for information like this or other things, so I've considered releasing some of them as libraries of sorts, kinda of like the build loader system that caught on, if you could just grab a library that dealt with maintaining game info or loading builds or dodging spells or whatever part of the game isn't as much strategy logic as just extras. People could produce better bots faster? Just an idea, I still haven't worked on anything enough to consider releasing it.

    Well, I feel I've typed way to much nonsense now.

    Quote Originally Posted by arz_on4dt View Post
    I'm so so sorry to hear that . I though he was okay ... I have no intention to piss him (ironmano/furriouspppy) off.
    Thought I'd comment on this in particular since it was at the core of why I stopped development. It can also serve as a TLDR for the wall above. So arz_on4dt, don't take this personally I'm not singling you out here.

    I was not upset at anybody in particular for 'stealing' code (ok, maybe one or two people). I put it on the forums, in the early days at least I think most people intended for code that they actually bothered to link or post on forums to be reused by others. Some people gave credit, some people didn't. Hell you named your project to credit me which was above and beyond(this confused a ton of people by the way, they thought it was my project and would contact me to fix parts of it, but that's a whole other deal)

    What DID frustrate me, is that of all the people using the same public code, no matter how much they changed it, or improved it or reused it, nobody EVER tried to contribute to the public project. This goes for all projects. Everyone is just taking public code and saying 'well I modified it so much it's pretty much mine now' Well GREAT! That was the plan... now how come you aren't contributing your great improved code back to the community projects? This to me is the core of why all of this code stealing discussion is so heated and important. Open source projects are designed to be reused by anyone that can benefit from them, but they can't become great unless those same people help develop them. I made almost everything I ever wrote for bots public hoping for community written bots, but I admit I am as guilty as anyone for not searching out the projects I borrowed from to contribute improvements or ideas back to them and I am ashamed of that. I hope if/when bot scripting for DOTA 2 blows up that this can/will change cause it needs to.

  6. #26
    Basic Member
    Join Date
    Oct 2016
    Posts
    247
    Helping the Override Projects:
    I would like to see a LOT more modularity in the API. For example mode overrides right now are only usable in one of two states, use the default entirely, or re-write every single mode. We have no visibility of how the default modes work, we have a big picture but just try and re-write ONLY a mode like retreat without touching another mode or knowing how attack, defend etc. actually work under the hood. In my opinion it can't be done properly, I don't like the way the modes are broken out, some of it is hierarchical and some of it is flat structure. The decision to fight seems to be made in multiple modes. I would love to see a complete LUA implementation of valves default UI given to us to as a base. Now, I'm not looking for a maintained copy of their AI, just a functional one time version or template, could even been stripped down, just anything that gives us real access to how decisions are made in each UI, how are those desire numbers generated. Without this, modes just interfere too much with each other.
    ive thought many times how nice it would be to see how valve do things or be able to use their default code with additions / changes.


    after reading that last paragraph, i feel guilty, because i am one of those people who was asked to contribute back, but havent, mostly because i feel my skills are very inept and wouldnt help any project i uploaded code too, then there is the fact i am not a coder IRL, i dont know how to use github and wouldnt want to spam out or overwrite some good code with my junk.
    i posted some bot skill usage here as i made it, but its not much of a contribution and no one seemed interested, i think many people will be in the same boat ( i cant code exactly like you, i wont upload something that doesnt fit well because it will just be annoying for you ).
    github repos are fine and well, but better for sharing than collaboration it would seem, unless you are part of a closely knit team.
    Last edited by Yavimaya; 06-01-2017 at 02:52 PM.

  7. #27
    Thanks everyone for your responses. Hopefully we will be more respectful towards each other's work and properly reference each other. I hope Valve support us and make it clear to new scripers that it is not fine to steal work without permission (and that people shoud read and respect each author's terms of use and licenses)

  8. #28
    Basic Member
    Join Date
    Dec 2016
    Posts
    46
    I have found a way to get talents without name.

    Code:
    local Talents ={}
    local Abilities ={}
    
    for i=0,23,1 do
    	local ability=npcBot:GetAbilityInSlot(i)
    	if(ability~=nil)
    	then
    		if(ability:IsTalent()==true)
    		then
    			table.insert(Talents,ability:GetName())
    		else
    			table.insert(Abilities,ability:GetName())
    		end
    	end
    end
    Then you can use npcBot:ActionImmediate_LevelAbility(talents[1~8]) to level up talents.

  9. #29
    Basic Member
    Join Date
    Jun 2013
    Posts
    274
    I'm fine with it so long as scripts aren't getting flagged because they're too similar to some other scripts even though no copying was done. There's only so much that can be done with a game API so we're bound to see many similarities.
    Last edited by Cornbane; 06-02-2017 at 02:59 PM.

  10. #30
    Basic Member
    Join Date
    May 2014
    Posts
    270
    Quote Originally Posted by ironmano View Post
    Thought I'd comment on this in particular since it was at the core of why I stopped development
    I'm so sorry, I didn't think that it will make you stopped your project development because of my stupid act.

    Quote Originally Posted by ironmano View Post
    What DID frustrate me, is that of all the people using the same public code, no matter how much they changed it, or improved it or reused it, nobody EVER tried to contribute to the public project...
    The reason why I haven't contributing to referenced project is because I don't know that my script will fit the project need or not. And since I relatively new to lua I don't know that the logic of my code is well optimized or not too. I'm too afraid by adding some code to referenced project it can lead to some bugs, crash, or performance degradation to currently well known configuration of referenced project even though I've tested it and no bug or error happens, because sometimes they act differently on another machine. And since I'm not that familiar with github ( which I kind of little bit familiar recently ) it makes me afraid of ruining the referenced project development, because if I do some mistake on updating the forked repo it'll ruining the whole project or will it like this? Do it have some kind of rollback to the previous well known configuration?
    That's why I said, if you want to use my code you can PM me and I'll give you my code link. I prefer that way because you can take a look at that and pick the one that fit your need and have the best logic. And now that I already have the public repo on github everyone can just take a look at it because I already give the link to it in my Workshop description.

Posting Permissions

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