On cartridge-accurate HP reporting

Eo Ut Mortus

Elodin Smells
is a Programmeris a Tournament Director Alumnusis a Site Content Manager Alumnusis a Senior Staff Member Alumnusis a Community Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis a Battle Simulator Moderator Alumnusis a Past SCL Championis a Past WCoP Champion
Zarel said:
And the "impartial judge" argument is preposterous. If you said you wanted to take back a decision, that's a reasonable request. If you said you wanted someone to go look at your opponent's screen and tell you how much HP they had, you'd get laughed out of the room.
Just for the record, that's absurd reasoning; both are equally "preposterous." I also doubt people actually submit their moves to an impartial judge when battling face-to-face. Ridiculousness is completely subjective; capability is the only basis upon which such practices can be evaluated.

I argue that using exact, non-rounded percentages (but not showing the exact HP) would be the most beneficial to competitiveness. As long as damage calculation is accepted and allowed, there is no argument that imprecision can be any beneficial to decision-making and, by proxy, player skill: it just forces the player to make a complete guess from a range of possible hitpoint values.

If the goal is to truly simulate the game or reduce the amount of "trivial accounting" performed within games, then I think a further step should be taken, and pixels/percentages should be eliminated completely. Users shouldn't be spoon-fed this information; they should actually be forced to estimate or directly measure the length of HP bars and compute HP accordingly.
 

Rhys DeAnno

Slacking Off
There are plenty of other cartridge mechanics that are far more obnoxious than 48-space hp bars, and we tolerate them just fine. Critical hits and secondary effects discourage passive play and switching to keep battles rolling. Moves with miss rate force battlers to evaluate risk and reward when designing a team. Random damage rolls make it harder to back calculate an EV opposing EV spread with certainty.

Slightly obscured hp serves to help cloud the certainty one might get from back calculations, and is another risk-reward mechanic tied in with damage rolls when you aren't sure of getting a kill or not. If we are going to play cartridge accurate pokemon with crits and misses and scald burns then we might as well go the whole nine yards instead of just eight and a half and represent hp out of 48 instead of 100. If you're going to PO because you want there to magically be an hp bar twice as fine, you might as well ask them to implement a critless ladder too.
 

Firestorm

I did my best, I have no regrets!
is a Site Content Manager Alumnusis a Social Media Contributor Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Battle Simulator Moderator Alumnus
Impartial judge argument has always been ridiculous.

If the goal is to truly simulate the game or reduce the amount of "trivial accounting" performed within games, then I think a further step should be taken, and pixels/percentages should be eliminated completely. Users shouldn't be spoon-fed this information; they should actually be forced to estimate or directly measure the length of HP bars and compute HP accordingly.
Impossible as per Cathy's post and mentioned more than once already. Otherwise, I agree that this is the best way to represent this information. Ideally with a shadow so we can see where the HP bar was before that turn to best assess how much damage was done (hp animations are too fast on simulators to figure it out otherwise).
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
I argue that using exact, non-rounded percentages (but not showing the exact HP) would be the most beneficial to competitiveness.
Uh, if you know how fractions work, you should know that it's possible to find the exact HP and max HP (and thus deduce HP EVs) from an exact percentage.

Even with a rounded percentage, if there's enough precision (i.e. resolution higher than maxhp), you can usually figure it out with enough samples. I'm pretty sure that in LC, there are situations where you can figure out someone's max HP from a rounded-to-100ths percentage that you couldn't in the actual games. I think this is the main reason why Game Freak's stuck to 48 pixels for five generations, actually.
 
Just for the record, that's absurd reasoning; both are equally "preposterous." I also doubt people actually submit their moves to an impartial judge when battling face-to-face. Ridiculousness is completely subjective; capability is the only basis upon which such practices can be evaluated.
Actually subjectivity is pretty great, and I think any good-faith Policy Review participant will find a rather difficult time of disagreeing with Zarel here. A 'cancel' feature is a convenience which, if replicated in the real world, would 'subjectively' be more-or-less reasonable (more importantly, its gameplay impact is completely negligible, putting it well within the realm of pure convenience-- totally appropriate for implementation in a simulator). By contrast, actually having a judge calculate the health percentages for each player every single turn really would be quite ridiculous. Do you disagree? Subjectively speaking, it simply does not make very much sense to implement a gameplay-altering 'convenience' which would never see the light of day in an actual cartridge match to begin with. Do you disagree?

Now I know Smogon is kind of allergic to this sort of 'fuzzy' reasoning, so I won't force the issue; just know that there is a very messy playground filled with subjective arguments, preferences and relative truths, and you're going to have to play in it if you're willing to bring your very subjective, as-of-yet unsubstantiated "1/100 percentages are better for competition" argument into play. You can't parade your preferences around while simultaneously dismissing the others as invalid. It does not work that way.


Firestorm said:
Otherwise, I agree that this is the best way to represent this information. Ideally with a shadow so we can see where the HP bar was before that turn to best assess how much damage was done
This is kind of unrelated to the other points I've been addressing in this thread, but I think I may be confused here? Are you literally suggesting that simulators should be modified such that the player is forced to manually measure pixelated life bars?
 

Firestorm

I did my best, I have no regrets!
is a Site Content Manager Alumnusis a Social Media Contributor Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Battle Simulator Moderator Alumnus
I'm not sure what you mean by manually measure. This is the amount of information you're supposed to have available to you when assessing damage dealt and health remaining on the opposing Pokemon:



You see around the range they were at during the last attack to this attack and make your next move as appropriate.
 

Eo Ut Mortus

Elodin Smells
is a Programmeris a Tournament Director Alumnusis a Site Content Manager Alumnusis a Senior Staff Member Alumnusis a Community Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis a Battle Simulator Moderator Alumnusis a Past SCL Championis a Past WCoP Champion
Actually subjectivity is pretty great, and I think any good-faith Policy Review participant will find a rather difficult time of disagreeing with Zarel here. A 'cancel' feature is a convenience which, if replicated in the real world, would 'subjectively' be more-or-less reasonable (more importantly, its gameplay impact is completely negligible, putting it well within the realm of pure convenience-- totally appropriate for implementation in a simulator). By contrast, actually having a judge calculate the health percentages for each player every single turn really would be quite ridiculous. Do you disagree? Subjectively speaking, it simply does not make very much sense to implement a gameplay-altering 'convenience' which would never see the light of day in an actual cartridge match to begin with. Do you disagree?

Now I know Smogon is kind of allergic to this sort of 'fuzzy' reasoning, so I won't force the issue; just know that there is a very messy playground filled with subjective arguments, preferences and relative truths, and you're going to have to play in it if you're willing to bring your very subjective, as-of-yet unsubstantiated "1/100 percentages are better for competition" argument into play. You can't parade your preferences around while simultaneously dismissing the others as invalid. It does not work that way.
I misspoke; if you prefer, he did not define what a "reasonable request" was, and due to the ambiguity of the phrase, I interpreted it in such a way that made me feel his claim was unjustified without further explanation.

Impossible as per Cathy's post and mentioned more than once already. Otherwise, I agree that this is the best way to represent this information. Ideally with a shadow so we can see where the HP bar was before that turn to best assess how much damage was done (hp animations are too fast on simulators to figure it out otherwise).
I missed the post. This is probably an oversimplification of things, but even if the client has access to the HP value, is it necessarily true that a general user would be able to access the HP easily? And is there any reason why it can't be encrypted?
 

michael

m as in mancy
is a Battle Simulator Admin Alumnusis a Forum Moderator Alumnusis a Contributor Alumnus
Uh, if you know how fractions work, you should know that it's possible to find the exact HP and max HP (and thus deduce HP EVs) from an exact percentage.

Even with a rounded percentage, if there's enough precision (i.e. resolution higher than maxhp), you can usually figure it out with enough samples. I'm pretty sure that in LC, there are situations where you can figure out someone's max HP from a rounded-to-100ths percentage that you couldn't in the actual games. I think this is the main reason why Game Freak's stuck to 48 pixels for five generations, actually.
This is precisely true; in a standard Little Cup battle, it's often easy to work out the opponent's HP value, using the damage given, in combination with how the damage formula works in LC, as well as knowing the common sets Pokemon use. Life Orb is also a 100% giveaway, as there is a highly visible difference between 1 and 2 HP in recoil.

I missed the post. This is probably an oversimplification of things, but even if the client has access to the HP value, is it necessarily true that a general user would be able to access the HP easily? And is there any reason why it can't be encrypted?
AFAIK, the client never receives the true HP value; it receives the amount by which the pixel "size" of the HP bar should drop, but never any information which the player on a cart could access. If the client were to receive the exact value, it would be incredibly easy to determine opposing sets, and reconstruct defensive EVs / IVs / investment.
 

Cathy

Banned deucer.
I missed the post. This is probably an oversimplification of things, but even if the client has access to the HP value, is it necessarily true that a general user would be able to access the HP easily? And is there any reason why it can't be encrypted?
I commented on this here. The short answer is that attempting to withhold the numerical information from the HP bar is impossible and misapprehends how software works. Encryption is not even relevant here; the client would need to be able to decrypt the information in order to use it.
 
I don't think that not reporting a fraction at all would matter considering everybody has Paint and a Print Screen button...
 

obi

formerly david stone
is a Site Content Manager Alumnusis a Programmer Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
I think I am in a fairly unique position here, because as far as I know, I am the only active developer of a 3rd party client.

Any information you send to the official client you send to any client. The client cannot hide information from the user. If I wanted (and I do want to do this, and plan on doing it at some point), I could create a custom client that normal people could use to battle, but it would give you more information than the client reports. This is much easier to do on Pokemon Online than Pokemon Showdown because of Pokemon Online's poor separation of server and client, and Technical Machine does take advantage of this information disparity (it actually does know a little bit more about what's happening in the battle than you do, an unfair advantage).

For instance, I am testing some code in Technical Machine that performs reverse calculations. If you were to give /100 HP instead of /48, TM can find your exact EVs much faster. I could create a client that anyone could use that would display "Your opponent has 48-52 HP EVs, 128 Speed EVs...".

This also shows why arguments along the line of "If you want perfect simulator accuracy, then you have to switch to a different window to see your Pokemon" make no sense. Anyone is free to create their own client, and I could create a client with a user interface that shows my team in the same screen as my move selections. There is literally nothing that the developers of Pokemon Showdown can do to stop me. This is why 'encryption' is not possible. If you encrypt data, then there are two scenarios: Either the official client cannot decrypt it, in which case you might as well not send it because it cannot use it, or else any client can decrypt it, in which case you might as well not bother encrypting it.

This is the difference between a user interface change and a mechanics change. A mechanics change is something that I cannot simulate on my own custom client. A user interface change is something I can. I can create a client that keeps track of stat boosts; I cannot create a client that avoids critical hits or knows exact HP changes (unless the server is coded improperly).
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top