@oriongu, I think the UX for buying from a vendor is different from selling to a vendor. When buying, the player usually browses and can make a determination if they want to buy something based on the item and cost. So a simple point and click - possibly with an option to increase the number to buy - would normally suffice. Reducing the number of clicks is always the goal for the UI while still allowing for some flexibility and power for the user.
Selling is a completely different UX for an RPG, especially if the game’s economy centers around generating a resource from selling items. That means while users may only occasionally buy items - maybe consumables - they will be selling items often. I have seen multiple approaches to this and your approach will dictate where the player spends their time and how much down time is needed.
You mention a couple of options so we can look at considerations for each:
- If vendor is open, double clicking on an item in inventory will sell it. If the user only needs to sell one or two things, this can be quick as it’s a simple double click on the item. However, this can also be considered “hidden UI” as the double click is a form of shortcut. You would need text prompting the user to double click to sell which takes up UI space. You could also do a first run experience where the user gets a help prompt to teach them the double click, but if the user is away from the game for any amount of time, they may forget the interaction, so you may need some sort of backup for the prompt. It also has the challenge of a lot of clicks if the user is trying to sell many items from their inventory. It will also slow the user down to make sure they are selling the right items if the double click is the sale action with no confirmation. To increase user confidence, you might either need a sale confirmation (more clicks) or a buyback function to correct mistakes for selling things that the user did not want to.
- Putting the sell command in a drop down will also slow the user where they need to invoke the menu, move the cursor to highlight the sell action, and then click the button. Again, for selling an occasional item, this could be good in that the user has more time to make sure they are selling the right thing (though mistakes will still happen) and can’t mistakenly sell something through extra clicks. For selling a lot of items, however, this is still very slow as it is two clicks with an additional move of the cursor in many cases.
Both of these options also put all the downtime in selling items into the same part of the experience. The user needs to find a vendor, open their inventory, and then start deciding what to sell and doing comparisons to make sure they are keeping the best items. This can make visiting a vendor a bigger commitment causing downtime in the game. It can also be perceived as a negative because once inventory fills up, you are required to find a vendor and spend time emptying the inventory, taking them out of the exciting game loop (unless the entire game loop centers around buying and selling).
One of the methods I’ve seen - which I prefer in RPGs - is to break up that decision making process in selling or keeping gear into small tasks that can be done as you are playing the game. This is a marking system to mark items picked up as favorites (so they can’t mistakenly sell it), junk (to be sold), or leave unmarked. Then once you get to a vendor, you have an option to sell junk. This reduces time at the vendor and breaks up the decision-making process into small, distinct chunks, often when the items are picked up. It’s a matter of simply doing a comparison of what is picked up to what the player is using or saving and setting the state of the item. Often this is a dropdown so the player can invoke the menu and scroll to a tag to assign to the item. This acts like the “sell” button in the menu in number 2 above, but the actions are not back-to-back in most cases. If users can break up the decision process along the path in the game loop, they can simply not spend much time at a vendor.
Not everyone will make use of this type of system or do it inconsistently. So, there should still be a way to mark multiple items for sale. One could still mark items as junk at the vendor, but it would be fewer clicks to also give the option of selling multiple items. Maybe pressing a button to get into multi-select mode, then single clicking each item to include in the sale. Then a complete sale button. This would allow the user to select/deselect items before completing the sale as they change their minds. But basically, if you can offer your users a way to be able to break up the decision-making process for selling or keeping items picked up so that it is not required to be done all at once, you can reduce down time for your users.
Granted, these options will work better for some game loops than others, so it will need to be determined how much down time your players need to clear inventories or generate currency. But I think the best approach is to mockup how many clicks and/or input device manipulations are needed to clear inventory and look for ways to reduce the number of actions as much as possible while not making users afraid to lose items through mistaken sales. And if you can break up that down time into other parts of the game loop through a marking system, you can make the user feel like they can get back into the game sooner.
Hope this helps!