Forums » General Pantheon Discussion

Visible rare items on mobs?

    • 1315 posts
    November 23, 2020 7:27 AM PST

    Sadly, I think this will be an instance where the technology available is limiting the coolness factor.  Having mobs show their rare loot on their person while alive requires them to have the loot picked on spawn rather than on kill.  That in turn drives telling the client what image to load which can give away loot information about the entire zone that players have not earned just for zoning in.

    Perhaps there are a few tech solutions that would allow some of the coolness factor to remain.

    1)      Can the server be set to send the model configuration only when players are within line of sight?  That way your client would only be told what to load milliseconds before you can see it for yourself. (image loading performance limited)

    2)      Loot determination on engagement?  The mob does not have weapons drawn until it is engaged in combat and that’s when the command to load a skin gets sent.  This would still allow for some form of dynamic loot code as the group/raid makeup could be checked at engagement.  Though if another group some how steals the looting rights the loot would need to be rerolled on death.

    3)      The humanoid models always spawn wearing/wielding their possible rare loot but dropping is not guaranteed.  We at least get to see items that are not on the common loot table for its race/faction.  I have always though non medium sized humanoids should only drop objects that must be crafted or turned in for a reward, but that’s just me.

    • 1921 posts
    November 23, 2020 10:46 AM PST
    I've never seen an MMO load models/mobs based on sub-second server-checked Line-of-Sight. It's ... problematic for a few reasons, not the least of which is Round-Trip-Time.

    What I mean by that is, if the server tells the client what to load dynamically, then instead of simply verifying location updates on/near the navmesh from the client canonically, the server would have to be performing asynchronous real-time LOS checks from the PC to every potential NPC, based on world geometry and potentially placeables and similar dynamic objects that block LOS, not just a simple radius. As in, every time the PC moved it would force a server validated RTT plus a whole bunch of extra actions that aren't currently required.. hm.. I think this would pretty much guarantee pop-in, too, in practice, if the 'milliseconds' was actually less than a second, given potential delay of 250ms-1000ms for a customers normal RTT, and the time it would take to load the model(s).

    Yeah, I'm not personally a fan of that implementation, Trasak. Currently, movement can occur on a client without waiting for the RTT. That's where the 'feeling' of responsiveness comes into play, and this whole idea plays within the "trust range" of a client saying "the PC moved, verify but don't block/warp/rubberband/teleport unless it's invalid".

    It's not that it's not technically possible, Trasak, it's that now client movement would be causing a LOT more server side load in the form of all these LOS checks and then client side events for placing the mobs 'in less time than the the player is moving'. It would then have to dynamically expand the check range based on each clients movement rate.. that gets ugly, fast, when dealing with tens or hundreds of players in a zone with hundreds of mobs.

    If there was very rapid PC movement (whatever passes for Selo's, SoW, SoC, more) through an area, and any packet loss or significant jitter, I think the results would be undesirable visually and very undesirable with respect to server side asynchronous load.
    --

    As far as potential options for showing items, there is no technical requirement for a hard correlation between what a creature shows as equipped and what they drop (obviously, many games have snakes, cubes, and oozes dropping armor and weapons, and they have no hands, arms or legs).

    My personal view is, given the economic issues can be trivially handled, having broken equipment drop based on visual equipment seems perfectly reasonable. So, if a gnoll spawns in the world wearing leather armor and a rusty short sword, it should drop a broken leather armor and a broken rusty short sword. All common broken items are worth nothing and can't be salvaged, sold or used for anything until at least being repaired, and that repairing can cost more than the item is worth. Even then then, they could only be used for salvage/donation/sacrifice, if desired, to keep coin currency entirely out of the picture.

    Having NPCs sheathe their weapons while not in combat is a good solution for the visibility of weapons, but doesn't handle the head/feet/body/hands armor, jewelry, packs, or similar wearables in an elegant way. Those should be there when the creature spawns, to be thematically consistent.

    I would hope, by now, after ~7 years and all the lessons learned regarding hardcoding, that NPC spawning would be dynamic, and database driven. Otherwise, they haven't learned their lessons. :)
    • 1315 posts
    November 23, 2020 11:22 AM PST

    @Vjek

    Ha, it is some of our conversations in the past that lead me to believe that option 1 was likely to have performance issues of one type or another.  Almost tagged you to confirm it.  I wanted to list it as a reference of something that technically might be possible but because of game tech reality it would not deliver a great game experience.

    Option 2 only worked for held items.  I was going on the assumption that most worn items would look the same as they did on the model so it would be impossible to see if the rare version was equipped.  I am hoping for virtually zero particle effects from gear.

    Option 3 is sort of your idea with all the broken items just not showing up in the loot window.  That is how a few other games and a past DM handled loot, you only saw the stuff worth picking up.  Once you were carrying around 8k gold weapons you really didn’t care about that used set of studded leather covered in blood and BO that you could maybe get 2 gold for if you drug it back to a town.  With salvage being a skill of some type I could see the “broken” items being accessible so that a crafter with the right skill could get out their portable tools and harvest small amounts of raw materials from each piece.  Other than for crafters to salvage they would just be worthless bulky items.

    • 1921 posts
    November 23, 2020 11:42 AM PST

    All good, and agreed on your clarification of Options 2 & 3.