The New Vendor Listings in Zone

Discussion in 'Player Test Environment (QA Server) Feedback' started by Anpu, Sep 16, 2021.

  1. Anpu

    Anpu Bug Hunter

    Messages:
    6,195
    Likes Received:
    7,195
    Trophy Points:
    153
    Location:
    Pacific Northwest
    Thanks for adding this! (Go to you Options>Controls add a keybinding to "Toggle Vendor Listings in Zone")

    The listing is a bit..... way too slow. I went to Crafters Town and searched for wizar to find some clothing, the listing is still at "Loading..." and it's been over 4 minutes.

    There's no way to mark the lot you want to go to.

    The information in the window is perfect.

    Looking forward to seeing this getting developed more!
     
  2. Coswald_Dirthmire

    Coswald_Dirthmire Bug Hunter

    Messages:
    349
    Likes Received:
    998
    Trophy Points:
    43
    Very happy to see this! I'm hoping that Buy Orders are also added, as I feel it would be incredibly helpful to new players in getting a fair price for their efforts, and gathering is a cornerstone of new player (and even veteran player) income.

    I'm also curious about how the vendor list is propagated, specifically as it relates to this message:

    [​IMG]

    Are vendors that are in trunks in town included on the list, for instance? Might it be in a locked basement, or hidden on the deco palette?
     
    Xee, vulcanjedi, Gravidy and 2 others like this.
  3. Lained

    Lained Avatar

    Messages:
    2,435
    Likes Received:
    4,212
    Trophy Points:
    165
    Location:
    Yeovil, England
    Maybe cache the data if I've opened it already and not left the scene? There's already a refresh link in case I really feel I need to fetch the list again.

    The house name would be a useful column to add.
     
  4. majoria70

    majoria70 Avatar

    Messages:
    10,050
    Likes Received:
    24,426
    Trophy Points:
    153
    Gender:
    Female
    Location:
    United States
    Well it is a step if no global item search is implemented that is. I can't quite see why searching for one item globally would be impossible. Especially if it's limited to one item at a time. Is there something I'm missing? Who's going to go to each town searching like this. Maybe one or two towns which still leaves too much of the player base unknown and left out. One reason for global item search is everyone is included.
     
    Time Lord and FrostII like this.
  5. Anpu

    Anpu Bug Hunter

    Messages:
    6,195
    Likes Received:
    7,195
    Trophy Points:
    153
    Location:
    Pacific Northwest
    Could Buy Orders also have a separate window listing in here? We do really need buy orders also listed as a listing to find a vendor that is buying items.
     
  6. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    1) It'd be helpful if this and the players "Locate Player Vendor Items" listing didn't load until after a filter was applied.

    I know my own vendor item list takes several minutes to load. A major town could be 30-60 minutes easily if a filter isn't applied first prior to load. maybe minimum of 3 letter match so the item name doesn't have to be known and perfectly typed


    2) It'd also be useful if the owner had an option on a vendor to hide it's listing from the search list as not all vendors are actually used to sell stuff to all players. Some are just used as containers or are behind locked doors so they can only be accessed by players with permissions to enter the building / room.

    3) Definitely a thumbs up for Buy Orders listings.

    4) A 1/7/30 day average sale price list for gathered items (wood, ore, etc) that have sold, not just in a town. This would be really helpful for new players.
     
    Last edited: Sep 16, 2021
  7. Coswald_Dirthmire

    Coswald_Dirthmire Bug Hunter

    Messages:
    349
    Likes Received:
    998
    Trophy Points:
    43
    I'd be wary of an average prices column. A player could very easily use an alt to privately sell vast quantities to themselves at a high or low price to manipulate this, especially for rares.
     
  8. that_shawn_guy

    that_shawn_guy Bug Hunter

    Messages:
    1,198
    Likes Received:
    3,190
    Trophy Points:
    125
    Location:
    earth... mostly
    I don't know if it matters. But, I think the weight in this context is useless. Maybe the Owner Name as well. Any data we live without should be removed to hopefully reduce load time.

    Also, I think it should default to no results (maybe add the normal tabs)and only start loading after sorting or filter options are selected. Have a "browse" option to load everything if needed.
     
    Time Lord, Anpu and Coswald_Dirthmire like this.
  9. Coswald_Dirthmire

    Coswald_Dirthmire Bug Hunter

    Messages:
    349
    Likes Received:
    998
    Trophy Points:
    43
    I don't see a ton of use in the weight column, but sorting by vendor owner is a feature I'd make use of. I might be in the minority there though. (It's also useful now for finding the vendor, but seems we'll be able to mark it on the compass at some point, so that's somewhat moot)
     
    that_shawn_guy and Violet Ronso like this.
  10. Gwendolyn Obscuro

    Gwendolyn Obscuro Bug Hunter

    Messages:
    346
    Likes Received:
    672
    Trophy Points:
    43
    I think this is a good compromise between the "I want a global auction house" and the "no searches, go to every vendor" crowds.

    I second (third, forth, fifth? whatever) the I want buy orders included.

    My main concern so far is time to load. Of course even as is it is much faster than going vendor to vendor within town, but it took me 7 minutes to load Silverdale and that was painful. (would probably be a bit faster on live and when I didn't have some work programs running, but far from fast). I would suggest a) rework it so the filters work at the database level instead of it taking just as long whether I'm doing a search or not (though I do want the option to browse everything!) and b) if that can't be done at least load items in the order they were added to a vendor, newest first. That way if I do a search and start seeing listings I've seen before I know there were no new listings for that item.
     
  11. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    Limit it to common gathered items. Wood, Ore, Beetles and the like. Could be limited to only items that appear in low tier scenes which would exclude the rares.

    To reduce manipulation, the average could be based on # or sales, not quantity sold. So if someone wants to manipulate the price they have to do hundreds or thousands of individual transactions on a daily basis. They could also provide both averages.
     
    Time Lord and Dollar Bill like this.
  12. Coswald_Dirthmire

    Coswald_Dirthmire Bug Hunter

    Messages:
    349
    Likes Received:
    998
    Trophy Points:
    43
    To my mind that makes the system convoluted while limiting its function to the subset of items people are the most likely to already know the average price of, and still leaves it open to manipulation. I don't see this ever giving a more honest or accurate view of the commodity market than a simple Price Check request in /Trade channel.

    There's other detractors to the idea (a system based on number of sales would be contrary to the popular desire for listing entire stacks and allowing players to chose the exact number to buy, for instance) but most simply put, it's likely one of the nice things from the phrase "this is why we can't have nice things".
     
  13. Chris

    Chris Tech Lord Moderator SOTA Developer Ambassador

    Messages:
    2,480
    Likes Received:
    27,828
    Trophy Points:
    190
    Gender:
    Male
    We're aware of the performance issue in a couple of towns. Right now the system loads around 25-50 items per second. That sounds fine BUT not when you're in a town with 20,000 items for sale. Looking at optimizing that first. If that isn't good enough we've got a list of ways to improve it through other means. Easiest option is to just load the most recent 2500 items and then have a "Load more" button to lead another 2500 ish. We're confident we can improve performance by quite a bit over the current speed. Once we see how fast we can get it to load we'll look at other improvements. Caching so it doesn't reload is also on the table but obviously, that can lead to some inaccuracies.
     
  14. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    New players don't know the prices and are unlikely to request prices on the trade channel and either sell the resources to an npc vendor or to a player vendor near the startup area which is much more manipulated. Additionally, PC requests on the trade channel often are not responded to in a timely manner, if ever. The PC trade channel itself can be manipulated easily, and a poor substitute for an average price list. Their are ways for an average price list to eliminate manipulative sales that are far outside the norm that would skew the average.

    Listing stacks with exact # purchases is not affected in any way by an average price list. Fewer individual sales could affect the ability to manipulate the average price list but as mentioned their are ways to handle that.
     
  15. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    The most recent 2500 is not a good option at all. You will be creating a system where players repeatedly drop and re-add items just to get them listed on the top 2500.

    You would also potentially be promoting a system where governors remove players from a town, just so the governor and core group of friends can more directly manipulate the top 2500 item list for that town.

    It really needs to be a system where we key in a filter prior to initiating a data transfer so the data is filtered on the back end before loading. I have past experience working with very large large databases and your database should easily be able to handle a simple text matching filter. You could even add a name match, where we key in something like "gra" and we get an item list of all items in game with those letters, we then select the item we want (for example "Granite") and it then that triggers the database filter based on the id or name of the item to be downloaded.

    Whatever you do, please apply the same filtering to the Locate Player Vendor Items screen. It is extremely slow.
     
  16. Chris

    Chris Tech Lord Moderator SOTA Developer Ambassador

    Messages:
    2,480
    Likes Received:
    27,828
    Trophy Points:
    190
    Gender:
    Male
    I can think of nothing that a developer likes less than a player telling a developer what should be simple to do on a project with more than a million lines of code and hundreds of systems with dependencies. :/

    Aware that by doing the first 2500 thing it creates a game of re-adding stuff to stay on top. Again, we're hoping to just be able to optimize it enough so nothing is needed. We're looking at other options as well but I'm optimistic none of them will be needed.
     
  17. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    I didn't say it was simple. I said the database should easily be able to handle that. ;-)

    To be fair, I often do state from a programmers perspective if I think something should be simple without any knowledge of the shroud coding and data, but I don't expect it to necessary be simple. It's more of a "heh this might be something simple, can you take a look at it and from your extra knowledge of the system and determine if you can do it easily or not". It's not a "heh this is simple, I expect this out for the next update". I never had your experience though. I always got the "we don't know how to do this, we give up, can you do it" ;-)
     
    Last edited: Sep 17, 2021
  18. Chris

    Chris Tech Lord Moderator SOTA Developer Ambassador

    Messages:
    2,480
    Likes Received:
    27,828
    Trophy Points:
    190
    Gender:
    Male
    It could be done but I think most people assume we're using some kind of SQL db. For performance, stability and simplicity reasons, we use MongoDB for most things so we have limited indexing options. This still could be done on the server by having it filter things. That can be expensive but cheaper than sending the whole db. The risk there ends up being that if you look at how people use it, they will almost certainly want to do multiple different searches. So rather than sending everything bulk, we might end up doing string searches of all the data 10+ times. We're looking at options but we'll figure something out that doesn't suck.
     
  19. Coswald_Dirthmire

    Coswald_Dirthmire Bug Hunter

    Messages:
    349
    Likes Received:
    998
    Trophy Points:
    43
    Heh, this is becoming an example of the convolution and cat-and-mouse that I think it would be most wise to avoid by not trying to implement an "average price" column. An average price column would be a very nice thing to have. It just doesn't seem practical to safeguard it against all the reasons, in this case, "why we can't have nice things".

    We both know players don't start with price knowledge, but again, commodities are the most known and most easily discovered prices, so to propose limiting any sort of "average prices" system to only this subset does immediately wipe a large portion of its usefulness. So more effort (selecting the commodities subset to use) and less utility (people no better off knowing the price of rares). A bad trade-off.

    I also don't see it at all likely that a player opening a town vendor window isn't already (or doesn't immediately become) past the point of selling these commodity resources to an NPC. Any town with several vendors or more trades heavily in these items and their worth would be immediately on display, even without an average price column.

    While it's true that a Price Check in /Trade can be incorrect, they are historically rather upfront and accurate, from what I've seen. Beyond that they do not in any way appear endorsed by the game. Any potential dishonesty here is immediately obvious. You're asking a person for information, they may lie or be misinformed. Showing an average price in the vendor search window lends it additional credibility that I believe would be unwarranted and misleading.

    Such as weighting it by number of transactions as you propose, which would cause people to have to make many transactions to manipulate it. This slightly mitigates the ease of manipulation.

    Letting sellers post large stacks that players can buy any number of items off of diminishes the hurdle of manipulating a number-of-sales weighted system, generating a large number of listings. A player can now easily manipulate by making a large number of purchases from this single listing, perhaps with a bot.

    And yes, we could go on and on with this, further ways to combat manipulation and bolster legitimately, followed by the new ways the system could be manipulated and a longer list of why the "average price" then becomes a less meaningful number that took more dev effort to arrive at. All the while we'd be digging deeper the pitfall that I'm drawing attention to.
     
  20. Jakkal

    Jakkal Avatar

    Messages:
    227
    Likes Received:
    260
    Trophy Points:
    18
    Right. I think devs have mentioned SQL before. I could be wrong. Possibly related to other systems like your AWS. Changing shroud over to SQL would likely be a huge effort so not likely to happen.

    Keep up the great effort. ;-) Guess I need to learn Mongo. haha
     
    Xee likes this.