What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Forum Reorganization and Developer information.

nezoic

New Member
Joined
Dec 26, 2016
Messages
11
Reaction score
3
I assume this is still in the works, but I'm looking on information about creating plugins, and it's not very easy to find. For example, why isn't there any information to help me get started coding in the "Community Developers" section? The guide lines post is pretty general and not very helpful unless I have some existing knowledge of how the architecture / typical code structure is in a project.

So far, the only semi-useful information I could find was how to setup a project, and that, is under "Exilebuddy Guides". I would expect it to be under a "Developers" topic. "Exilebuddy Guides" is where I would expect, "how do I as a User, do X."

A functional "Hello World" code example would be very useful, something that would expand a bit on the project setup and give new developers some actual guides for developing basic functions, detecting objects, interacting with objects, eb's life-cycle, etc.

I personally would love to see a forum structured like:
  • Developers (does it really matter if you're a community developer or... internal? We all need the same information unless you wanted to segregate it by party in which "3rd Party Developers" might make more sense, but that would also be confusing because I shouldn't have access to anything for internal development so "Developers" feels adequate for the community to see.):
    • Sticky Threads:
      • Setup a Project
      • Basic Example Project Code, with life-cycle explanation
      • API Documentation (nice to have but hopefully the class's are documented well enough)
      • Advanced Plugin (maybe break down an existing plugins source and briefly walk through it's structure. This would contain any "gotcha's" that may be common among more complex plugins. as well)

Forgive me if this information is in an obvious place, I've been known to be lazy at times :D
 
I think the main reason this is harder to find right now is because the 3.0 release and these changes that they are getting ready to roll out have made things a bit of a cluster F*(& in terms of how the bot works. I assume that after they roll out these new mover changes and the new league starts they might be able to clean up the forum a bit more. They actually just did a big cleanup recently (thanks @pushedx) so we can probably expect more cleanup in the future.

Looking forward to seeing what you create, if you share it with the community! (please do!)
 
For "Setup a Project + Basic Example Project Code" see - https://www.thebuddyforum.com/threads/3-0-developers-guide-to-setting-up-a-project.407308/

The bot includes almost all the non-api code, so those are also additional examples. It's not feasible to try and make a developer guide explaining the code though, it's something you should be able to look through and get an idea first, then you can ask questions if something doesn't make sense.

"API Documentation" - included with the bot in the help folder and you can use Visual Studio's Intellisense. Trying to replicate that information on a forum post in a non-technical way is impossible as there's just too much. In addition, the rate of change of the API is so high, even if I make another API thread giving an overview of things, trying to keep it up to date along with everything else just doesn't work.

"Advanced Plugin" - Runs into the same issue as with docs. There's just too much to be aware of to where one example isn't going to help you in the way you want it to. As a result, people having all the code and being able to see what they understand and don't, and then can ask questions is the way to go.


I do understand what you're looking for though, but it's a really hard problem to solve in our environment. I could literally write a 5000+ page book on Path of Exile and development with Exilebuddy (and that's not an exaggeration by any means), but at the end of the day, 1) the info is only valid for so long before it changes and requires updates 2) no one has the time and very few have the motivation to actually read so much content and spend months learning everything specific to this game and EB before attempting to code. And even then, there's 3) Non-documentation issues and supporting devs are always far more valuable for the collective whole.

Basically, Path of Exile is not a finished game, and because of that, Exilebuddy is not a finished bot. We're making API additions and improvements constantly, while keeping up with how things change in the game. Because of that, there's very rarely any time to just sit down and focus on more user friendly documentation things. If you look at the PoE patch schedule of 3 months per big update, the most "quiet" time we see is in the final 3-4 weeks of the league where GGG reduces patches and is hard at work for the next update.

When we do finally get this quiet time, we get to choose what to work on. If I asked people, would you rather have better API docs and examples, or would you rather have AtlasUi support, what do you think people will say? Pretty much everyone will say AtlasUi support, as it's been missing for a while as there was just no time to focus on implementing it. Docs are nice, and help people understand the API better, but for most people, they want more API support for things in the game so they can have more profitable bots, or have the ability to do more using Exilebuddy than before.

As a result, that's why our development focus is how it is. If you look at the past month of API improvements and the topics I've talked about in the Alpha and pre-3.3, a lot of significant work has been done. That work was only possible because of how the game settled down as GGG switched to working on the next update and only got minor Bestiary changes. As soon as the new 3.3 update comes out, there will be 0 time for anything other than getting EB back up and working for the first month, 2nd month is fixing and supporting less important things, then finally that 3rd month is the month of preparing for the next update by fixing things that have been on the todo list.

So, developer resources are on the todo list, but they're such a low priority not because I don't want to do them, or I don't enjoy writing them, but because there's literally just not enough time to do them along with everything else that has to be done to keep this project going. Even now, we have about 20 days to 3.3, but there's going to be no time to focus on this issue because during that time we need to still: rewrite API for pathfinding phase 2, rewrite routine system and implement new logic, rewrite itemfilter system and implement new logic.

If we manage to pull all that off for 3.3, then tackle 3.3 head on for the 2 months of the update cycle, then it means that 3rd month (August) will have free time to focus on the todo list again, and that todo list will be considerably shorter than it ever has been. At that point, focusing on docs is feasible assuming everything else works out great during 3.3, but that won't do much for you if getting what you're looking for docs wise is 3 months away.

That's basically why things are the way they are with docs. It's simply a matter of time and resources not being available for them past what we already have. Devs have to manage and we do try to support people when they have requests or questions, but there's no holy grail of EB development that exists nor can there be until the game gets stable for an extended period of time, and we've caught up on the effects of having an almost 6 year project now.

Hope that makes sense, if you do have specific questions or wonder things, I'm more than happy to answer them, but trying to share everything I know in a meaningful, maintainable way for others to make use of is just not a problem we have the ability to solve yet.
 
Dang man, thanks for that reply. I totally get it. I'll just keep poking around at existing plugin's and should be able to work off those to get something off the ground or at least get some specific questions formulated.

Thanks again for the explanation.
 
Back
Top