• Visit Rebornbuddy
  • Why OldGrindBot is not Open Source?

    Discussion in 'Archives' started by Tormiasz, Jan 6, 2016.

    ?

    Do you want OldGrindBot to be open source?

    Poll closed Jan 20, 2016.
    1. Yes

      0 vote(s)
      0.0%
    2. No

      0 vote(s)
      0.0%
    3. I don't know

      0 vote(s)
      0.0%
    1. Tormiasz

      Tormiasz Community Developer

      Joined:
      Jun 16, 2014
      Messages:
      701
      Likes Received:
      5
      Trophy Points:
      18
      What's the reason? Security? GGG can buy license and see how the bot works (and I doubt they don't do it actually). OldGrindBot as open source Bot would give big improvment to the overall bot community. The ones that want to change something would be able to, newbie developers that are learning by reading someone's else code would have perfect example of every aspect of the game. The ones that wanted to make different Bot's would have perfect base to edit and add new things. Also the OldGrindBot itself would get more attention and improvments from many people. One dev may not see every error and dont think about all the aspects of the game, but multiple eyes would!

      I'm creating petition/poll to make OldGrindBot Open Source.
       
    2. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      You make an arguable point.

      1. Because it doesn't need to be, it's just a collection of tasks.
      a- https://www.thebuddyforum.com/exilebuddy-forum/exilebuddy-guides/164304-exilebuddy-developers-guide-writing-bots.html
      b- https://www.thebuddyforum.com/exilebuddy-forum/exilebuddy-guides/173405-exilebuddy-developers-guide-writing-path-exile-bots.html

      2. It has implementations that are static, any random can be picked and psudo-detected.

      3. Because they can buy a license to use the bot doesn't mean they can reverse the whole bot. Some logic might be server side calculations, therefore you cannot get 100% of the source from reversing.

      4. We don't need it to be open source, there is no proof it will gain more developers.

      5. The forums have ample learning material, I started on the Guides subforum. Oldgrindbot is 1% of the eb forum's collective code.
       
    3. toNyx

      toNyx Well-Known Member

      Joined:
      Oct 29, 2011
      Messages:
      3,770
      Likes Received:
      35
      Trophy Points:
      48
      1. Agreed
      2. Agreed too
      3. Obfuscator does the trick I guess.
      4. What would be the point to have it open source anyway? reinventing the wheel?
      5. Definitely true, you can learn a lot from plugins.
       
    4. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      Brb buying lottery ticked 5/5 with tony, If I win the loto, cya beeeepes.

      Edit, if you are learnng from plugins, use tonyx, ExVault and aclor's then bother them. Mine are bad choices to learn from.
       
    5. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      ヽ༼ຈل͜ຈ༽ノ Open Source OldGrindBot or RIOT ヽ༼ຈل͜ຈ༽ノ

      The bot implementation we provide isn't open source because that was the decision made a long time ago for other projects, and that standard was carried through to EB.

      In the past, when this has been brought up, there's been some concerns about its impact on the project and our business model, so it was never done. Things have rarely been stable enough to give it much further thought though.

      I myself am in favor of it (always have been), and could list a number of reasons why I think it'd be good for the project. I'll have to talk to management again to see if this is doable for 2016, given how things have changed since it was last discussed.

      One thing to understand though is, this game changes at an insane pace. As a result, EB has to drastically change on a regular basis to keep up (which is why docs/guides always seem to be out of date). This has a severely adverse effect on the bot implementation we provide, as we have to make certain decisions to ensure we have a working bot that is "good enough" to keep the project alive. Even though most of EB is now my code, design, and vision (with great thanks to Apoc for his help along the way), OldGrindBot is not the future, rather just the current rung of the ladder we're trying to climb.

      I bring that up because the current bot implementation has served its purpose and needs to be replaced. To put things into perspective, the current bot implementation was started and has been evolving since Summer 2014. The next iteration just isn't possible yet (which is why it wasn't rewritten the past few big updates). For one, destroying the current set of community plugins/routines is very painful, and it's taken EB quite a long time to get back to this point of active community development/interest, so that's the type of decision that will be made only when it absolutely has to (which has been numerous times in EB's history due to crazy game changes).

      Second, there's some major core API changes that need to be finished up and integrated into EB before any new development takes place (which I've been working on the past few weeks actually). Object/components have been in need of a revamp for quite a while now, and for the next phase of development to take place, those systems really do need to be changed first. The changes allow for more efficient implementations to be made, and result in different designs being used in user code. The original aim of me working on those things was to try and fix the FPS issue, but that issue is actually something significantly more complex (much like pathfinding issues). I need to rethink how we approach bot development to try and attempt to solve those issues, but that's a long term process.

      So, even if OldGrindBot was open sourced soon, it's going to have a pretty short lifespace in terms of near-future use, and it's main purpose would be to give a full working bot implementation with the current API, which incidentally, might need more significant changes in March with the next expansion (and then possibly for object/component changes before that). Learning and designing based on it would not be a good idea, since a lot of the code is based on solving specific game issues that existed at the time, but those issues are no longer the same (the hardcore desync the game had being one of the major things). Since stuff needs to be rewritten again, I'll rewrite it and use a new design and start a new batch of guides/docs moving forward, but only after I'm sure the next version will be bigger and better than before and allow for new heights to be reached.

      Basically though, if we go with the open source approach for the bot implementation, we might as well start it off with something new and modern, because any time I'd spend supporting or helping people with the old implementation, would be time better spent on continuing to fix and improve the API and new implementations that actually are the future. If management approves, it'll definitely happen, but I think it'd make more sense in a month or two for the expansion rather than right now.
       
    6. Meta4

      Meta4 New Member

      Joined:
      Jan 28, 2015
      Messages:
      8
      Likes Received:
      0
      Trophy Points:
      0
      I've been having the same question for a week now, thanks for the clarification of intent pushedx!

      However i would like to point out that, regarding your "second" and third point, even in such conditions, having the source would be a great relief seeing as the api is severly lacking any cohesive documentation.
      To alleviate this issue i have started to classify the API elements in OneNote in an effort to guess intent and mentally map them. I have also printed :eek: all sources shipped with exilebuddy i could dig up, one from 01.2014:)confused:) and one from 08.15, that i will use to try to understand the control flow and design used and get more insight into the API. I cannot wait for, nor will i cast blame, when major changes occur. Most work required is with data that just cannot change unless the game removes it. Sure, a design to bridge the logic with the data effectively can take time, but most time will be spent around the said logic. What I do expect changes in, that would 'affect' me, is: background behaviors and data acquisition.

      Changes are inevitable in such an environment, and of no significant effect if you plan around it (as an API user), and being able to see all changes required on personal code by referencing changes on current, proven to work, implementation would be a great boon. Making the code in question available would be a perfect replacement for documentation.

      "But why?": I have no intent on using the default implementation*, did same with gw2 and my bots could run surrounded by tens of real players undetected.. i even found gms hanging out with the group (no bans). I did however use the default implementation source to quickly identify required changes, so all issues were fixed within minutes (considering ~100k LOC). *Except pathfinding and meshing algos, that's a timey task because there are lots of weak points that need addressing and some of those points are different in each environment(read:game). <- which is why i'm rather sad the gridexplorer and co. code isn't out so i can start with less abstract logics. (also a bit excited xD)
      "But we don't care": Good point, but I am sure it would benefit plugin creators as well in understanding the design and how their code would run in the bot. An object browser is no replacement for behavioral documentation, working source code however.. :>
      "But the stupid questions!": Yea, that's the real pain, ignoring them seems to work. The community tends to address those questions in a way or another tho.

      All that said, I'd like to thank pushedx for his work and involvement with the community and with Bossland and ofc Bossland. It was a delight to read the philosophy behind your products! :)

      Oh, and a "Hey!" to Tormiasz and darkbluefirefly! We've crossed paths in gw :p
       
    7. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      To be honest, the API itself is the documentation You "don't need" a full documentaion after you have spent a little bit of time with the API. It's that easy.

      Plus not to mention, iside EB folder there's a /Help/Documentation.chm and a /Devnotes/ folder.

      You should really load up eb in visual studio, you'll understand what I mean.
       
    8. toNyx

      toNyx Well-Known Member

      Joined:
      Oct 29, 2011
      Messages:
      3,770
      Likes Received:
      35
      Trophy Points:
      48
      In addition to this, when you attack EB as ref. in Visual Studio, you'll have access to the internal API, and pushedx made it so the Naming matches what the functions do :) e.g.

      Code:
      Loki.Game.Inventory.Inventory.GetTotalItemQuantityByFullName(string)
       
    9. Meta4

      Meta4 New Member

      Joined:
      Jan 28, 2015
      Messages:
      8
      Likes Received:
      0
      Trophy Points:
      0
      Yeah, completely ignoring "help" and "readme" files since 2009(random number). Stupid. Didnt even see that, yet i went through every single file in the bot, both current and old versions i have. The .chm is very helpful.
      As for naming, it has a limit, i did however find answers to a high number of my questions in the .chm soo.. awesome, many thanks!

      I'm not all for open-sourcing, mainly cause that could* introduce more ppl to the scene and I'm a greedy bastard when it comes to the good stuff. What I'm actually looking to find(now) in that source is hints to the not so obvious limitations of data and input 'streams' by studying the sanity checks and whatnot. As for later, quick reference for api changes and the ability to hunt bugs for sport. But I can do without tbh. I just think it would be easier to release that than provide the above mentioned information, up to date guides and so on. (boring to make / maintain)

      *You're probably right tho, i doubt there would be many rushing in community development. However, you must consider that even if there will be one or two extra people, that's a very positive result. Proof? Schroedinger's cat really.

      I imagine serious consideration must be given, I'm honestly expecting a "no" to open source. I' hope it's a "no" if lacking 100% certainty that it wouldn't aid in ggg's detection. (Which already seems to be doing very well with default configurations)
       
    10. Tormiasz

      Tormiasz Community Developer

      Joined:
      Jun 16, 2014
      Messages:
      701
      Likes Received:
      5
      Trophy Points:
      18
      Popular thinking that few people can change the whole economy. I was like that until I saw how many Chinese dudes are making.
       

    Share This Page