With the release of 3.0 just around the corner now, this thread is to give users an overview of our plans, and an idea of what to expect and prepare for over the upcoming weeks. [Alpha Testing] First, as some people have noticed, there will be no early user testing of the 3.0 alpha version. While it was our intentions to make this happen, the closed beta patches were delayed multiple times, and that threw off the expected scheduling of our updates. Instead of spending time this week trying to rush out a public test version before the update, we're continuing our updates, testing, and preparations for the new expansion. Because of this, a lot of desired updates for 3.0 are being pushed further into the future when the game is stable once again, and the immediate issues of 3.0 are addressed. As a result, the biggest design changes were stopped with what was mentioned in the "Big Thread of Upcoming 3.0 Changes!", which has been posted for over 3 months now, so read it if you're a dev and you've not read it yet. [Project Direction] As per the events leading up to the "[Official] Exilebuddy - the Way Forward" thread, we're moving forward with our plans to provide a better core offering through QuestBot/MapBot, and a new GrindBot for 3.0. The old grindbot, OldGrindBot (formerly BasicGrindBot), will no longer be supported or updated as mentioned in the "Upcoming Settings Window Updates" thread posted at the end of March. It has served its purpose, has been outdated since 2014, and we can now finally move on from it. [Default Bot Bases] A new grindbot that uses the EXtensions code base is planned for the 3.0 release. The purpose of this bot base will be to provide basic grinding support so users can farm gear or experience between questing as they need in order to progress through the game with better gear. It will start out simple like the old grindbot did, and over time, additional features will be added as we see fit. Features that we don't add or support, the community can always develop if they choose too. This has been our model from the beginning, and it has not changed. [Plugins] Various old plugins are being removed, and others will be integrated into the new core offerings. However, a lot of future changes will be done with them as the main priority for 3.0 is having a working product. So for example, the GemLeveler plugin is pretty dated now, could use a rework, but it correctly functions right now with 3.0, so development time won't be spent on reworking that yet, but we do plan to in the near future once 3.0 starts to get stable. Various debugging plugins have been updated to help make life easier on us and users. The ObjectExplorer data listing is far more friendly now, so users will be able to save relevant information to report issues and devs will know what values are what for their code. The DumpTab is mostly for devs, but it replaces the Scripts folder and provides a much faster and more intuitive way to dump game data. Certain things still require the DevTab to be used though, but it's a vast improvement and time saver from before. [Routines] A new routine was planned for 3.0. This most likely won't happen for release, but some small refreshments may be done to the existing routine in the mean time. This is for a few reasons. First, now that Path of Exile is transitioning into a full game, there's a number of new boss fights that require more avoidance mechanics. The problem with our current setup is that everyone who uses a custom routine will need to also code any boss fight logic if it takes place in the routine itself. Likewise, people using a custom routine with QuestBot, can break the bot base depending on what they do, as OldRoutine now contains some minor hacks to work in new boss fights where the old logic would have broken. Second, the routine contains a lot of code that executes each tick that most people will never need to use, so it's a really inefficient design. Skills in Path of Exile aren't so complex they can't be grouped together and use similar common logic handlers, but that requires a different routine design. Back when OldRoutine was first created, the game did not offer the skill gem vendors, so there was a big barrier for characters trying to use a lot of skills. Now that that is no longer the case, there's little obstacles that stand in the way of trying to support recent skills from the past few years in better ways. Third, routines are too complex. The combat model Path of Exile uses was too complicated for the old CR model used in mmos. There are various combat related things that need to be handled that aren't directly related to actually attacking monsters. For example, new logic to avoid the volatile projectile will now be needed for 3.0. A new zombie mob in Act 6 throws a projectile upon death, so AoE killing a pack of them and not moving, will most likely result in death from the burst damage. Not standing in degen floor puddles will be really useful as the chaos damage can be brutal. There are other cases as well, but the point is we needed a different system in Exilebuddy. All in all, our approach to routines needs to change, and we have some ideas, but they don't have priority yet. OldRoutine is currently good enough for almost all non-boss fight content so far, so we have something that works. [Pathfinding Library] Won't change yet. As much as I'd like to try and use an updated version for better performance and features, it's too big of a breaking change to do for 3.0 when what we have in place works in almost all cases just fine. Likewise for trying to change settings, the unexpected side effects are not worth dealing with since we have almost an entirety new game to deal with now. [PlayerMover] The player mover implementation needs a rework, and there are plans to change the underlying system. However, it's not a priority for the 3.0 release because we have something that works. We know a default player mover that handles skills is desired, so we do want to offer that in the near future. [Scripting] For now we're limited to what we already have (Python, compiled C#). There's a really cool alternative we've been checking into for a while now, but it simply won't work as-is with EB. It requires distributing a ton of extra files, greatly increases project build times, and requires changing the way we compile user code. In other words, it won't be happening for 3.0 anytime soon. I hope in the future we'll be able to make use of it though. [Downtime] There's no set downtime, and updates will be done when they are done, but we won't do a beta test until the game is stable enough in regards to client patches being deployed. We expect about a solid week of patches and fixes based on previous expansions, and considering how many issues there have been in the past few months alone with getting new systems deployed and other issues that resulted in patch rollbacks, we're not going to rush out any builds (as has always been the case, but just to reiterate). Each client update requires a new EB build. When the game patches a lot and the servers are unstable, it's a highly stressful time for everyone. As a result, things need to be settled down before we start pushing public builds. As mentioned before, this has always how we have operated, and this time won't be any different. Expect lengthy downtime for this update, as it is the largest update GGG has ever done for this game. Every expansion we get people asking if we can release a version that might not be fully updated so they can start farming currency. This is not possible, and we'll only do a release when we're comfortable with the state of the project. We'll drop API support or have limited functionality as we need though. For example, if the API is fully updated, and we had support for Acts 1 - 4 done, we'd not delay a beta release just to finish 5 - 10. In the same example if the passive tree changes due to a new system being added, we'd temporarily drop support for it rather than delay the beta release if everything else was ready. Other than that though, the API needs to be fully updated for the bot to work. [Community Code] With each iteration of Path of Exile and Exilebuddy, a new wave of community code comes about, each one better than the last, generally speaking. With our continued progression in the change of project direction mentioned earlier, a lot of existing code will break or just be unusable as-is from 2.6. Our forums are cluttered with a lot of posts from content from many iterations ago still. To be perfectly clear so people don't misunderstand: our top priority for 3.0 is having a working product for 3.0. If we don't have a working product for 3.0, then all the community code in the world is useless without something to use it with. This means while we do want to cleanup the forums and have more things organized, that will only be done after our top priority is taken care of. Likewise, while we try our best to offer help to any devs who have questions or are trying to figure out how to do something, efforts to improve the developer experience in terms of documentation, examples, or forum guides can only come after our top priority is taken care of. The initial releases after big game and bug updates are always rough and stressful, so please keep this in mind. Most people might want to just wait until things settle down a bit before jumping back into coding unless they're willing to deal with possible delays in responses or inadequacies in what we provide. If you're not willing to have some patience, you most likely should just wait before trying to do things to avoid frustrations. API bugs for commonly used things are the highest priority right now. As with any big client updates, it's easy for issues to go unnoticed until someone runs code using something and notices something wrong. For example, there was a bug with the LifeComponent and ES values in the alpha that I only recently found. No base code really cares about ES, so it was not obvious from testing something was wrong. It was detected by checking over data dumps from some of the new debugging code though. While we try to check over as much as possible, there's simply too many updates that change random things to be able to have a bug free API upon release. Adding support for new game functionality and existing functionality is the next priority. While it's not always possible to support all new game features, especially league specific stuff, we do try to at least offer API support for as much as possible. The next section will go over the current API progress. [API Progress] The current state of the API in relation to new things and existing is as follows: - Atlas UI is still not supported, and most likely won't be for some time - The new Pantheon UI and associated character pantheon data is currently supported - The new currency tab is with the extra slots is supported - Waypoint for Aspirants' Plazza is supported - Labyrinth Activation Device is supported (LabyrinthMapSelectorUi) - The Divine Font is now supported (DivineFontUi) - Ascendancy selection is not supported. I think that covers most of the new stuff, but I'm sure additional changes will come about with the actual 3.0 client release. [Conclusion] I think that covers about all that needs to be mentioned for now. We're in crunch mode this final week, so we'd like to have as smooth of a 3.0 deployment as possible! This thread is open for any questions if anything was missed or was not clear.