Seems like they could have added one set each class with ornaments that you earn that activate abilities. So much gear clogging up my vault right now and it's just going to get worse as I do these things on my alts.
External link →Seems like they could have added one set each class with ornaments that you earn that activate abilities. So much gear clogging up my vault right now and it's just going to get worse as I do these things on my alts.
External link →It would only SHOW you YOURS, but it would be in the servers data, that it has to keep track of. Otherwise we'd be able to lose items when we're transferring. We can infer that it's NOT as simple as a simple tiny data file from the fact that they could implement mass shader deletion easily.
We also know that things like inventory size can have an effect on things from this post: https://www.reddit.com/r/DestinyTheGame/comments/awuxus/bungie_why_are_we_able_to_mass_delete_enhancement/ehpj5ib/?context=1000
Quote from DMG04: "If you dismantled a stack of 999, or if you and a few other people in the tower did at the same time, there would be potential for issues to arise."
On the server, on EACH tower instance, it'd have a temporary tracking profile for everyone in that tower instance. Under each profile it would have sub data for each player. For example (one of the more intensive things is physics calculations, talking about just movement data alone, is things like:
- Players position in the tower?
- What direction they're moving?
- Are they touching a surface?
- Is the surface geomoetry or object?
- If object, does it have physics properties? (I'm not 100%, but I think the server takes care of some of the physics stuff to take load off the consoles).
- It would then have to calculate all the physics data interactions of each player in relation to each other player.
Now imagine that and all the other sharded systems happening in the background. That's going to take a lot of computing power. It's not just one instance either, each server would be running multiple simultaneously.
We're also taking into account that Destiny's inventory, menu and back-end systems are very unique. It's basically 'always live'. Everything stems from the central node, which is basically orbit. The same menu system persists across all activities. It's not loading one activity menu and closing the orbit version, it actually persists through the loading and into the activity. There are elements of this system that would probably seem counter intuitive to traditional game inventory systems, but that's the trade-off of creating a system as amazing as this one.
Now back to the vault part. You know how you can use an app to transfer gear from your vault while not in the tower? That implies that this functionality is technically always running, which means it has to account for all the other systems at the same time.
The tower's vault interface, is just that, an interface. But using it to load everything alongside everything else in the tower and to do it as quickly as it does, it's like got a kind of server, precache attached to your local instance's temporary profile. This precache likely isn't just consisting of your vault info, but info about everything relating to your character in the tower, likely stored server side, so a console crash (or something) won't lose any data.
As it's stored server side, it's going to have a limit on what it can hold so it doesn't blow the server's memory to high heaven. The memory limit would take into account the max number of players per instance multiplied by the max number of instances possible on the server. Also accounting for the other memory info needed by the server for whatever else it's doing.
/u/EdgarVerona Am I anywhere near the mark, or did I overshoot completely?
There's a lot in there that I don't actually know about being on the API side, so I don't have the expertise to talk about it (for example, what performance constraints exist when you're in the tower specifically).
I can say that, indeed, vault transfer and other features that you can get at from the API are essentially managed by their own logic on our servers, and can be accessed at any time (barring certain restrictions put in place intentionally to prevent potential harmful edge cases, like how some actions aren't allowed to be performed while in an activity). That divide is also why some actions are theoretically possible from the API where others aren't: it all depends on what types of servers performing what actions the API has access to.
For instance, you'll note that we can't return you an accurate statement for information like the current amount of ammunition you still have available: that's handled by a different set of infrastructure that the API can't reach into (at least at this time, but probably for the foreseeable future).
Thanks for the response mate. I love that you're always willing to talk to us about this stuff.
Just out of interest, what's the coolest new thing that your team is working on your allowed to talk about?
Thanks, I love chatting when I'm able to!
Unfortunately I don't know if anything we're working on at the moment is anything I'm allowed to talk about just yet, but hopefully soon! Since January my plate's been filled with non-API-related tasks (including the work we had to do to begin moving away some things that were being hosted by Activision). Life at home has been keeping me busy too: I got married at the end of January, and we just got back from our honeymoon a week or so ago!
My current work is... tangentially related to the API, or at least to the Bungie.net backend: but nothing that results in cool new user-facing features in the API unfortunately. But my hope is that I'll be able to loop back to it once all of this current work is done! The API's backlog of feature requests grows weekly, there's so much to do and so little time!