Posts by EdgarVerona

never3nder_87

Whilst we don't see you as much as the CMs, it's always great to see a comment from you as it's almost always insightful and interesting.

Thanks for taking the time to interact with us here

<3 I'm glad to be of help! Yeah, the last year or so I've been knee-deep in non-API related work, so I've been less useful out here! But glad to chat when I can :D

The_Rick_14

Appreciate the insight as always!

No prob, glad to be of help when I can be! <3 (and I always enjoy talking about the strange case of magazine size ;) )

The_Rick_14

Thanks!

If I recall correctly, API data is not always one-to-one with the game's data (though they do a great job of keeping it super accurate in my opinion).. Might just be a mistake on the API side because yes none of the perks have a magazine size reduction, just increases.

Maybe /u/EdgarVerona knows.

Yeah, there's a lot of history here, particularly with magazine size. I tried to document it for API users here:

https://bungie-net.github.io/multi/schema_Destiny-Definitions-DestinyItemStatBlockDefinition.html#schema_Destiny-Definitions-DestinyItemStatBlockDefinition

Ultimately, in D1 when we discovered this inconsistency, we almost removed it from the API entirely: but API users wanted it retained, because it at least gave them a number they could use for general comparison. We left it in, but it does continue to be a misleading number. I don't know if it still happens in D2, but in D1 you could even sometimes see your magazine size change *in game* if you went from being in orbit to going into an activity, and again to a different number if you went to the tower.

Read more

Whoa, super neat! I dig it!

nicotoroboto

Fix looks good. I see the change today and it appears to be ok so far. Both consoles appear for D1 as well as my cross save D2 data. I've moved a few pieces of gear just to test and it's looking good. Thanks for you and your teams hard work on this! Stay safe!

Glad it worked! You as well!

DoroFuyutsuki

This is very intriguing. Thank you for the deeper dive into the systems underpinning this facet of the game.

No problem! Glad it is interesting, and hopefully it's helpful!

DoroFuyutsuki

So are you treating the static elements like templates and then saving the full item's properties into a database to cut down on references, or are you linking all the base values into the instance through reference and only storing deltas in the hash?

Both approaches have their advantages and disadvantages, mainly in how affecting individual instances of items takes place. Very curious to know if you've taken an approach of de-normalization here as I have an analogous case at work that is under live development.

Oh yes, it is more like deltas - though not strictly. The two have very different schemas, and not everything in the definition has the potential to have a live data override: and many live data properties are more "derivative" than a direct overriding of a definition property. For instance, the definition has properties pertaining to how sockets are first initialized, but all that content strictly exists for initialization purposes and then ends up as a different set of data once initialized.

As far as referencing them at runtime, the game side can locate definitions quickly because on their side these definitions are in sequential arrays and referred to by index which allows for very quick retrieval of that static data on demand. The live data for a character will store instance IDs for an item, and also it essentially stores the index of that item in the definitions, at least by the time the characters inventory is pulled into memory. (There are additional complexities in the g...

Read more
DoroFuyutsuki

Could you talk a little about how the actual weapon hash translates into an item? Do you dereference a static item and then perform adjustments to it based on the instance’s details?

I’m trying to understand some of the design choices made about your architecture at scale. I didn’t used to REALLY care about such things, but as I have started to work on larger projects in my professional scope, these kinds of things have mattered more to me.

Sure thing! So it depends on the situation. Some properties of an item, for instance the plugs that are initially inserted into the sockets or the "level" of the item that ends up determining things like the base power stat of a weapon etc... pull together info from the definition and sometimes random values assigned by the server when an instance of that item is created in the world, and then that resulting value gets saved off.

Other times, the truth about some property of the item lives in the definition because it doesn't change for any given instance, or requires both information from the definition and information from the live data to come up with a true value for an item. (We try to hide some of that complexity in the API because that can become excessively complicated, but for better or worse parts of the game systems are built so flexibly that if we try to hide it, a future design change could render our abstraction incorrect in a way that requires us to break our cont...

Read more
ManBearPigIets

So we never released it, and it got fixed in the famous April update after TTK, but for a while you used to be able to do those things by loading up Destiny on both Xbox 360 and Xbox One (and I would assume ps3/4). Because everything was server side, you could sit in orbit on one system and swap gear and your in-game character on the other system would instantly do the same thing through the servers.

You could do the old Halo style guardian glitch and kill friendly players in PvE and obviously use it to instant swap exotics around in crucible etc. Oddly enough, crucible seemed to calculate “unknown origin” bullets for very little damage, so you couldn’t actually betray people unless you sat there unloading a couple of shotgun magazines into someone afk. But we just used it to troll people in patrol and raids.

Ha, I never knew about that one! That is clever!

[deleted]

[deleted]

Thank you! I am glad that it has been useful to folks!

[deleted]

[deleted]

Oh yeah, I definitely didn't see the OP as an API complaint for sure (nor any of your comments!). Sadly I don't have any control over the in-game choices and focus, but I do think it's good to know that people have this desire!

_R2-D2_

Hey man, you've probably heard this a few times before, but this type of in-depth response is fantastic and really what this community craves - genuine interaction from Bungie. Keep up the good work!

Thanks! I'm glad to be of help when the opportunity arises!

willhockey20

Seriously thank you! Now I just need the time to actually do something with it. I swear every time I try to sit down and get started on something, something else comes up which needs a lot more of my time.

Thank you, again!

I totally understand how that goes! Have fun if you end up finding the time to, but no stress: it'll be here when the free time comes around!

Greetings! Yes, unfortunately we have encountered issues with the D1 API with Stadia.

We're tracking it here if you would like to watch this Issue in Github! Over there, you can follow on the progress and know when the fix makes it out there. We ran into additional difficulties that are delaying the fix (the fix itself caused a different and more serious bug that has delayed us from resolving the issue), but it is on the docket:

https://github.com/Bungie-net/api/issues/1151

RLgeorgecostanza

Thanks for taking the time to share that stuff! I find it super interesting to hear these technical details and I’m sure a lot of fellow guardians do as well.

Really appreciate it. Cheers.

No prob, glad to provide help when I can! I wish we had more resources and info to share.

[deleted]

[deleted]

Yes, this is true - some of the API actions are limited to certain areas of the game (or while offline). Unfortunately, this'll be the situation for the forseeable future: the potential for abuse vectors if the API could perform actions in combat-capable activities is too high. Funny story, you can actually see some of the cheese that came from it when the flashback activity during Moments of Triumph accidentally allowed API equipping back in the day. There's some humorous videos out there, but it's the kind of category of problems that could cause potential grief if those actions were allowed in potential combat situations.

Read more
willhockey20

Man I wish I had the time to figure out how to use the api. I just get lost everytime I try to do something with it.

If it helps, the biggest initial conceptual hurdle to jump over is the fact that the API is actually split into two big components that need each other but that are accessed in very different ways:

  1. The static data, which you can download and provides information about any entity in the game that doesn't change dynamically as you play. For instance, the names of items, or what plugs could possibly be inserted into which sockets for an item, or other information critical to use when showing or interpreting "live" data, but has no information about a specific character or "instance" of an item and its state. This data is contained in lists of "entity definitions" (for instance, the "definition" of a particular weapon, or the "definition" of a specific Triumph rather than an actual instance of one) and each of these entities is referred to by it's identifying "hash" (a numeric identifier that is unique for that given type of entity)
  2. The "Live" data, which you can access through the we...
Read more
STAIKE

Dude, these explanations are awesome. I love when you comment on threads here because it's always super enlightening into how the game works behind the scenes. Thanks for taking the time to communicate with us and giving such great detail!

No problem, glad to be able to talk when I can!

And thank you all of you who gave info!

gosulliv

I created a new character a bit before shadowkeep, I'm only getting these notifications on that character, not the other 2 much older characters.

Ah, thank you for the report! I appreciate that - I'll forward that info along. Other folks experiencing this, are you finding similarly? That it's new characters having the issue rather than your pre-Shadowkeep characters?

FROMtheASHES984

I'm genuinely curious and don't mean this as rude, but how does something like this happen if it was fixed once already? Can you just use the same fix as before or do you have to come up a different solution?

Folks are still investigating the current situation so I can't say authoritatively what's happening this time around, but I'll try to give an update (if allowed) when we find the source of what's happening this time!