DestinyItemManager / DIM

Destiny Item Manager

Home Page:https://destinyitemmanager.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proposal: Include craftable matches in search results

nathanhosselton opened this issue · comments

Proposed change

When searching for a particular weapon combination (e.g. is:autorifle is:strand), and when that combination exists on a weapon that may be crafted, include that craftable weapon in the search results.

Detailed design

A relatively straightforward design that integrates with DIM's existing UI could be to expand the behavior of the bottom SearchResults sheet and the search bar button which opens it. For example, the results button text could be updated to read "5 items + 2 patterns" when the filter matches 2 weapons that the player is capable of crafting:
Screenshot 2024-04-29 at 7 17 43 PM

When expanded, the bottom sheet could include a new trailing section listing those 2 weapons which may be crafted. The new section could be denoted by the shaped weapon icon in the same way that vault armor is visually split into sections by class:
Screenshot 2024-04-29 at 7 18 02 PM

This is the design option that stood out to me, though there may be others worth discussing, including brand new UI if appropriate.

Detailed implementation

Although the described functionality could be expanded to include additional speculative results, such as craftable weapons that the player has not yet unlocked, or even non-craftable weapons, the scope of this proposal is specifically only weapons that the player is capable of crafting. This focus feels more aligned with DIM's primary use case and minimizes the initial impact of this change.

In addition to showing only unlocked craftable weapons in search results, the implementation should also avoid repeating a weapon result that appears in an inventory. For example, given the query is:strand is:autorifle, if a player inventory contains at least one crafted instance of each craftabled strand auto rifle, the pattern results would be empty. However, if the query also included exactperk:hatchling, then the pattern results would include those auto rifles which were not crafted with hatchling.

Sidebar: If you'd like to try out this functionality for yourself, I've hacked together a very crude proof of concept on my fork. If this proposal is accepted, I'll open a draft PR.

Future direction

Once implemented, there may be other areas of DIM where craftable results could be worth surfacing. For instance, when selecting a weapon for a loadout, the sheet which lists all weapons for the given slot also contains its own search bar for filtering the weapons shown, and when that filter matches a craftable weapon, it could appear in the new trailing section.

If the craftable weapon is selected in this context, additional functionality could create a placeholder for that weapon and its desired traits in the loadout, similar to how the armor picker can display armor which the player does not own but which is currently available from a vendor.

Alternatives considered

Filtering for craftable weapons matching certain criteria already exists in DIM. However, it's a bit unwieldy to reach for, requiring navigating to the Records page, retyping the query with the additional is:patternunlocked filter, and ensuring the Collections section is expanded to see the results.

One alternative to the proposed feature could be to make this process a bit easier by retaining the search query when navigating to Records and maybe automatically expanding the Collections section (if collapsed) when results manifest therein. At that point, it would be a two-step process for someone to check their Inventory query against their Records.

However, this functionality would still be undiscoverable during Inventory searches. The upside of the proposed feature is that it makes a player's craftable options more discoverable and in the context where it is directly relevant.

How does this fit into your workflow?

When looking for a weapon to pair with a particular build or to take into a particular activity, DIM's main search bar is my go-to. However, my searches are often followed up with another search at a different site for all craftable weapons matching my criteria. I then return to DIM to check against the weapon patterns I have unlocked to understand whether I have any craftable options in addition to the results from my inventory.

The proposed change would avoid that back and forth and give me a more complete picture of my available options immediately when searching for a particular weapon/roll in DIM.

One thing to try is searching on the Records page - it should match craftables.

Thanks, and you're right. The Records page does offer this functionality, and it's useful (I acknowledge this near the bottom of my post but I admit I probably got too carried away with its length).

I opened the proposal despite this because I feel the inclusion of pattern results alongside inventory results could still offer significant benefit to players. For people like myself who routinely make the extra search, but more-so even for the people who do not and perhaps lose track of the options they have in their unlocked patterns.

One of Bungie's stated goals for weapon crafting was to ease the burden on player vaults, and many players unlock weapon patterns as a means of storage for every combination of traits available on those weapons. In that sense, unlocked patterns are an extension of the player's inventory. And so an inventory search seemed like a sensible time to surface them.

If you think this idea has legs but the UI still needs workshopping I'm happy to play around with it more.

I think it's an interesting idea and the proposed UX makes sense, though it definitely goes outside of what search has traditionally been about, which is filtering your inventory. Having the craftable results only show up in the search results popup is both a problem (desktop users especially will miss it) but sort of an advantage as well since it won't get in the way of normal inventory searches. An interesting question is where else this would need to show up - the item picker sheets (used in loadouts), in the Organizer, etc.?

Having the craftable results only show up in the search results popup is both a problem (desktop users especially will miss it) but sort of an advantage as well since it won't get in the way of normal inventory searches.

This was my thinking. It's not ideal but it also kind of works at the same time. Anecdotally, I forgot all about the search results sheet until I started considering this feature and where it could live. I actually really like the sheet and am teaching myself to double tap return when searching so it always pops up. I think there's a case for making the sheet more noticeable on desktop, maybe by exposing just the header results text with a button that expands the sheet from there.

An interesting question is where else this would need to show up - the item picker sheets (used in loadouts), in the Organizer, etc.?

I figured the item picker sheets could make a good follow up PR but I'm also happy to integrate that at the same time if you feel that's best. Same goes for the Organizer (which I hadn't considered yet -- that's going to take some thinking) and anywhere else the new behavior should integrate.

Been thinking about this and I do feel like patterns should surface in the Organizer in some way. They're just as relevant to the decision making process of keeping or deleting weapons as they are in coming up with a loadout. The problem I'm running into is how exactly to display the patterns.

They should be mixed in with the other weapons rather than sectioned off, I think, but they should be very visually distinct. They won't list any traits/perks, which will make them somewhat stand out, but I think there needs to be something that immediately distinguishes them from surrounding inventory items, like a background pattern in the cell. I don't really have any good idea here yet.

There probably also needs to be an easy way to filter them out of the displayed results since some users might find patterns to be noise when they're using the Organizer. The problem is that there's no filter that does this because records and inventory items have never been mixed together in search results. So the question is then, should we add a filter (e.g. is:pattern or is:record)? Or should we simply include some sort of standalone toggle on the Organizer screen for including/excluding patterns in the results?

If you have thoughts on any the above let me know. Otherwise, I'll just start playing with stuff to see what feels right.


Separately, I've realized that exotic weapons also feel somewhat like weapon patterns in that they're unlocked and can be pulled from collections at any time. It would also be nice for these to surface in relevant searches the same as patterns. This can be shelved for a future PR if it feels like too much for one change, but I wanted to mention it.

My sense is that this is a reasonable problem to try and solve (surface craftables that match what you're looking for) but that the effort and complexity may not be worth the result.

It certainly ended up more complex than I had originally envisioned once the Organizer was brought into the mix. If you think that just the initial pitch of Inventory search results could be viable on its own, I'm still happy to work on that and provide a PR.

I expect that API updates from TFS release are going keep your hands full for the near future, so if it's better to hold off on this now and maybe revisit it at a future point I'd understand that completely.

Just the search results would be viable but still relatively complicated, and I worry that it's difficult enough to discover that folks wouldn't get a lot of benefit from it. But if you wanted to work on a PR for that I'd certainly consider merging it.

I think there's definitely something valuable in here, even if I'm not sure what design would be best. I often end up opening Light.gg's God Roll Finder in another tab.

I've experienced two closely-related use-cases:

  1. I am about to go into some activity where a particular weapon type/archetype/element/perks would be so incredibly useful that if the search says I don't have it--or the results are disappointing for other reasons--I might choose to invest in crafting something and level-boosting it right away (Ex: "With these seasonal mods, I need a is:shotgun to handle champions, and is:strand because of my exotic/class config, and exactperk:demolitionist would be really handy for those grenades to handle another kind of champ.")

  2. I am deciding what items to keep or junk, and I'm trying to determine whether a particular marginal roll could be substituted with a crafted alternative if I ever change my mind, making it "safe" to remove. ("This energy SMG with Permeability might be useful for some content, but I've barely used it, are there any other SMGs in the same slot I could craft with Permeability?")

For me, use case 2 is much more common, but 1 seems much easier to solve in UX.

One alternative to the proposed feature could be to make this process a bit easier by retaining the search query when navigating to Records

This "keep my input" behavior would also be valuable when switching between Inventory and Organizer.

my searches are often followed up with another search at a different site

This is more for the "can I safely junk this because I could craft something similar" use-case: The ability to go from a specific item in DIM and generate a link/new-tab to one of those tools where current perks/sockets for that item are already filled in, then (in the other site) you subtract what you're not interested in.

For example, I could take some Adaptive SMG with Permability/Frenzy I found, click the link, then quickly subtract "Adaptive Frame".

I think use case 2 is already handled from the Records page - remember, you can always open a new tab.

This "keep my input" behavior would also be valuable when switching between Inventory and Organizer.

Definitely. Let me consider changing this.

The ability to go from a specific item in DIM and generate a link/new-tab to one of those tools where current perks/sockets for that item are already filled in, then (in the other site) you subtract what you're not interested in.

I think this already works for the links from the Armory page, for the sites which support direct linking with perks.