RiotGames / developer-relations

Riot Games Developer Ecosystem Bug Reporting
http://developer.riotgames.com
747 stars 44 forks source link

[VAL] Missing? API data #336

Open stelar7 opened 4 years ago

stelar7 commented 4 years ago

From a post in the discord;

Ability usage

Economy

IndexZer0 commented 4 years ago

This is a concern that I brought up in the valorant-dev discord.

I was planning to wait until I had a full list of potentially missing data before writing up an issue but seen as it's here already I'll fill in what I have spotted as "missing" after a brief look through of the schema.

So taking from what Gene said here: https://www.twitch.tv/videos/675696166?t=0h26m14s (Think this deserves a bigger discussion by the community than being hidden away in our API application.)

This is what we need.

Ability Casts

The highest concern has to be the absense of any ability events.

We need events for every ability cast/usage with the ability specific contexual metadata.

Maybe to live in roundResults.playerStats.abilityCasts

List[AbilityCastDTO]

Brimstone SkySmoke example:

AbilityCastDTO

Name Data Type Description
abilityId string|int id of brimstone skysmoke ability
castTimeMillis int millis since match start
castingPlayerLocation LocationDto
gameObjects List[GameObjectDto] list of game objects relating to this ability cast (up to 3 in this case of Brimstone SkySmoke) - yes I know this is bad terminology

GameObjectDto

Name Data Type Description
id string|int unique id for this game object
worldLocation LocationDto
affectedPlayers List[PlayerEffectDto]

PlayerEffectDto

Name Data Type Description
puuid string puuid
effect string blind/blocked/healed/decay/vision etc
duration int seconds

I need to know if a player skysmoke cast/usage was effective or not based on how many players were affected by the ability usage, and for how long they were affected.

We need this information for all abilities and the effects they can cause...

Damage

This is my second biggest concern with what looks like data being aggregated on riots side rather than providing the raw granular data.

roundResults.playerStats.damage

DamageDTO

Name Data Type Description
receiver string
damage int  
legshots int  
bodyshots int  
headshots int

This looks like aggregate damage per round, per player, per recieving player Meaning that damage done to a player with different weapons/abilities is grouped into one DamageDTO?

We need damage as granular as can be

In the case of ability, we need to know which instance of an ability caused this damage.

e.g

I need to be able to know if this was

or

DamageDTO

Name Data Type Description
receiver string
damageTimeMillis int millis since match start
weaponId string|int|null
abilityId string|int|null id of phoenix "hot hands" ability
GameObjectId string|int|null The unique ID given to a GameObject above (an instance of hot hands ability)
damage int
legshot bool
bodyshot bool
headshot bool
other bool

or

Name Data Type Description
receiver string
damageTimeMillis int millis since match start
weaponId string int|null
abilityId string|int|null id of brimstone skysmoke ability
GameObjectId string|int|null The unique ID given to a GameObject above
damage int
hitbox string|int legs/body/head/other

So a player causing damage to a single player via

Also on the topic of DamageDTO - teamDamage would be nice

Name Data Type
teamDamage bool

Other notes

LocationDto

This one is desired by most developers

How else do we know if Jett is getting kills while airbourne?

PlayerDto

competitiveTier | int

Assuming this is rank?

RoundResultDto

Which team was ATK / DEF for this round?

MatchInfoDto

Surrender

Competitive Overtime

EconomyDto

Name Data Type Description
loadoutValue int  
weapon string  
armor string  
remaining int  
spent int

Player Events

Events for players performing actions like

Closing

As I mentioned, the ability cast and damage representation issues listed at the top of this comment are the main issues I have.

And it all boils down to being able to calculate:

These are huge insights into a player performance and can be used to help players grow.


In no way do I expect/require these data schema changes exactly like this. The example Dto's I have given are just for demonstration.


Lets get this discussion started.