1. Houkago Game Time

      1. RNG, Data, Guesswork, and Optimization


        Comment


        Intro

        RNG is bad” is a sentiment that most competitive gamers seem to be unanimous on. But if all RNG is stripped from a game, it tends to feel dry and predictable. A lot of competitive games implement some small RNG into their design to spice things up a bit, e.g. Dota2 has damage ranges on normal attacks, and RNG-based abilities like Ogre Magi’s Multicast. Some people even complain that the fog of war makes the game too unpredictable. But I think there’s a big difference between something like multicast trigger RNG and fog of war. This article aims to articulate that difference, and outline why “RNG” (multicast) is bad for competition, but “Guesswork” (fog of war) is very good.

        Definition of Terms

        RNG

        Random Number Generator is a term that refers to the technical side of computers creating pseudorandom results, but has been adopted to also refer to all aspects of a game’s design that rely on that random generation. There are lots of different contexts for RNG when speaking about video games, but let’s create an example scenario relevant to this article. Say you are playing a PVP match in an MMORPG, and your class has a self-buff that triggers whenever you receive damage. If the skill were “RNG-based”, it might read like this:

        Sheltering Vengeance: When damage is received, there is a 50-50 chance to either nullify all damage received, or reflect all damage dealt to you back to the attacker.

        Once this skill is casted, you and your attacker lose direct control over the fight, and the outcome becomes determined by an RNG system. If you are at critical health, nullifying the damage may let you live longer to perform some other crucial action, whereas reflecting the damage (but dying from the hit) would be relatively worthless; likewise, if your opponent has been working hard to kill you, and you roll damage nullification, their work is marginalized based on the whim of RNG.

        Regardless of the outcome, nobody really outplayed each other to move the game forward, the result was completely up to chance. You just clench your buttcheeks hoping you don’t die, and your opponent just gets pissed when you get lucky. It doesn’t have any sort of competitive merit, and that’s why RNG gets a bad rap in versus games.

        Data

        When I say data, I’m referring to the information present to each player that fuels their decisions. If the Sheltering Vengeance skill from above is casted, and the game doesn’t reveal which one of the buff effects will trigger, then some of the data is hidden from you. If the game indicates that damage will be nullified, then the outcome was still randomized, but the data to make a more informed decision about what to do next becomes available.

        Making as much data available as possible is generally viewed as good thing in competitive games, but presenting ALL data to players leads to solvable games, which isn’t a good thing.

        Guesswork

        This is a concept that’s closely related to mind games. Guesswork is partly about making decisions based on experience and good reads (which I’ll just call yomi). The other half to guesswork is that some of the data needed to make an optimal decision is hidden from you.

        To “remove RNG but retain guesswork” from Sheltering Vengeance, we might change the skill behavior to something like:

        Sheltering Vengeance: When damage is received, choose one of the following effects – nullify all damage received, or reflect all damage back to the attacker. Hide which choice was made from all other players.

        The skill is now completely RNG-less, but a factor of unpredictability is retained. This time, if you are at critical HP, you might cast this skill and make the ballsy choice to reflect damage back to the attacker. If your attacker makes an incorrect read (assuming that you chose to nullify damage), they might target a different player. In this scenario, you’ve survived and given yourself some breathing room, while applying a buff that might be more useful to you after you’ve healed up.

        This scenario incorporates guesswork, which plays on human expectations rather than leaving outcomes up to chance.

        Optimization

        Optimization is the process of playing perfectly with the information you are given. In an RNG heavy game, playing optimally doesn’t guarantee a win, because even if the choices you make are correct, losing to bad luck might be unavoidable.

        In an RNG-less game where all data is available to you, it’s possible to play perfectly optimal. Some players desire this, but it raises the question of who you are really fighting; the opponent, or the game mechanics? In this type of environment, it would be possible to write an AI who plays the game better than any human would ever hope to be able to. Given a big enough dataset, an AI could always make the best decision instantly. In many games like this, if both players are playing perfectly, matches are not necessarily determined by playing skill, but instead something closer to raw numbers. This leads to unexciting, predictable games that lack any real surprise, clutch play, or comeback potential.

        That said, optimization isn’t an inherently bad concept by any means. Some level of optimization can add great depth to a game, allowing players to refine their strategy and come up with innovations.

        Why it matters

        As stated before, implementing RNG into your game’s design removes control from the players, and they stop fighting each other, to instead fight your number generator. In some cases, this doesn’t amount to much; a normal attack deals a bit more damage, and the match goes on. In other cases, it’s actually fucking retarded and can change the outcome of whole tournaments. But, removing RNG makes games dry. Watdo?

        I think the best middleground here is probably pretty clear by now. Minimize RNG, but allow for guesswork to take place. Players are always in control of a match, but surprises still happen. Hiding data like builds or equipped items adds a lot of dynamicism to situations in games. Most importantly, they make humans better at the game than AI. AI has difficulty accounting for variable human actions, and it’s difficult for them to make sweet plays based on reading a human. In a game with guesswork, a player could intentionally make a non-optimal decision (aka take a risk), and it could pay off if their yomi was up to snuff.

        Some specific examples

        Pokemon

        Pocket Monsters is an interesting example to consider, as it draws from all four aspects pretty heavily. Pokemon has a huge competitive community, and they hold a lot of tournaments.

        In GenVI of Pokemon, when a battle starts, you can see your opponent’s entire party composition:

        However, this is all of the information you get. You aren’t sure what each of your opponent’s Pokemon’s statistics, moves or items could be. You can make pretty good guesses based on their lineup, but you can never be sure. In the image above, who is the mega evolution? Is it Charizard? Gyarados? If it’s Charizard, might it be mega X or mega Y? If it isn’t Charizard, what sort of build might he be instead? I mean, there’s a lot of standard builds, but it might be something unconventional too. There is enough data to do very educated guesswork, but not enough data to write an AI which plays better than humans.

        Unfortunately the game is plagued by heavy RNG in crits/misses, which ruins a lot of its true competitive viability, but the point stands that limiting data availability leads to many clutch plays based on yomi skill.

        Atlantica Online

        By comparison, in a game like Atlantica Online’s Arena of Atlantis mode, all data is available at all times. Mercenaries all have predetermined statistics and attacks, heavily limiting creativity. After a match begins, making perfect plays becomes possible. With a big enough dataset, I am positive that an AI would be better than me at this game; it could quicky calculate the possible damage ranges that every mercenary is capable of hitting against every other mercenary, work out the most optimal rotation for all skills, maximize AP efficiency, and switch around the formation based on an opponent’s available options. It would never be wrong, because unlike something like Pokemon, surprises from hidden data don’t exist.

        If both players play perfectly, they aren’t fighting each other, but instead just playing out how their unit’s data match up. It’s true that you can select an unexpected spell or delay a skill for a turn or two to throw off your opponent, but these don’t generally amount to exciting or meaningful plays, and if your opponent isn’t making mistakes, they usually end up hurting you more than helping.

        These problems become pretty apparent after you play the game for awhile, as whoever has the most counter-pick units and sticks to the optimal game plan almost always wins. The match is decided by the draft screen. If both players don’t play optimally, it still isn’t really “whoever plays better wins”, but instead “whoever plays worse loses.” The distinction there is that you aren’t necessarily taking advantage of the other player’s mistakes, but instead you are just making less mistakes than them. Regardless of how you look at the game, there isn’t a lot of room for dynamic “human vs human” decisions to be made.

        Bye

        Creating solvable games is boring, and RNG is bullshit. To circumvent that, hide some of the data available to players, but always keep them in control. Allow for interesting mind games and reads to take place. Rework RNG mechanics to guesswork mechanics, so that players with high skill and experience are always playing against each other, and not breaking keyboards over video games being stupid.

        “Fun is pleasure with surprises.” – Jesse Schell, The Art of Game Design

      2. Posted in:

        Thoughts


      3. Comment

        Post a Comment
         
      1. Themes

      2. K-On Theme Toshinou Kyouko Theme OreImo Theme Nadeko Snake Theme Tsubasa Cat Theme Hitagi Crab Theme About
      3. Categories

        Stuff Games

        Links

  2. ζ*'ヮ')ζ<うぅうー!