Closed PierreAndreis closed 6 years ago
DealDamage event now has variable Delt renamed to Dealt inside of payload.
This is a breaking change in the schema and will need to be supported for 4 more months… It's too late now, but always a :-1: from me for backwards incompatible schema changes that don't add or replace a different attribute with a different meaning. This was too minor of an issue to justify a schema change in my opinion.
I think any minor issue should be fixed now before they become more of a snowball that it is already. We still in Alpha, this is still the best time. But if anyone else think this should NOT be fixed, then I can get it reverted back to Delt
Honestly, I agree with shutter -- this exact issue was raised months ago by Nathan, and we were told at the time (by genexp) that it was going to stay as it was, and the issue was closed.
And can we PLEASE stop invoking the "it's in alpha" as an excuse for wrecking code that has worked for months?
It's not an excuse to wreck code, its a reason to give us the possibility to make those small changes. I believe we SHOULD have this fixed, not only that, but all other minor issue so when we get out of Alpha we can have a more perfect API. I will see if I can get that reverted.
I'm glad @PierreAndreis is working hard to get some of the low hanging stuff patched. (Thank you!!!) That said, I get the pain here, and if you want I can actually revert this on the gamelocker side. I can globally find replace "dealt" with "delt" in the telemetry as it's ingested. Sound good?
@genexp I am a bit confused here. The little time SEMC gets to focus on fixing the API now we are reverting their fixes. Why? Things will break and that's the nature of choosing to work with alpha products. We should not be replacing fixed stuff with broken stuff.
Maybe create another field alongside the correct dealt
and call this new field delt
that has the same value. In the next update, 2.10 delt
becomes deprecated. Everyone has time to accommodate to the change. But do not replace correct info with incorrect info, please. If SEMC fixes something we should celebrate not unfix it to be broken.
I will see if I can get that reverted.
For me, you don't need to revert. I will find the time to make the necessary changes. I am just worried about newcomers and the general pace of changes. So far, Telemetry had only two schemas (first version, then the version with hero bans — and some changes with the item, hero and ability names). Every time the schema changes, clients have to support both schemas. For almost half a year. Even if a dev starts next week, they gain nothing from a friendlier attribute name, because past data isn't rewritten [which is the real issue here].
when we get out of Alpha
Telemetry has been stable for months, the gamelocker major version is 6… I am not sure anymore what "this API is alpha" refers to, because my idea of an alpha stage is different. Irrelevant to the current issue though.
I'm glad PierreAndreis is working hard to get some of the low hanging stuff patched.
Agreed. It's awesome that you do it for everyone, and even if I critizise you (or rather, the work you represent), I'm still glad that progress is made.
From an outside perspective… I find it troubling that you have to do it. It isn't officially your job. It's great that you do it, and you probably enjoy it, but you shouldn't need to. I want to critizise that it is very problematic and a sign of bad health that we need to rely on a community developer that happens to be employed by SEMC to communicate between MadGlory's customers and SEMC. What if you lose interest, get sick or want an advantage over other developers — I trust you to not be that guy, yet it's a possibility — that is just not right. There should be an official partner for us or a mail address (with you behind it?) for us to rely on for data level technical support. The critique is mostly targeted at @genexp.
It's all a definition of the seriousness of the API.
Is it for hobbyist, where everyone helps each other, the code breaks and everyone is more concerned about the technical challenged than getting the services running again?
Or is it a professional API, where consumers rely on uptime, support and well-communicated issued and changes, and can trust to be given the freedom to expand and commercialize?
For me, it's always been the latter, with thousands of pageviews every day, large scale applications, schema versioning, and plans for monetization of every consumer by MadGlory. Maybe I have been wrong the whole time (which could explain my frustration), but that makes the API lose all its attractiveness for me for any complex web application (as they currently exist).
Thanks Pierre.
Seeing that Delt
isn't the only change, it's acceptable to introduce a new schema.
Telemetry:
DealDamage
event now has variable Delt renamed to Dealt inside of payload.{ "time": "2017-09-23T20:12:42-0700", "type": "DealDamage", "payload": { "Team": "Left", "Actor": "*Samuel*", "Target": "*Reza*", "Source": "Unknown", "Damage": 80, "Dealt": 69, "IsHero": 1, "TargetIsHero": 1 } }
Fixed misspelling on
BuyItem
variableRemainingGold:
toRemainingGold
Rename
Shared With
variable fromEarnXP
toSharedWith
Kraken damage is now included in
DealDamage
HealTarget
is a new event. This is what it will look like:Buff_SpawnStage_Recharge
is a game buff. It's the healing buff the hero gets when it goes to spawn location. I recommend skipping it when calculating the total healing a hero dealt.[{ "time": "2017-09-23T19:45:15-0700", "type": "HealTarget", "payload": { "Team": "Right", "Actor": "*Vox*", "TargetActor": "*Vox*", "TargetTeam": "Right", "Source": "Buff_SpawnStage_Recharge", "Heal": 24, "Healed": 24, "IsHero": 1, "TargetIsHero": 1 } },
Some events are from actor unknown because they don't have an owner, but you can clearly see that it came from a jungle camp.
{ "time": "2017-09-23T19:45:15-0700", "type": "HealTarget", "payload": { "Team": "Unknown", "Actor": "Unknown", "TargetActor": "*Grumpjaw*", "TargetTeam": "Right", "Source": "Buff_JungleMinion_TreeEnt_Restore", "Heal": 32, "Healed": 32, "IsHero": -1, "TargetIsHero": 1 } },
Fountain is also included. Since it is overtime heal, it will be a series of event with each second heal
{ "time": "2017-09-23T19:44:21-0700", "type": "HealTarget", "payload": { "Team": "Left", "Actor": "*Lyra*", "TargetActor": "*Lyra*", "TargetTeam": "Left", "Source": "Buff_Item_FountainOfRenewal", "Heal": 59, "Healed": 59, "IsHero": 1, "TargetIsHero": 1 } },
Same thing for abilities overtime heal, like Lyra:
{ "time": "2017-09-23T19:44:20-0700", "type": "HealTarget", "payload": { "Team": "Left", "Actor": "*Lyra*", "TargetActor": "*Baptiste*", "TargetTeam": "Left", "Source": "Buff_Lyra_SpiritFlame", "Heal": 8, "Healed": 8, "IsHero": 1, "TargetIsHero": 1 } }]
Barriers, fortified health or any other buff that is not a direct Heal it is not included on this event.
Heroes:
*Churnwalker*
ChurnwalkerSkins:
Churnwalker_DefaultSkin
Perk:
Abilities:
HERO_ABILITY_CHURNWALKER_A_NAME
Hook & ChainHERO_ABILITY_CHURNWALKER_B_NAME
- TormentHERO_ABILITY_CHURNWALKER_C_NAME
- TrespassDamage Sources:
Ability__Churnwalker__DefaultAttack
Ability__Churnwalker__AltAttack
Ability__Churnwalker__CritAttack
Ability__Churnwalker__A
Ability__Churnwalker__B
Ability__Churnwalker__C
Buff_Churnwalker_ChainTether
Skins:
Lyra_Skin_Autumn_CHN
Moon Empress LyraLyra_Skin_Autumn_JPN
Moon Goddess LyraLyra_Skin_Autumn_KOR
Moon Queen LyraBaptiste_Skin_Scarecrow
Baptiste ScarecrowBaron_Skin_Heli
Baron Fly Or DieItems:
*Item_DragonsEye*
DragonsEye*Item_Spellfire*
SpellfireEcho Image change
TBD