Precursory Remarks
I'm making this post because I think the community should have a greater say in how RNG prediction and implementation gets handled on Pokemon Showdown. Namely, there should be something akin to a suspect test, provided someone can make a tool that makes RNG prediction accessible to all (which I would like to do, though I need about 3-4 months of time).Please respond if you have any thoughts on this, as I would like to hear the community's thoughts on the matter. Do you have another proposals? My goal here is ultimately to help more people enjoy playing Pokemon battles by asking for more options.
Before making any arguments, I would like to applaud the Showdown Administration team for patching the exploits so quickly, as they would represent a problem to fairness in their current state, due to the lack of accessibility. It is not easy to scramble together a new RNG system, especially with all the compatibility requirements that come from having seedable games, and I thank you for your hard work in maintaining the fairness of Pokemon Showdown.
The policy decision on RNG being referenced is here: https://www.smogon.com/forums/threads/on-rng.3758023/
The Crux of the Policy Decision
The main argument against having predictable RNG is stated here:This statement relies on RNG prediction being relatively inaccessible to be true. If one player is able to do RNG prediction and the other cannot, then of course this gives them an unfair advantage. With the current tools existing for RNG prediction from Myren Eario being rather difficult to use, players face a significant technical barrier to doing RNG prediction, as there's a large difficulty curve in learning how to make the tool work. Thus, most players wouldn't actually be able to use RNG prediction. However, if all players have a better tool for RNG prediction (something akin to showdex), does this statement still hold water? I'd argue that we don't know. If both players in a match can easily use RNG prediction, wouldn't the playing field be leveled in theory? Both players knowing the RNG call sequence of a battle would be a game of skill, as they would be able to respond to how the other player manipulates it. Sure, we don't know if it would necessarily be fair without testing it out, but if we don't know of the fairness for certain, shouldn't there be a suspect test for it? RNG prediction significantly affects competitive play, and if even modifications like GSC freeze clause gets some debate before being implemented, shouldn't the decision on how RNG prediction gets handled deserve some serious community input? Several people had expressed interest in Pokemon battles with RNG prediction in Myren's original thread, so there's already some evidence that people would be interested having decision making power over this.PS' RNG being crackable at all is, of course, a huge issue in fairness and competitive integrity, especially for gens like RBY and GSC with limited Pokemon and spreads.
One could make an argument that requiring a tool at all to make RNG prediction accessible makes it unfair. However, I'd then like to ask, what would make this much different from Showdex or a general damage calculator? It's difficult for most players (myself included) to do damage calculations quickly without the aid of a tool, yet damage calculators are very much allowed in Showdown. Memorizing calculations as a way to avoid using a calculator in-battle faces the same accessibility issues as a difficult to use RNG prediction tool scope-wise. It's not a viable way for most people to play.
Solution Proposals
Not everyone will want predictable RNG in their games, as it would definitely make playing battles more complicated and could seriously reduce enjoyment. However, there may also be some people who are really tired of focus blast missing and might enjoy playing a battle with RNG prediction so that the game feels more skill based. To balance this, I propose two options:- Provide a separate format for a select number of metagames that output the RNG seed before the battle starts
One issue here would definitely be an unnecessary amount of extra formats listed. This could be solved by restricting the number of formats available for this style of play -- we could maybe have one or two formats community voted for and then include things like the current gen randbats/singles ou/doubles ou. Or if people don't like it much, it could just be restricted to AG. - Provide an option, similar to the open team sheets option that allows people to choose if they want the seed to be visible at the start of a battle or not. This could be restricted to certain formats or not.
These solutions are also easy to implement from a technical perspective.
Precedent in Similar Situations
This situation is fairly similar to Mega Rayquaza being banned from ubers in gen 6. Mega Rayquaza was broken, even in ubers, so the smogon community decided to make the new format of AG so that it could still be used because Mega Rayquaza was a fundamental usable part of the game on cartridge. The same idea can be applied to RNG prediction. RNG prediction is currently broken due to its lack of accessibility, and it affects a fundamental part of the game (the RNG). At least in older generations, we know RNG prediction is possible on cartridge as they do not use secure PRNGs. Why shouldn't RNG be able to at least get a similar treatment to pokemon banned to AG?Tools for Making RNG Prediction Accessible
Given that RNG prediction was only in a proof-of-concept stage as of recent, there are no easily accessible tools for this. I would be happy to work on an RNG prediction tool, as I think it would be interesting to see, and it would fulfill a class project I need to work on for the next 3-4 months anyways. The tool I create would likely be a browser extension similar to either showdex or the random battles tooltip, with an emphasis on being usable.If the staff ends up ignoring this entirely, I'll consider making a custom showdown server with RNG prediction enabled as a technical project if there's enough interest from here (after I can make the tool of course).
A Brief Comment on Per-Generation Cartridge Accurate RNG Implementation (less important)
The last two comments are on the security of the original games, which I agree with -- yes, the old game battle PRNGs are not secure, so it wouldn't make sense to use them if you wanted Showdown's battle PRNG to be secure.However, the first point doesn't make sense if framed as something to implement later. The first point is as follows:
At least for early generations, the RNG formulas are actually well-documented. For gens 1-3, we have pret's disassembly of the entire pokemon games, which obviously include how RNG calls work in link battles. More specifically for generation 1, we also have pre's documentation of exactly how showdown's rng calls differ from the original games, besides speed ties which have a scuffed implementation in showdown. While I definitely agree that it would take a significant amount of time and effort to try and make showdown RNG compliant (both in its calls and its PRNG function), it doesn't seem fair to permanently withhold the community's input on the matter post-patch. If community leaders get to decide on whether or not to implement the freeze clause mod, why shouldn't they get to decide on how they want RNG to be implemented for their generation, given that it's an even more fundamental mechanic? Sure, it won't be easy to implement, but having the directive to make a generation RNG compliant makes it a lot easier to justify pull-requests that change RNG calls if someone did care about implementing RNG accuracy. Thus, I think this decision should be passed down to old gen community leaders, as to whether or not they desire RNG accuracy.The RNG formulas for most games are not well-known or well-documented, requiring extensive testing and reverse engineering that we simply do not currently have the time or bandwidth for, especially on such a short timeframe
Requests and Thanks
Thank you for reading this! I really appreciate it, and I hope that we can have more options to play Pokemon battles on Showdown so that we can better enjoy competitive Pokemon :)Overall Requests:
- Give the community the chance to vote on how they want RNG prediction to exist on Showdown. (Of course should be subject to delay on when an accessible RNG prediction tool becomes available)
- Give old gen leaders the opportunity to make their own policy decisions on how they want to see PRNG implemented for their generation.