Jump to content
DenDen128

Please reconsider network disconnection "autoloss" on W-L streak stats (and ratings), because hacking is a thing

Recommended Posts

DenDen128

Hello denizens of Pokemon TCGO,

 

Late last night while playing my current experimental "There Is No Spoon" ninja deck, I won 10 Versus matches in a row. It should have been 15 before I went to bed, but my streak was interrupted by an autoloss when my network disconnected during a game I was about to win bigly. I think I was hacked. Which is annoying. It's even more annoying if the hacker gets away with it, long term, or is incentivized to hack other players because the W-L streak rating system punishes me for "losing" or gifts him a win for hacking me. 

 

Winning 10 in a row is rare for me, in the year or so I've been playing Pokemon TCGO. Perhaps 2-3 times over n-thousand matches? Therefore, I suppose 10+ win streaks are relatively rare in general. Therefore, I suppose long win streaks are special, so a kind of valuable to community members. (Tangent: it would be fun to be able to see a list of longest streaks, by player, or theme/deck, year, meta etc.)

 

Anyway, I was proud of myself and my piddly 10+ game streak and keen to show my young son (my Coach) today after school, that we had achieved a personal best win streak-- and to continue the streak together before mom gets home from work. 😉

 

What comes next may sound like conspiracy theory. It may even BE conspiracy theory. But please look past the specifics of my anecdote, and think about the higher-level game interactions, and incentives we create for bad actors (hackers) to game the system, and undermine the community-- which is the best part of Pokemon in my opinion. Because whether or not I was hacked last night by a sore loser, if it's technically doable -- and it is -- then over time the probability is 100% this is happening in Pokemon TCGO community. If that's true, we should take this seriously and do everything possible to prevent it. 

 

Are we? 

 

Game summary:

 

Our experimental ninja deck relies on Marshadow-GX using diverse attacks from a large number (10-20+) basic Pokemon in the discard, and random energy attach patterns. Given the prevalence of Tag Team cards/decks, our deck relies heavily on the Latios-GX attack Tag Purge. It allows "little" Marshadow-GX to win against powerful Tag Team cards/decks, while avoiding Latios-GX requirement to have a lot of Pokemon in play. (Thus exposing a lot of Prize Cards for the taking.) Our deck also relies heavily on MewTwo-EX Damage Change attack* to self-heal when the Defending Pokemon has no damage counters. Thus, their healing is our healing too, and we don't have to run healing cards in our deck, and can finagle more Pokemon into the Discard.

 

* See post-script note (at bottom) for possible bug report on Damage Change, with regard to game stats not card play. 

 

Last night, after both players were set up perfectly, say five turns in, we began to attack each other in earnest. I had the upper hand. I was unquestionably about to win (again) against my Opponent, whose very-expensive deck featured powerful Tag Team cards, and a number other expensive non-TT GX cards and meta-trendy consistency/acceleration cards. As I recall, my Opponent had MegaSableye & Tyranitar-GX TT active with 5 Darkness energies in the active, plus two Reshiram & Charizard-GX TTs with some energy, and Pikachu & Zekrom-GX TT with some energy; and IIRC, Dedenne-GX and Tapu Lele-GX benched. If he hadn't looked thru my Discard he would have been very confident indeed. This is precisely the type of deck we're building "There Is No Spoon" to reliably defeat.

 

My Opponent had just used the awesome Greedy Crush attack, and was expecting to KO our active Marshadow-GX and take an extra Prize Card, and steamroll into our shrimpy bench of one-ofs, but Marshadow blocked the attack using Latios-GX Tag Purge effect. This works great.

 

What typically happens next is about 50% "rage quit" (ie scoop, concede) and 50% pivot to alternate non-TT attackers. In fact, gusting followed by bench damage is the only way to consistently beat our Marshadow-GX deck, because otherwise he just uses Tag Purge and/or Damage Change again. Gusting simply wasn't going to work for my Opponent in this game because I intentionally had fewer than 6 Prize Cards vulnerable (in play) and would inevitably recreate the win condition above in a turn or two. Conversely, my Opponent had no fewer than 16 Prize Cards vulnerable (in play), and no credible alternate attackers. Game over, just a matter of time.

 

5 seconds later, my entire home network suddenly went down.

 

That's never happened before. Not my wifi, or my computer-- my external network connection to the internet.

 

Either, this was totally random, purely coincidence; or, my opponent alt-tabbed out of the game and borked my (fiber) modem. Which is not just rude, but literally criminal.

 

This may sound crazy, but as somebody who's been playing video games for decades and works in the technology industry... it's possible. Of course they'd need my IP address, which is doable. This type of thing used to happen frequently in the early days of [CERTAIN-CONSOLE-PLATFORM] for example, or any number of multiplayer [CERTAIN-OPERATING-SYSTEM] games where injected lag could kill/win. I think that's what happened to me last night.

 

Is this common, or unheard of? I'm relatively new to this game, and haven't searched thru the forums.

 

I don't imagine the Pokemon TCGO company has any records of what happened in my game last night. I don't have a game log (because I was disconnected mid-game). Neither did I happen to be running a packet sniffer or firewall logger at that time. So, assuming for a minute I WAS actually hacked, he (or she) got away with it. "Scot Free." I don't recall their username/Avatar details, unfortunately.

 

The point is: I'd like to community leadership and game product management team to reconsider awarding steak-breaking autolosses to players disconnected mid-game. While that is reasonable (if only to avoid creating an incentive for players to intentionally disconnect or shut down while losing) it creates an opportunity and incentive for malicious technically-capable people to avoid losing by forcing their opponent to disconnect. Which while probably rare, is a thing. 

 

A better long-term mitigation strategy would be to have some concept of an interrupted match, which needs to be either resumed at the precise state it was interrupted; or replayed from the beginning (which may avoid state-specific game or card bugs which sometimes crash the game/client) between the two players, before any W-L streak statistics are finalized. Expressed as a feature request, this could be an automatically-suggested Versus match, originating centrally, requiring both players to to accept. That's technically easy to implement. Harder is knowing when, and why this should happen. This implies logging all abandoned games centrally (match-state hash in the cloud) or locally (both client-state hashes on each end) or both, pros and cons, but it's not rocket science. 

 

Doing something better here, than what we have now, would be a better user experience than inferring W-L results and ending win streaks spuriously.

 

It would also tend to identify over time the repeat bad actors to the company. It would be trivial to increment "karma counters" or set flags on accounts demonstrating either inconsistent connection integrity (often blameless, but annoying as abandoned games waste time) or malicious/suspicious telemetry. I suppose the company is currently tracking cumulative stats on which players, for example, repeatedly concede <1 min into their Versus matches, and understands the data science / game theory motivating this behavior. (I assume this has something to do with gaming the ratings system, to increment their cumulative rating without spending time actually playing. This is unfun for those of us who actually like to play, before winning.) The company may not care, or want to do anything to "punish" elective early-concede choices, but I suggest the company ought to care about and squelch all hacking. Which means the client app either needs to have sophisticated cybersecurity features built into it (which is probably a bad idea); OR the centralized match-management system needs big-data logging, in the cloud, and match-resumption features added and/or introspection tools for company employees to identify and ban hackers (which is probably a good idea).

 

I believe all of the above is true and worth discussing, regardless of the true cause of my network outage last night. It could have been random. But I doubt it. 

 

If for some reason this topic is off-limits, I apologize.

 

Thoughts?

 

Your feedback welcome,

 

DenDen128

 

p.s. Unrelated topic, as mentioned above: MewTwo-EX Damage Change consistently causes weird total damage stats, both per game, and lifetime for my account profile. I am routinely winning matches by Prize/KO with NEGATIVE total damage, by shifting large amounts of damage counters off Marshadow-GX and MewTwo & Mew-GX TT to KO multiple defending Pokemon.

 

If the damage total stats per match or lifetime are to mean anything (eg. we care about the match summary stats and MVP selections etc, or in any way contribute to player ratings, or finding suitable opponents for Versus matches) we ought to think of a better way to track subtracted and moved damage. (Perhaps, is this a form of healing?) This is complicated by the asymmetry of counter-moving due to certain effects-blocking cards/abilities/attacks. For example, Marshadow-GX (and MewTwo & Mew-GX) can throw damage counters into a blackhole when facing certain Pokemon who prevent their receive-counters half of the Damage Change effect but not the remove-counters half. It's not clear to me where this damage is tallied at the end of the game. It appears the "positive" damage (counters put onto Pokemon in play) is attributed correctly to the attacker/creator, but the "negative" damage (counters moved or removed entirely from play) is attributed to the mover and subtracted from the total damage done in the match. Which is weird. Ending games with negative damage totals is weird. I assume the card effects are working as intended, but are the game stats?

 

Mods, feel free to split this topic out into a new thread if appropriate. Or ignore if old news.

 

Edited by DenDen128
changed title

Share this post


Link to post
Share on other sites
XK920XK

ill make this short, if network disconnections didnt count against your win streak, people would just disconnect themselves to avoid losing their win streaks. plain and simple.

  • Upvote 1

Share this post


Link to post
Share on other sites
Mod_GuruLot
On 11/6/2019 at 11:06 PM, XK920XK said:

ill make this short, if network disconnections didnt count against your win streak, people would just disconnect themselves to avoid losing their win streaks. plain and simple.

 

Hello @XK920XK

 

Thank you for making a long story short! :)

 

That's definitely the essence. 

Share this post


Link to post
Share on other sites
Mod_GuruLot
On 11/6/2019 at 8:30 PM, DenDen128 said:
Spoiler

 

Hello denizens of Pokemon TCGO,

 

Late last night while playing my current experimental "There Is No Spoon" ninja deck, I won 10 Versus matches in a row. It should have been 15 before I went to bed, but my streak was interrupted by an autoloss when my network disconnected during a game I was about to win bigly. I think I was hacked. Which is annoying. It's even more annoying if the hacker gets away with it, long term, or is incentivized to hack other players because the W-L streak rating system punishes me for "losing" or gifts him a win for hacking me. 

 

Winning 10 in a row is rare for me, in the year or so I've been playing Pokemon TCGO. Perhaps 2-3 times over n-thousand matches? Therefore, I suppose 10+ win streaks are relatively rare in general. Therefore, I suppose long win streaks are special, so a kind of valuable to community members. (Tangent: it would be fun to be able to see a list of longest streaks, by player, or theme/deck, year, meta etc.)

 

Anyway, I was proud of myself and my piddly 10+ game streak and keen to show my young son (my Coach) today after school, that we had achieved a personal best win streak-- and to continue the streak together before mom gets home from work. 😉

 

What comes next may sound like conspiracy theory. It may even BE conspiracy theory. But please look past the specifics of my anecdote, and think about the higher-level game interactions, and incentives we create for bad actors (hackers) to game the system, and undermine the community-- which is the best part of Pokemon in my opinion. Because whether or not I was hacked last night by a sore loser, if it's technically doable -- and it is -- then over time the probability is 100% this is happening in Pokemon TCGO community. If that's true, we should take this seriously and do everything possible to prevent it. 

 

Are we? 

 

Game summary:

 

Our experimental ninja deck relies on Marshadow-GX using diverse attacks from a large number (10-20+) basic Pokemon in the discard, and random energy attach patterns. Given the prevalence of Tag Team cards/decks, our deck relies heavily on the Latios-GX attack Tag Purge. It allows "little" Marshadow-GX to win against powerful Tag Team cards/decks, while avoiding Latios-GX requirement to have a lot of Pokemon in play. (Thus exposing a lot of Prize Cards for the taking.) Our deck also relies heavily on MewTwo-EX Damage Change attack* to self-heal when the Defending Pokemon has no damage counters. Thus, their healing is our healing too, and we don't have to run healing cards in our deck, and can finagle more Pokemon into the Discard.

 

* See post-script note (at bottom) for possible bug report on Damage Change, with regard to game stats not card play. 

 

Last night, after both players were set up perfectly, say five turns in, we began to attack each other in earnest. I had the upper hand. I was unquestionably about to win (again) against my Opponent, whose very-expensive deck featured powerful Tag Team cards, and a number other expensive non-TT GX cards and meta-trendy consistency/acceleration cards. As I recall, my Opponent had MegaSableye & Tyranitar-GX TT active with 5 Darkness energies in the active, plus two Reshiram & Charizard-GX TTs with some energy, and Pikachu & Zekrom-GX TT with some energy; and IIRC, Dedenne-GX and Tapu Lele-GX benched. If he hadn't looked thru my Discard he would have been very confident indeed. This is precisely the type of deck we're building "There Is No Spoon" to reliably defeat.

 

My Opponent had just used the awesome Greedy Crush attack, and was expecting to KO our active Marshadow-GX and take an extra Prize Card, and steamroll into our shrimpy bench of one-ofs, but Marshadow blocked the attack using Latios-GX Tag Purge effect. This works great.

 

What typically happens next is about 50% "rage quit" (ie scoop, concede) and 50% pivot to alternate non-TT attackers. In fact, gusting followed by bench damage is the only way to consistently beat our Marshadow-GX deck, because otherwise he just uses Tag Purge and/or Damage Change again. Gusting simply wasn't going to work for my Opponent in this game because I intentionally had fewer than 6 Prize Cards vulnerable (in play) and would inevitably recreate the win condition above in a turn or two. Conversely, my Opponent had no fewer than 16 Prize Cards vulnerable (in play), and no credible alternate attackers. Game over, just a matter of time.

 

5 seconds later, my entire home network suddenly went down.

 

That's never happened before. Not my wifi, or my computer-- my external network connection to the internet.

 

Either, this was totally random, purely coincidence; or, my opponent alt-tabbed out of the game and borked my (fiber) modem. Which is not just rude, but literally criminal.

 

This may sound crazy, but as somebody who's been playing video games for decades and works in the technology industry... it's possible. Of course they'd need my IP address, which is doable. This type of thing used to happen frequently in the early days of [CERTAIN-CONSOLE-PLATFORM] for example, or any number of multiplayer [CERTAIN-OPERATING-SYSTEM] games where injected lag could kill/win. I think that's what happened to me last night.

 

Is this common, or unheard of? I'm relatively new to this game, and haven't searched thru the forums.

 

I don't imagine the Pokemon TCGO company has any records of what happened in my game last night. I don't have a game log (because I was disconnected mid-game). Neither did I happen to be running a packet sniffer or firewall logger at that time. So, assuming for a minute I WAS actually hacked, he (or she) got away with it. "Scot Free." I don't recall their username/Avatar details, unfortunately.

 

The point is: I'd like to community leadership and game product management team to reconsider awarding steak-breaking autolosses to players disconnected mid-game. While that is reasonable (if only to avoid creating an incentive for players to intentionally disconnect or shut down while losing) it creates an opportunity and incentive for malicious technically-capable people to avoid losing by forcing their opponent to disconnect. Which while probably rare, is a thing. 

 

A better long-term mitigation strategy would be to have some concept of an interrupted match, which needs to be either resumed at the precise state it was interrupted; or replayed from the beginning (which may avoid state-specific game or card bugs which sometimes crash the game/client) between the two players, before any W-L streak statistics are finalized. Expressed as a feature request, this could be an automatically-suggested Versus match, originating centrally, requiring both players to to accept. That's technically easy to implement. Harder is knowing when, and why this should happen. This implies logging all abandoned games centrally (match-state hash in the cloud) or locally (both client-state hashes on each end) or both, pros and cons, but it's not rocket science. 

 

Doing something better here, than what we have now, would be a better user experience than inferring W-L results and ending win streaks spuriously.

 

It would also tend to identify over time the repeat bad actors to the company. It would be trivial to increment "karma counters" or set flags on accounts demonstrating either inconsistent connection integrity (often blameless, but annoying as abandoned games waste time) or malicious/suspicious telemetry. I suppose the company is currently tracking cumulative stats on which players, for example, repeatedly concede <1 min into their Versus matches, and understands the data science / game theory motivating this behavior. (I assume this has something to do with gaming the ratings system, to increment their cumulative rating without spending time actually playing. This is unfun for those of us who actually like to play, before winning.) The company may not care, or want to do anything to "punish" elective early-concede choices, but I suggest the company ought to care about and squelch all hacking. Which means the client app either needs to have sophisticated cybersecurity features built into it (which is probably a bad idea); OR the centralized match-management system needs big-data logging, in the cloud, and match-resumption features added and/or introspection tools for company employees to identify and ban hackers (which is probably a good idea).

 

I believe all of the above is true and worth discussing, regardless of the true cause of my network outage last night. It could have been random. But I doubt it. 

 

If for some reason this topic is off-limits, I apologize.

 

Thoughts?

 

Your feedback welcome,

 

DenDen128

 

p.s. Unrelated topic, as mentioned above: MewTwo-EX Damage Change consistently causes weird total damage stats, both per game, and lifetime for my account profile. I am routinely winning matches by Prize/KO with NEGATIVE total damage, by shifting large amounts of damage counters off Marshadow-GX and MewTwo & Mew-GX TT to KO multiple defending Pokemon.

 

If the damage total stats per match or lifetime are to mean anything (eg. we care about the match summary stats and MVP selections etc, or in any way contribute to player ratings, or finding suitable opponents for Versus matches) we ought to think of a better way to track subtracted and moved damage. (Perhaps, is this a form of healing?) This is complicated by the asymmetry of counter-moving due to certain effects-blocking cards/abilities/attacks. For example, Marshadow-GX (and MewTwo & Mew-GX) can throw damage counters into a blackhole when facing certain Pokemon who prevent their receive-counters half of the Damage Change effect but not the remove-counters half. It's not clear to me where this damage is tallied at the end of the game. It appears the "positive" damage (counters put onto Pokemon in play) is attributed correctly to the attacker/creator, but the "negative" damage (counters moved or removed entirely from play) is attributed to the mover and subtracted from the total damage done in the match. Which is weird. Ending games with negative damage totals is weird. I assume the card effects are working as intended, but are the game stats?

 

 

Mods, feel free to split this topic out into a new thread if appropriate. Or ignore if old news.

 

 

Hello @DenDen128

 

Thank you for taking the time to share your suggestion with the forum. 

 

I'm passing this along to our development team for further review. 

Share this post


Link to post
Share on other sites
DenDen128

I think you're both missing the point, that players don't NEED to be punished for disconnecting themselves to avoid losing. Or rewarded for force-disconnecting their opponents. Those are both consequences of the way we (ie the game as designed and currently implemented) handle interrupted games.

 

There are many other ways to handle (and count, and resolve, or resume) interrupted games. If we had any one of them implemented, then we would have a strong signal about motivations/intent, and repeat behavior over time.

 

Players with flakey connections should be treated differently (over time) than players who disconnect on purpose repeatedly; and players whose opponents repeatedly "mysteriously disconnect" right before winning. Right now we (presumably)  aren't tracking this data. It would be easy to do so.

 

Then, the "essence" you refer to would be different. It would be better. And the devs and brand execs could choose what to do about the reality of what's actually happening in the community. That's impossible when we treat all disconnections as autolosses regardless of cause and frequency. Imagine if car insurance worked this way?!?

Share this post


Link to post
Share on other sites
Otakutron
1 hour ago, DenDen128 said:

I think you're both missing the point, that players don't NEED to be punished for disconnecting themselves to avoid losing

 

We're not talking about a player being free to quit whenever they want, we're talking about safeguards to prevent players quitting to misuse the in-game reward system.  We've seen folks try to do that before, and it didn't go well for them, and sometimes, not for us either.

 

So yes, there would most likely need to be a way for the PTCGO to easily distinguish between someone being disconnected by an external factor versus just powering down their own device, disabling their own internet, etc.

 

1 hour ago, DenDen128 said:

And the devs and brand execs could choose what to do about the reality of what's actually happening in the community. That's impossible when we treat all disconnections as autolosses regardless of cause and frequency. Imagine if car insurance worked this way?!?

 

Your comparison is faulty.  The PTCGO is a free-to-play service with added benefits for those who purchase physical Pokémon TCG product first hand i.e. Redemption Codes.  The Win Streak Bonus is just that: a bonus.  The Dev Team has finite time and resources to tweak the game, and perhaps since I am not a coder, I always expect things to be more difficult than they look.  So... yeah, make the Win Streak Bonus a problem, it might become another lost feature.

Edited by Otakutron

Share this post


Link to post
Share on other sites

×
×
  • Create New...