I know for a fact the community would build some really cool things.
Here are a few examples of what could be built, given the support:
Determine my win (or loss) rate for a given map? Against a certain hero? On a certain hero? On a hero on a given map? Do I lose every game I pick hanzo on volskaya?
We know this is possible, because the Overwatch league did it.
View accurate winrate stats for certain heroes? In a given rating? During a given timeframe? During a given region?
We know this is possible, because the Overwatch league did it.
Build a tool that analyses the key events in a match (who dies first, ultimates Iâve whiffed, ultimates Iâve shut down)?
We know this is possible, because the Overwatch league did it.
Push lots of stats through third party services, like IBM Watson, to identify trends
We know this is possible, because the Overwatch league did it.
View detailed match history over a long period of time?
View what hero I lose against the most?
View what ultimates cause me to lose the most fights after I use them? Win the most fights after using?
Find replay codes of people playing a certain hero in a high rating? Opt in to have my replay codes publicly searchable?
Suggest replay codes of players who, statistically, do certain things better than me on a given hero and map?
imagine if we had this + a lightweight, optimized, quick to launch replay viewer that could open replays from browser links?
Support exporting & storing things like stats, win/loss, replays for longer periods of time beyond a 10 game history
and thatâs just off the top of my head.
I am not a creative person, either.
Yes, all of this is cool stuff that we âcouldâ have built in to our profiles, but thatâs more work for blizzard than simply providing the data and letting the community visualize it themselves.
Think about the effect the workshop had.
Before it existed, the only real way to practice your aim was to either play something else, play a real match, or shoot at bots in a custom game. But now, people now have all sorts of tools from situational aim trainers, reaction time trainers, rollout practice, and even just a lot of fun or chill gamemodes.
Whatâs better, blizzard building custom modes, or giving the community the tools to build their own custom modes? No brainer. Give the community the tools.
When it comes to tracking performance and stats, âoverbuffâ is âshooting bots in a custom gameâ, and âproper api supportâ is âthe workshopâ.
wots wrong with overbuff?
The lack of a robust api hasnât stopped the community from trying to build cool things.
If your career profile is public, anybody can pull your stats from your profile at https://playoverwatch.com/career/pc/battletag-1234 - this is where sites like Overbuff source their data.
Overbuff is cool, but it could be better. Their stats are corrupted by untracked accounts, private profiles by default, accounts not being tracked by default, data not being tracked properly (if I play 500 games on an untracked account and register it to overbuff, it shows up in one big session for that day). But itâs not just that the stats are inaccurate, theyâre also incomplete. Theyâre working with only whatâs on your career profile. Itâs limited, and itâs not granular. It canât be.
Itâs not completely their fault. The tools just arenât there.
but blizzard would never want to give us cool stuff!
I disagree
I think OW1âs confusing development is the real reason weâve not gotten cool features like an api or a map editor. I bet OW2 and ActiBlizz tomfoolery siphoned away everyoneâs attention from the cool things we could have had.
Iâve checked on and off for a few years and itâs always been missing from their developer portal. Thereâs also no section on their api forums. The only references to an overwatch api Iâve ever found were hacky workarounds that scrape your profile for you.
technically, the career profile -is- a public api, itâs just⌠not very useful
Not exactly. Just because league was done doesnât mean itâs doable on non controlled spectrum. While we will have more stats, Itâs unlikely to have that kind of info. Only if the person do it as today, review and analyze.
Same as above, only if you track. They have all the data, doesnât mean they would share it. More access to data itâs a double edge sword, while can provide some useful stuff can also help ânot well intendedâ behaviors using that kind of data. Like knowing how bypass the system by boosting.
They could improve the replay system, they even put F9 fuction isnât perfect but can be useful.
They promissed more detailed data, but I doubt that they would provide that detailed data you want. Maybe you could use watson to track accurately by creating a history on him about the info pulled from your account. But again, would be more âindividualâ thing not exactly a colective one.
Possible, but I wouldnât bet it. Itâs costly for them to store that much data and detailed data. You could save it on watson like currently you can, but not much detailed.
Unlikely. The data itâs from you, you donât have access to others data, you could manually input, but would be innacurate. Because folks can swap heroes.
Unlikely. Really low odds they save that kind of data and even if said, thereâs too much parameters about it. You can win a teamfight but lose objective, solo ultimate killing 4-5 foes while your team are dead, also donât provide good data.
If the game wasnât public, unlikely. The cost to implement it would high. Not âworthingâ the hassle.
Tournaments/championships tho, could be doable. Mainstream not.
Unlikely
Only if replays become media themselves and saved locally. Otherwise unlikely.
Most of the data you quoted already can be done if the player itself decide to make it. But from raw data.
They will give us more data about certain stuff. But I doubt that you will have that kind of data you want. Because itâs really unlikely on a non controlled environment.
naturally, every example I listed should come with the obvious assumption of âif they are willing to expose thatâ but if we disagree they are willing, then so be it
be mindful not to misunderstand - Iâm not saying I want blizzard to provide literal endpoints like âhttpget /profiles/kazooie/what-hero-does-he-lose-against-mostâ rather endpoints that prove more digestible (and useful) data to allow someone to build that functionality themselves⌠most likely in terms of matches played with statistics scoped to that match rather than aggregated ontop of your profileâs existing history with every game played.
Thereâs a few pretty straightforward ways you could go about it low-cost (if cost of storage is your concern). If storage cost isnât a concern then you can just store lots of match history. If it is a concern then you can still store the detailed stats of a past handful of matches and allow thirdparties to query those and expect them to archive them at their own expense. Alternatively you can not store history at all, and delivery that data via webhooks to services that are subscribed and, again, let people store it at their own expense.
Yes storing detailed history for millions of accounts is expensive (and likely why we only get limited to 10 replays), but a smaller third party storing thousands, tens of thousands, or at most a few hundred k accounts is much less expensive, especially when itâs only tracked from the point you sign up â onwards. Given that they are usually opt-in, it likely wouldnât have a huge bandwidth impact either. Noticeable, but not absurd depending. And since the point is to enable the community to build the tools, not be spoon-fed the results, if it becomes too expensive for a third party service they can always tackle that solution in whatever way makes sense for them (put up with it, throw out super old data, charge people to show more data like slack does with message history, etc)
To be honest Iâm not entirely convinced⌠Iâve heard it before, but itâs not a unanimous enough of an opinion to really convince me, and Iâve seen more transparency without those imaginary horrible (like âpeople will figure out how to break our rankings if they have stats like winrateâ)"
I would guess they (blizz) are more concerned with ânot well intendedâ behavior like harassment than boosting (âthis hero has a really bad winrate and we dont want people to get flamed for playing themâ)
but to that point you could start a philosophy debate
Impossible to say for 100% sure without insider perspective, but i am guessing they already are media in the form of a bundled up event stream from the serverâs perspective
really i only have two guesses as to why we donât already have the ability to export replays:
trying to keep everything squeaky clean and consistent (non-breaking changes)
or perhaps there is a technical hurdle that they havenât had reason to overcome yet - for example perhaps it doesnât support streaming from a local file and you currently need a âserverâ running to stream to the game client
but itâs anybodies guess.
?
those are actually pretty straightforward to determine if you (or a service) is able to catalog match history from a given point onwards. you just have to be able to access data about the match you played, such as the map, whether you won or lost, the heroes that were played, for how long, and when (in the event that you want to get fancy and tell who was on the field vs who at a given time - but thatâs a little extra).
if youâre worried invasiveness or privacy, you shouldnât be. you were there for that match, so the data was already exposed to you. but itâs not an unreasonable step to obfuscate battletags of people set to private, or omit them entirely with the exception of yours. you could determine those just fine if all you knew was who you played.
OW2 was unlikely
regarding the last half, keep in mind that it would be up to the person using a tool to determine if the toolâs analysis is useful,
regarding the first - âlow odds they save that kind of dataâ, Iâm actually not even sure if they âsavedâ it in the first place when they were running those stats during the league
Iâm a little in the dark about how they accomplished it. I remember they had a lot of really unique stats, but I dont think itâs known if they:
a) had someone literally watch all of the games and catalogue the obscure or situational stats like (âbumper died first on his team hereâ), (âa teamfight starts after x seconds of no fighting and ends after conditions y and zâ)
b) had the replay itself replayed and analyzed automatically post-facto
c) sat down before-hand with devs and mapped out all of the stats they would like to display, to have the server track them (least likely option, i think - they would most likely still have that meeting but it seems like an odd way to go about it unless i am misunderstanding how digestable the replay streams are)
d) had access to a more specific stream of key events to analyze than the raw replay
e) something else
Itâs not a new paradigm to work with eventstreams and replay them to backfill stats that were previously untracked. If I had to guess I would think thatâs the most likely way they got some of those as opposed to tracking them in the first place given that they did store all of the replays for the league
The details of it itâs the problem. Storing A itâs easy, storing A+B isnât that easy, Storing A+B+C way worst.
The current replay system itâs âsolid chunk of dataâ but not âhandledâ. When you have the other perks you mentioned that data becomes problematic. They could help you to store replays, but wouldnât be that great on end-user. Also, the end user would store up 10 replays and theyâre located on different servers, meaning on a match having the possibility of 12 replays. While in reality if the most, blizzard only consolidate one on their end, still spent bandwidth with 12 for a brief period of time, like a patch or so that often they delete afterwards if you donât pin it.
Tbh, on this world, data is âmoneyâ. I expect them to be careful about that.
The replay part being saved locally, could be a feature for end user. But would require a ton of space, like the highlight current perk. If you want more âaccessibilityâ on that kind of data/footage. Some would play the replay and use â3rd party softwareâ to save it. Which itâs more likely what Streamers do with their VOD, intentionally or not.
âfilteredâ data would be really unlikely to have, replays themselves most likely doesnât have either. Most likely they have data on âper player basisâ not âper match basisâ Considering their metrics of âper minuteâ, while some they could have per match basis like highest value in a single match of something.
Which, most likely, they donât have. Only stat like âhighestâ. On League they use specific set of tools for that kind of thing and even those are often reliant or 3rd party stuff like Watson. I donât think they would have that kind of âexpenseâ for general public or collect that amount of date of each match, most likely only on contenders, some leagues and OWL. Stretching a bit more, maybe comp. But I wouldnât bet on it.
That kind of data relates a ton of what all those 12 players do, even today I didnât saw that kind of filtered data on OWL considering enemies, they had about hero X and map Y, but I mean. OWL itâs like at maximum of something like 300 players data across like 20 teams or so. Itâs really easy to fetch that kind of data without even using much of in game stats for it, you can consolidate that kind of data with their actual data of something else, filtering those stats.
But for an average player? Really unlikely. I really doubt they would use a fancy filter system inside of their game logic for it. IBM Watson itâs using that kind of thing to provide those data without putting burden on their dataset.
Actually wasnât, they had plans. How to make these plans be what they want were their question mark. They had fear of OW2 becoming a flop, that halted OW1 for 2 years. Then when they saw what had done, they noticed that could simply make 2 different games at same client, like what other games from them done. SC2 by example, D2 and D3 also.
OW2 PVP should had on OW1 live servers already, still isnât because their complicated development. Paired with internal issues within the company. The moment they decided that OW1 would receive PVP portion of OW2 the fate was already decided. They just stalled for either to reflect on what PVP would become and how they could make things work.
At least this time, theyâre planning. Even if the plan doesnât work the result would be far more acceptable than 2-2-2 half baked implementation.
Most likely they use IBM Watson features about it, cross referencing data from raw footage and in game stats.
IBM Watson can achieve some great stuff if you know what you want to filter.
Like I said, theyâre improving several aspects and data oriented info, but itâs really unlikely to have âcross referenceâ data with other peers. Most likely that kind of âfilterâ would be needed to 3rd party tools and some âmanualâ handling.
Iâm not quite sure what youâre getting at when you say âThe details of it itâs the problem. Storing A itâs easy, storing A+B isnât that easy, Storing A+B+C way worst.â because itâs a bit of a loaded statement. Thereâs context that isnât being given.
Iâve worked with filestorage, database admin, building restful apis, and depending on the situation, the difference between storing and exposing A+B or A+B+C can be trivial, almost nonsensically so. It depends on the situation.
In the situation of storing the results of the past few matches and the raw statistics from those matches (not aggregated against your profile), to expose them via an api, I donât see where you conclude that it becomes difficult enough to raise objections at the very idea of it.
I can understand not sharing things like geolocation, personal info (email addresses, names, phones, etc), or anything that can link back to you personally.
I donât understand the concept that they should not openly share data about things like winrates and match history, especially when considering that you can anonymize that data/who is contributing to it.
No, youâve got it backwards. Storing a match in footage is the most bloated way to store it. The replay, if it is truly just an event stream, should use space roughly equivalent to the bandwidth a single match⌠which isnât much by modern storage standards.
Youâd probably use up more space trying to store a 480p vod of your match. Iâd bet money your 10 second highlights probably take up more space than the entire replay file.
If by âfiltered dataâ youâre referring to this:
âd) had access to a more specific stream of key events to analyze than the raw replayâ
Then I donât know why youâd say they wouldnât already have that, given that it would be a subset of the events that are already in a replay that they would have.
If thatâs not what youâre referring to, then youâve got me lost lol
Even if Blizzard doesnât have those stats, Iâve already explained how using a public api would allow people to calculate those stats on their own from the present date â forward. So Iâm not sure why itâs important if Blizzard doesnât have historical data. Historical data is always ânice to haveâ, but itâs usually not mandatory.
Also, itâs not rocket science. Itâs hardly even data science. You donât need â3rd party stuff like Watsonâ to determine your win/loss rate on a given map, if youâre able to pull match results from the present day onwards. You donât need Watson to determine your win/loss rate against a certain hero, on a certain hero, or map, or what hero you lose against the most. What you do need is match-specific statistics, which we do not get currently.
I think thereâs a common misunderstanding here. When I mentioned Watson, I didnât mean âBlizzard should run our replays through Watson and give us the result.â
Thatâs absurd. Itâs also marrying the api to Watson, which is also absurd. I meant that, if they chose to support exposing digestible replay files (likely in the form of a stream of more useful events, rather than all of the match events), then the community could run them through whatever analysis they wanted, if they could figure it out. And believe me, the tinkerers would probably figure it out even without documentation.
But itâs also not a necessity. You donât need digestible replay files to have a functioning rest api that allows players to poll their stats and match history. Itâs just a cool thing that could be built.
Iâm really having trouble following the first paragraph. If you put it through a translator, Iâm sorry, but it didnât stick.
As for the second:
Iâm not sure why youâre married to the idea of Blizzard running the analysis. Iâm not talking about that at all. Thatâs the opposite concept of building an api that empowers the community to do their own data driven analysis. All Iâm asking for is that they expose the data weâre already shown, without aggregating it against our career profile.
It was unlikely from the communities perspective. What was that Jeff quote? Donât see the world for what it is, but for what it could be?
Yet Iâm talking about building an api to allow players to pull (or authorize an app to pull) their data, a la overbuff.
That is precisely the type of third party tool Iâm saying an api like this would allow people to build.
When you have several variables and datasets, you try to keep your base more consistent as possible. If one in a million entries would use a particular âvariableâ or âentryâ on the base you are spending resources of each entry to satisfy that individual entry.
Paretoâs Principle, with 20% resources you satisfy 80% of the situations. Planning more resources for those other 20% situations itâs not wise, considering that could had be done on other ways.
That was the logic of that statement.
That is filtered data, while they could have âtimeframeâ or âlog of that dataâ already. Itâs unwise to use other kind of metric. You would spend too much resources to satisfy 20% of the situations. They have raw data, if they have raw data of each entry that kind of filter would just need âdate-rangesâ, that most likely the case on competitive seasons by example prior to having all those actually, while having several competitive modes you would have to tag them by mode and time ranges or a variable specifing what season is.
Thatâs the difference between âstoringâ A+B+C(itâs comp? itâs that mode? itâs season x? utâs within this date-range?) against A+B (itâs comp? itâs that mode? itâs within this date-range?) to A (itâs comp? itâs within this date-range?)
Having more variables instead of using already created data itâs expensive. Because whatâs the purpose of store certain data if they can fetch that data on other ways?
The analogy was about raw footage and raw data. Using those data to generate the information that are showed for us. The website data alone, can give a ton of information, but wouldnât have information like âwho killed youâ and âwho as killed from youâ by example. For that we could get from a replay by example.
Tastes, what kind of hero you pick more often, several marketing and preferences can be picked from it. Remember that they sell several products, do skins and stuff like that. Knowing what kind of thing most folks get attracted to it means more info about their âprofileâ tastes. Any data if used wisely would provide a ton of benefits.
Win rates, makes folks assume forced/rigged matches, Match history makes folks assume rigged system of enforcing victories and defeats in a row.
You can make it without mentioning anyone, but still you trace a âprofileâ. That profile itâs gold, on in this case can mean âmoneyâ.
They do balance changes considering those aspects by example. Jeff already said in the past that winning rates on each mode differs from others, defense and attack also has different winning odds. They use that kind of data to adapt the matchmaking to give the players between 40-60% âstarting oddsâ. Trying to have a fair match for them.
Replay matches have different stances, isnât just one replay per game. If you play with 5 folks and be located on different regions accross the world, each player would have different replay. Thatâs why can be tricky to narrow down some hacks. Often when I would report someone using hack I ask for 2-3 friends on the match about their replay, we live way far from each other, the info I get can be different of what happened. Having more 2-3 samples can help me to narrow down what happened on server side of it.
So they have at least 12+1 versions of what happened on the match, what each player saw and what actually happened. At least on replay wise.
If was just one stream, the data would be consistent between several players with different latencies and each replay from them would have the same code as yours, which isnât the case.
I even think they store some part of it on the userâs machine but only playable through in game engine.
In theory, itâs what watson would do. As spectator in the match registering those kind of things picking the log from the match, based on damage done of each player, the kill log.
The game doesnât use that kind of metric on anything else, so itâs plausible to have either access to game log or be a espectator on it.
On replay could have done and pick on those, also. Considering that most of league statistics are confrontation of consolidated data to the current stream of data done by Watson.
Also OWL matches happens some minutes prior to the match happening, to avoid any kind of cheating or gathering intel prior to the match.
They most likely have, just not explicity. Just having âan averageâ stat or a per minute metric already shows they âcountâ and have some patterns on it. They have timestamps for each match and events. Thatâs for sure, other than that they wouldnât bother to create a variable to fetch that data. The stats we see are filtered data, they could provide more filtered data or the simple raw data, but again raw data has itâs own benefits to be hidden.
Roadhog stats against reaper hinted that he was a counter for reaper. Right now if he donât kill on his first sequence the table turns to reaperâs favor. That kind of data they have based on information on the perks of those heroes. When they nerf something they account those kind of things. Thatâs why animation duration have a ton of impact and often players try to abuse it.
We can gauge based of experimentation and several tests, because they donât provide the raw data about it. Thatâs the point. Anybody right now can do any of those metrics you asked for, but would be tiresome and would be based on the period it started and the period it ended, considering the variance of previous values to the newer values.
Yep, match specific metrics can only be obtained by the log of the match or replay. At least as far Iâm aware. They could have some specific data that eventually would be merged to the database to create the average metric, but certain specifics of who killed who and where the shot was landed, itâs a fair assumption they donât store it. Not after the match, maybe as temp state on memory for something like 20-30 seconds. Which would happen based on the object state function they explained on some old GDC video.
Well, at least itâs most likely the way theyâre picking those data. Considering that watson itâs being used on those stats you mentioned.
Thatâs why I said that itâs really unlikely based on the range. Itâs unreasonable to consider it even on Competitive stats because the size sample of it.
That could be built, still even on OWL they use watson for that kind of stuff. How they feed watson with it we canât know for sure, only especulate. Still itâs a fair assumption that if that kind of data was easily obtainable they wouldnât use Watson in the first place. You get what Iâm saying?
Each âobject playerâ have states, those states can be related with other object states. Those interact with each other for short periods of time. Those states are discarded after grace period of time. Using watson to fetch those data related to Player A as Hanzo killing with Storm Arrows the Player B as Moira and count the occurence of it on each match, getting how many times on âthe seasonâ happened it can be done. Outside of the match will be not that easy, mostly because they wouldnât link Player B deaths as victim of Storm Arrows, that particular âstatâ would be on Player A without any reference of Player B, while Player B would have only âdeathâ without any reference of Player A.
Having a smaller sample and the compute power of Watson you can get that data being fetched, treat that data and relate it to a specific hero itâs doable. Stat that otherwise would just say: âPlayer X killing with Storm Arrowsâ instead of âPlayer X killing with hanzoâs Storm Arrows particular hero or playerâ
My argument itâs that most likely they donât have particular data, without watson, similar to those examples:
Those are state data, not raw data. They donât preserve state data. Itâs how their code works. Thatâs why using workshop you can by example put several players or bots to sleep if by example those players are tank role. You can effectively make all tank heroes in a single match be at sleep state or just being killed. Each state data gets âerasedâ and not saved. What you save itâs consequence, like I mentioned above. Hanzo has stats on itâs Storm Arrows killing but not stats of itâs victims, because they donât save that kind of data and perk around it, at least as far they explained on GDC conference.
Well, where he is and what happened with his game? Makes me sad that he had a good intent and idea, but money dictates the world.
Unless they change how to interact with states and decide to save them, folks wouldnât be able to fetch that kind of data from it. I think I explained better this time, why.
English isnât my first language and I often interact with several ones at same time, can be tricky to type properly while doing other stuff.
Which they are being careful about it, after âDOTAâ some changes were done to protect their IP, takes awhile for them âto preventâ those kind of events. I canât say âtheyâre wrongâ by adopting that kind of defensive instance tho.
I can tell you know what youâre talking about, but it doesnât seem like weâre on the same page. It feels like we are talking about two different concepts, so I donât really think itâd be useful for me to respond
They canât give data they donât persistently save. Certain aspects you asked they save on âstatesâ that arenât saved anywhere on a physical disk by example, was a temporary allocation on the memory. Unless they put more fields on the database to save those data. The api will not fetch that kind of data. If they had those data, they wouldnât need Watson to give those data on OWL.
The game doesnât have a âstorageâ location for it, itâs a temporary state that most likely Watson catches.
Having a powerful API, wouldnât provide most of the data you considered, because wouldnât be able to fetch it.
I appreaciate the kind response even if you couldnât understand what I meant on the previous post.
More importantly than a developer API: some public, anonymised stats about Competitive mode would be fantastic. Things like hero usage, winrate (per hero, per map, attack/defend, mode, etc).