Monday, July 1, 2019

Expectations and a Rapping Dog

Apologies for being later than normal.

I'd like to write briefly about rhythm games.

Parappa the Rapper was the first exposure many in the west had to rhythm games.  The endearing characters, the funky music, and the outright comical plot made a fascinating game people enjoyed. 

In addition, for being a Japanese game, the English was done rather well -- given how this was during a time where English voicework in games were still very questionable, it was rather notable.  It turns out that the game's audio was originally done in English, so that explained the quality, even if sometimes the grammar doesn't make perfect sense.

Still, one of the problems that popped up in Parappa the Rapper came when it was the player's turn.  The game was set up as a call-and-response style of game, where the opponent of the stage said a line consisting of button presses, and then the player would repeat said button presses.  What was not clear was when exactly the player's turn was supposed to start.  In addition, the underlying mechanics of what exactly was "good" and "bad" was unclear.


The next installment of the series, although it was more of a spiritual successor, addressed the issue of when exactly do the players start their turn.


Still, it wasn't entirely clear just how to actually accomplish the best rating since strictly mimicking the opponent will just net you an acceptable rating.  So in the actual sequel, Parappa the Rapper 2, they added in meters along the bottom that judge how your current line did in getting to a "cool" rating.


However, even though there was a visual display of what you're supposed to do, the rules themselves felt very inconsistent.  Notice Parappa strictly mimicking and sometimes getting halfway up to Cool, but sometimes failing, despite strictly mimicking.  The intention was to have the player freestyle and do their own thing, but even that doesn't exactly work all the time.

Implementing your rules in a way that makes sense and is consistent is key to player satisfaction.  The fact that the freestyle doesn't work all the time, or why some freestyle is better than others isn't easily understandable even by someone who's beaten the game. 

Consistency is very good.  This doesn't mean you need to remove randomness of any sort, but as long as you're clear what parts are randomness and not just buggy implementation, it's absolutely fine.

Like I had wrote about earlier, you need to also manage player expectation when you're making a game.  Just like a performance, everything needs to appear intentional, or else the audience will assume something was a mistake that wasn't.

And for your enjoyment, here's a player who edited the files to make one of the stages in Parappa the Rapper 2 far more interesting.

Sunday, June 23, 2019

Sometimes, Not Too Random

Randomness of any sort in electronic games is determined by what's called a Random Number Generator, because machines cannot make a decision randomly, they can only approximate randomness.  In a few cases the machine will use an external source to generate an actual random number, such as atmospheric noise or even a lava lamp.  Most of the time they use algorithms to approximate randomness, and that is called a Pseudo-Random Number Generator.

For the most part, they're good.  Sometimes implementations of PRNG can leave vulnerabilities, allowing the user to manipulate the system in ways that are not intended.  PRNG in slot machines for criminal gain, PRNG in cryptography to bypass encryption on computer data, but also PRNG in video games.  In many speedruns, players will take specific number of steps, press buttons in only specific patterns, and listen for sound cues in order to make critical strikes appear on demand, avoid every attack, or have a specific rare item drop, guaranteed.

Most players won't find them, or even particularly care about them, so from a developer standpoint those sort of PRNG vulnerabilities are pointless at best to worry about, to a negative experience if it were fixed.  The vast majority of the time those vulnerabilities exist only in closed systems in a one-player environment, at which point however they enjoy playing the game is entirely up to them.

A more interesting potential of PRNG when it comes to video games, is having the randomness be not too random.

Valve implemented a system on top of their PRNG in Dota 2, in order to make their competitive game less vulnerable to overly large lucky or unlucky streaks.

On melee heroes, Skull Basher icon.png Skull Basher's Bash has a 25% chance to stun the target. On the first attack, however, it only has an ~8.5% probability to bash. Each subsequent attack without a bash increases the probability by ~8.5%. So on the second attack, the chance is ~17%, on the third it is ~25.5%, etc. After a bash occurs, the probability resets to ~8.5% for the next attack. These probabilities average out so that, over a moderate period of time, Bash effect procs nearly 25% of the time.
What this meant was that no longer could there be games where you'd get a bash four times in a row, get a crucial kill, and win the game.  On the other hand, neither would you have a game where your basher never activated, leaving you to wonder if the stupid thing is actually bugged.

Likewise, Grinding Gear Games and Path of Exile has the same sort of system with Evasion, but in that they implement an entropy system.  Everytime you evade an attack, your evasion is lowered until you're hit.  If your evasion comes out to be 90%, that means on average you will have evaded 90% of the attacks.  Evasion as a stat felt far more useful and, importantly, reliable.

There are some key things to take away from these anecdotes of pseudo-pseudo-RNG.  When you're playing a video game and something that happens on a very low percentage chance, fails to occur for a very long time, it is a real possibility that there is a bug in the game.  In real life, you don't have to worry about programming glitches keeping you from rolling well in a board game, but in video games you do.

Another thing to keep in mind is that randomness averages out to certain numbers over the span of many iterations.  Depending on what you're implementing and how often it's likely going to actually occur during the game, those iterations may not occur anywhere needed enough for the randomness to actually average out.  A 25% chance for something to drop, and the player hasn't gotten it in 20 tries?  That's needlessly frustrating if it takes about half an hour for each attempt, but it's something that absolutely can happen with randomness.  There's no particular reason why that player would be overjoyed when the item finally drops since the expectation was for the drop to have happened a long time ago.  A key point here is managing the expectations of your players.

In addition, having core mechanics in a game feel reliable is also very attractive to a player.  If it's something core, you want to rely on it.  Button presses need to always do what you expect them to do, movement in an action game should not be an unsure experience.  The same extends to anything that is core to your game.  So if there's something core in your gameplay that has an element of randomness, consider stacking the deck a bit and not truly leaving it up to chance.

All in all, you don't need to implement these systems for every aspect of your game, and there certainly are times and places where being ridiculously lucky or unlucky has a certain appeal and makes for a great story.  That said, there are places in your game where you don't want to gamble big.  So gamble small, constrict your variances in RNG, or just flat out shape the data the way you want, so that you get the effect you want.

Fiddling with numbers can change a lot, after all.

Sunday, June 16, 2019

The Rush to Endgame Pt. 2 - Filling In The Levels

Game developers are not stupid.  They know that leveling up, increasing numbers, and filling in the bars to completion is inherently satisfying in a staggering amount of players.  When they make endgame content, which in this situation meaning content that comes only when you're at max level, they include all sorts of methods for increasing your own numbers, whether it's grinding reputation, climbing pvp ranks, or acquiring shinier and better gear in places you can only access once you've finished the leveling process.

The smart ones will have these systems running concurrently with the leveling process, so that when leveling abruptly ends, these other systems that incentivize play will remain familiar to the player.  To do otherwise is to have an experience where you play two completely different games, the leveling "tutorial", and the "real game" at the end in which you do completely different things during leveling.  This sort of tonal dissonance between the two sections is very aggravating, and akin to having a nailbiting horror movie end in a ten minute light-hearted slapstick section that intentionally tries to make the previous horror bit pointless.  One of those things for the avant-garde and those bored with the genre, but for people just wanting to enjoy and immerse themselves in what's going on, it's jarring.

In which case you may ask yourself... why halt leveling at all?  Part of it comes down to design choices.  If the game is very strictly gated by levels, allowing uncapped leveling can quickly make any challenge set forth pointless.  To explicate, imagine a single-player game with an RPG-ish structure.  In this game, you are only allowed to set foot in the dragon's lair once you are level 60, and anytime before than that you cannot even enter the zone.  The game will not let you, and even if it did you would very quickly become slaughtered as inherent level differences between targets carry strict penalties.  The game designer for this example included this feature so that players would be compelled to stick only to zones appropriate to their level and not try to level too quickly by fighting enemies a much higher level than them.

At level 60, this fictional dragon in this fictional game is a very tough challenge, and the dev team put a lot of heart, soul and effort into this encounter.  A player trivializing it would basically waste the time they put into making it, in their mind.  Regardless, the player fights the dragon, and finds himself not up to the challenge.  If the player can still level, he can simply grind experience until he holds the advantage and take out the dragon, trivializing the difficulty of the encounter away from execution of game mechanics, into simply spending more time killing what's likely to be far less challenging monsters.  So is the solution simply to water down levels to be far less important?  Not necessarily. 

It all comes back to knowing what kind of game you're making.  In my personal experience as a player, games where levels can make a huge swinging difference are absolutely fine and even great when you're playing games where you're expected to start from the beginning often, such as in roguelikes.  That kind of game, however, is completely different than a game where you're expected to invest a lot of time into a very small set of characters.

Again, there's no particularly good or bad game mechanic, just a good or bad situation to implement them.  They are multiple different tools in your toolbox, and I hope that as you grow as a skilled craftsman, you are able to determine when to use the hammer, and when to use the mallet.

Sunday, June 9, 2019

The Rush to Endgame

My first introduction to MMORPGs was actually Ragnarok Online, a fairly thriving game that came from Korea in the early 2000s.  There, it took an excruciatingly long time to level, and thus every loss of experience on death felt even worse.  A lot of people never made it to max level, but still played the game and had fun.  There were hardly any quests, and no pointers on what zone is the next area to level -- many times you would wander a bit too far and a very aggressive enemy would sprint at you and lay you out in the dirt, putting you back to where you saved.

When I moved over to World of Warcraft, quests were far more abundant, death was far more of a nuisance than a fear, and you had a pretty good idea where you needed to go next.  Still, there was a sense of a journey being taken when you leveled up, and there were a lot of toons who never quite made it to the level cap.  This was a fine and good thing, because the majority of the content was in the leveling.

Let's approach this from a different angle.  I'm not a designer or developer for World of Warcraft, and declaring the makers' motivations as if I were one of them would be absolutely foolish.  Thus, this is a theory from the player's side of things.

To me as a player, the vast majority of a player's experience was expected to be from 1-60, not at 60.  A lot of care was put into that world experience, which when a player hit max level never particularly saw that much of, unless farming for specific materials.  And those materials very often didn't necessitate being max level either!

No, Vanilla World of Warcraft was far more like that Korean MMO I started with than it is like the current expansion, where zones and leveling are just glossy extended tutorials for the real game at max level.  Leveling up was an achievement, and the experience pre-60 was a lot of the content.  And that's one of the reasons why it's so beloved.  Gathering experience and leveling up, getting measurably stronger in the process, is a very simple but effective pleasure no matter the game.

In other words, the core draw of the game changed drastically throughout expansions.  Leveling versus end-game theme park being just one of them.  This sort of effect splits your userbase every expansion and alienates your earlier players.  Expansions change things, yes, but if you change the core concept of a game, it becomes a completely different game.  It has failed to accomplish its primary objective when its objectives were changed, much like SJW convergence in companies starts rotting it away from the inside.

Sunday, June 2, 2019

Horizontal Balancing

Icefrog's approach to balance in Dota, and later Dota 2, has been a rather interesting one -- one that I would call ingenious as well.  So for this post we're going to talk a little bit about what I call horizontal balancing.

Dota 2 is a competitive PvP game at its core, with currently 117 different characters to choose from.  Each of those 117 different characters bring something unique to the table, and thanks to how they're balanced there's a time and place for each of them.  Some characters, called heroes in game, have a slightly higher winrate than others, but it's always in the scope of having an overall 60% winrate instead of something absurd like 80%.

Keep in mind that this level of balancing is actually a very difficult concept to execute, as it's easier said than done.  One of the difficulties being the instinctual human tendency to hammer down the parts that stick out.  By that, I mean if you have something in your game that's been deemed as overpowered, or too strong to be fair, the instinctual response is to nerf, or reduce in strength, the overpowered aspect until it's fair.  For example, you have a character or a class running around killing every enemy player with one shot, so the first response is to nerf that character's damage until they're roughly doing the same damage as everyone else.  The game is now safely "balanced".

The unfortunate side effect of this is that it makes each player option just a bit more homogeneous.  The player's choices start meaning less.

In comparison, horizontal balancing would take that same oneshotting class, let them keep their oneshot capabilities, but make the windup to doing that damage take a ponderous amount of time.  The oneshot class keeps their separate identity, and they're still good at what they do particularly if no one notices them winding up their big strike, but they're no longer good in every single case, and that is what you're aiming for. 

Eventually with everyone having their own identity and point in which they're useful, very small changes to the environment itself or natural player tendencies to counter the current popular classes/characters will force those same overplayed or overpowered characters out of the meta, with no drastic number changes needed whatsoever.

There are sometimes you do need to scale back direct numbers of overpowered things, but not to a very large extent.  Which is fortunate, because players can get very upset over what they perceive as huge nerfs to what they currently play.

For a topical example, since there's been a hubbub about Classic WoW for a while, let's talk about World of Warcraft as it was when it first came out, oft dubbed Vanilla.  Some of the many reasons why WoW did well was because the team put an absurd amount of passion into the project, the game released at a good time, and there was a lot of hardcore fans eagerly anticipating and building up hype to explore the world they loved from the Warcraft RTS series. 

Another reason why WoW did well was because each class felt very unique from each other.  There were a vast amount of things that only one or two classes did that each was a completely different experience, and had their own identity.  Blizzard's method of balancing over the years and expansions lost a lot of that identity.  Shamans use less totems, warlocks less dots, druids stay in one form all the time, there's a litany of stuff.

Absolutely, there was a lot of stuff that was removed from WoW because it honestly wasn't fun, and I think that Blizzard was right when they said, "You think you do, but you don't," when people asked for the Vanilla experience again.  However, that's because Vanilla WoW wasn't balanced all that well. It's unfortunate Blizzard balanced the way they did, because what people actually wanted was a time where their class actually felt like it meant something, their item choices felt like it meant something, their every choice in game felt like it meant something.

And for Classic WoW, that's something horizontal balancing could fix.  Unfortunately they won't do that since they're aiming for a strict recreation of how WoW was back then.

Sunday, May 26, 2019

Love Thy Fans Pt. 2

Imagine, if you aren't already, that you're a successful game developer and you have your game on the market, and you want to get some feedback from your customers because you're good at what you do and you want to make the best game you can.  When you set out to canvas your current audience, you quickly discover that their suggestions contradict each other.  What do you do?

Well first off, don't be surprised.  Remember, not everyone will enjoy your games the same way.  One person will derive their most fun from a game by setting limits on themselves and accomplishing challenges, whereas another person will get the most fun from a game by making their avatar wear the most fashionable clothing they can find.  Thus, one person suggesting changes to maximize one area, will find their suggestions either explicitly or implicitly contradicting suggestions from another.

The next thing to realize is that your game cannot be everything, to everyone.  It is impossible, and to attempt this is to water down your game so much it has lost all tastiness.  It can certainly be a lot to some, but it can't be everything.  Part of this is due to the amount of time, money and manpower you have available to develop things, but part of it has to do with simply contradictory things.  Do you make an easy mode for Sekiro, or do you not?  Attempting to split the difference on things like that makes everyone dissatisfied, so you have to pick one or the other.

So you have to be selective with what feedback to actually implement.  Who do we take more seriously?

Your actual hardcore fans.  These hardcore fans are emotionally invested in your success, and really want to see you make a great game.  Feedback from casual players can be useful, but along the lines of bug reports and how to make any tutorial make more sense.  Be very wary of taking gameplay balancing or feedback of new systems from casual players, since they often don't have as good of a grasp of the big picture.

Again, your hardcore fans won't all agree with each other since they'll like different things about your game, but immediately it's a smaller section of feedback to wade through.  Instead, you subdivide the feedback again.

The long-time developer of Defense of the Ancients and DotA 2, Icefrog kept in contact with the absolute highest skilled players of the game for balancing testing.  Since DotA is a game about competitive player versus player, the top players had a far more accurate idea of what was strong, what was weak, and what was outright broken than Icefrog knew himself.  Numerous posts on the forums about so-and-so being overpowered, Icefrog please nerf, would correctly go ignored, as after various minor tweaks to completely different systems lead to different play, and those in-game heroes or items decried as overpowered just fell out of favor.  Nothing really different about them, they were still good at what they did, but those situations in which they shined just didn't happen nearly as often if at all.

Those players on the forums were just as hardcore of fans as the top-skilled players were, but relying on them for feedback on balancing would have been a terrible idea.  Too often, they'll want something nerfed into the ground or buffed into heaven, to simply scratch an emotional itch they had regarding some dissatisfaction.  Still, they're your hardcore fans, you have to treat them well.  They can still give good feedback, just don't weigh it as heavily as the skilled players.  In many cases, these middling or poor-skilled players can give a wide panoply of suggestions that the top-skilled players didn't even think to cover which are still valuable goals.  Is there something about the UI which could honestly be improved?  The average-skilled player who puts in a lot of time can give effective advice on that.  The top-skilled player may not even remember it most of the time, when they've focused on wrangling out the rules for a competitive advantage as much as they can instead.

Something to keep in mind during all of this though, is that the vision of the game your hardcore players want probably will be a slightly different game than what you've intended.  Still, love thy fans.  They're the reason you can feed your family.  Treat them well, and it'll be hard to drive them away.

Sunday, May 19, 2019

Love Thy Fans

I've touched on this briefly, but now is as good a time as any to go more in depth on the subject.

Love your hardcore fans, developer, for they will see you through the rough times.  Appealing to the casual audiences may bring lots of dough, but make one misstep and you'll be having some really rough times.

What do I mean by this?

Look, it's pretty clear to anyone without a god complex that not every game you make will be a success.  When those games aren't a large enough success to recoup the amount of work that went into them, you start having financial troubles.  This is very obvious.

Sufficiently large enough games take an extraordinary amount of work to complete.  Practically every game actually worth $20 or more, has had years to percolate.  So to recover from a disastrous game puts a lot of stress on a studio, because you need a lot of time in order to release a new game that addresses what the players hated.

Video games generally aren't a hugely profitable industry anyway, and when you have a good success of a game it's quite easy for that money to fly away.

Your fans who are hardcore supporters of you and your studio though, will forgive your inevitable missteps.  They'll buy your crappy game, and be eager to buy your next game because they have faith that the next one will be better.  In fact, it's actually hard to accidentally alienate a hardcore fan.  You have to very purposefully treat them like dirt in order to drive away the most fanatical.  Love them, because they love you.

Really, dealing with fans is just an extension of normal interpersonal relationships.  Fairweather fans are fairweather friends, and you can never rely on them.  Just appreciate them when they're there, but never make plans around them.  They're just there for the experience of it all, not because they want to actively contribute and make it their own.

This division between the fairweather and the fanatical extends even further in unexpected ways when you start conversing with your audience, which I'll write more on next week.