Pokemon GO

2016 Scott Fine game Design Year in Review

Whoa! Time does fly! It’s already been a few years since I started this blog. Just like last year, I’m doing a 2016 year in review! Today I’d like to take a look back at some of my favorite post from the last year.

I’d like to highlight three articles which I believe are my best work of the year. Additionally, I’d like to give an honorable mention to one of the most exciting moments of my year.

1.       Pokemon GO! Series

Okay, I know I’m cheating right out of the gate but technically I think these should be highlighted as a group. In this four part series, we start by understanding the basic functionality and mechanics of Pokemon Go. In part two, we discuss gym battles and the problems plaguing them. Part 3 is one of my most popular posts of the year, it deals with how Pokemon are distributed and located around the planet. We finish up discussing the economy of Pokemon go and how it affects the players.

Part 1 - Basic Pokemon GO

Part 2 - Pokemon Go: Gym Battles!

Part 3 - Where's that Pokemon?

Part 4 - Pokemon Go: Economy

2.       Game Design Analysis – Disney Magic Kingdoms

This analysis breaks down the game Disney Magic Kingdoms. We discuss everything from the basic mechanics and to quest functionality to the economy and rewards. This is one of the most popular pieces on the site today.

Disney Magic Kingdoms - Design Analysis

3.       The Dark Zone Versus the Prisoner’s Dilemma

This piece discusses the Division, more specifically the dark zone and how it relates to the Prisoner’s Dilemma. This is the piece I’ve had more comments and heat over than any other piece I’ve written.

The Dark Zone Versus the Prisoner's Dilemma

Honorable mention:

Boss Battle Gamecast Guest – Ep. 48

This was an exciting opportunity for me! I had the honor of being a guest on the Boss Battle Gamescast. We discussed the industry, what I’m up to now and so much more. Check it out when you get some time!

If you don't have time to stream it now, feel free to download it for future listening at the Raptor cow website HERE

With that said I’d like to thank you. Your comments have helped me to improve these posts. I’d like to give an extra big thank you to everyone who stuck around since 2015.  I know I haven’t been the most active over the course of the last few months. I appreciate your patience and thank you for sticking around. I’ll be doing more posts in the New Year and I should have some big news in the coming months. I hope you had an excellent 2015 and that 2016 will be even better.

I’ll see you guys next time,

Scott

P.S. If you're new (Welcome!) and wanted to check out 2015's year in review it can be found HERE

Pokémon Go: Economy

This week, we’re going to finish our look into Pokémon Go. Today, we’ll be discussing the flow of the economy and leveling up. We will talk about how these two work and how they affect the player’s experience. If you haven’t read my last couple posts on Pokémon Go, I recommend checking them out! While they aren’t necessary to understand the concepts we will be discussing today, they will help to give a broader picture of the game and how the individual functions work. They can be found at:

Part 1 – Basic Pokémon Go

Part 2 – Pokémon Go: Gym Battles

Part 3 – Where’s that Pokémon?

Before we get started, let’s briefly review the rewards.

Stardust:

·       Uses:

o   Powering up a pokémon (increasing their CP)

·       How to obtain:

o   Catch a pokémon (100 per catch)

o   Hatch an egg (Varies based on egg level)

o   Defend a gym (500 per gym)

Pokémon Candy:

·       Uses:

o   Powering up pokémon (Increasing their CP)

o   Evolving pokémon

·       How to obtain:

o   Catch a pokémon (3 candies)

o   Convert pokémon into candy (1 candy)

o   Hatching an egg (Variable amount of candy)

With that said, let’s take a look at how stardust and pokémon candy affect the economy and the user experience.

Chart made with Lucidchart

So we know how stardust works, and here we can see how it flows. Players stay engaged by constantly looping through this cycle. The flow of stardust never quite stops so long as the player is moving around and catching pokémon. Essentially, they’ll continue to gain stardust and candy so long as they continue playing the game.

But let’s take a look at a less common currency.

Coins are used exclusively to purchase items. Now, there are two ways to obtain coins:

●      Players are rewarded 10 coins for every gym held when they redeem their reward

●      Players can purchase coins with real world money

This ability to obtain the premium currency in-game is becoming more and more prominent in mobile games. If you look at something like Disney Magic Kingdom (More on that game HERE), we see that they give away the premium currency as well, but at an incredibly low rate. When designing this kind of system, players have to believe that it is a viable alternative to purchasing premium currency in real life. For example, currently in Pokémon Go, a player can purchase 1 incense Item for 80 coins. If the player holds a gym, they gain 10 coins. Thus, if they redeem one gym reward each day, they’ll have enough for one incense eight days later. For the casual player, this isn’t so bad due to how easy it is for players to take a gym, and they’re not playing the game as frequently. For the more hardcore player, they’re going to want the items much faster.

If we examine the flowchart, we can see that the player never really escapes this loop. Because once they purchase and use the one use item, they’re back in it again constantly trying to get stronger. But due to the game’s objective (Gotta catch ‘em all!), when the player doesn’t want to wait or take the time to build up to obtain the item in game, they can purchase it right then and there. This way, the player doesn’t feel like they’re being taken advantage of, and the developer can still have in app purchases without there being a huge hullabaloo.

This balancing act is incredibly important in the mobile scene. Once players start to feel like they’re being nickeled and dimed, they’re going to think just a little bit harder before spending their real world money in-game. That could result in a few players pausing just long enough to reconsider making the purchase.

Let’s talk about powering up the pokémon and how this actually scales to increase the difficulty over time. Based on trainer’s level, a pokémon will have a max CP that they will be able to reach. When the player levels up, the max raises as well. This way the game can keep trainers from just leveling up one pokémon to super high levels and further forces the player to catch a variety of pokémon. It typically costs X stardust and 1 candy to level up a weak pokémon. But what happens when the pokémon’s strength reaches about ¾ of the max?

The price goes up. Instead of only costing one candy, it costs two. This is an interesting twist because it makes players less likely to have max level pokémon due to the increased price. Because this has an effect on all evolution levels of pokémon, it also encourages players to evolve pokémon. An additional reason to evolve them would be a higher power cap.

This Primeape is a second evolution. It evolves from a Mankey. The Golem is a third evolution, and it evolves from a Graveler, which in turn evolves from a Geodude. If we compare the two, we can see that their power levels are about an equal percent to their max. We can also see that a Golem is clearly more powerful than a Primeape. This reinforces the idea that players should focus on using third level evolutions because they will always be stronger.

Side note: This is actually one design choice I heavily disagree with. Primeape is the final evolution of Mankey, but is going to be at a disadvantage against many other pokémon because it can’t evolve as high. The game expressly discriminates against all the pokémon who don’t evolve, or evolve only to the second form. While I like the system of pokémon evolutions raising the cap, I feel as if the second level evolutions should be able to reach the same point as the third level evolutions. Or even the pokémon, like Onix, who don’t evolve (In O.G. Pokémon, I know in the expanded universe he evolves into Steelix). This could be supplemented by making them cost an additional candy to power up when they reach the ½ and ¾ power point. It honestly just feels unbalanced having it work the way it does.

Pokémon Go is an interesting experience. It’s been a pleasure to pick it apart. I really hope you enjoyed looking into this very different mobile game with me. I’ve gotten a lot of requests asking about what my personal thoughts on the game are. Honestly, the only experience I find to actually be done particularly well is the catching of pokémon. But, I mean, the whole game is based around that so I guess it turned out well. It seems like they’ve got a strong core with the other mechanics within the game feeding back into the most fun part. So even though it is an incredibly shallow experience, probably wouldn’t do well if it wasn’t pokémon themed, and is broken half the time, it’s not terrible. The designers were able to figure out the most fun part of pokémon and streamline the process for mobile. So all I can say is good job, you guys made a hell of a game. The world will be watching Niantic’s next move very closely.

I’ll see you guys next week,

Scott

Where's that Pokémon?

Continuing with the pokémon theme this week we're going into part three of my series on Pokémon Go. Today we'll be discussing how the pokémon locations are determined. If you haven't read my last couple posts on Pokémon Go I recommend checking them out! While they aren't necessary to understand the concepts we will be discussing today, they will help to give a broader picture of the game and how individual functions work. They can be found at:

Part 1 - Basic Pokémon Go

Part 2 - Pokémon Go: Gym Battles

Now, let’s dive into how I believe the pokémon locations are determined. A disclaimer if you will, the only way to 100% find out for sure how it works is to ask Niantic how they did it. What I am presenting here today is based on my observations and discusses how I believe it to work. While their system is much larger, I have attempted to miniaturize it and discuss it in a smaller more manageable version. I hope by doing so the concepts will be more approachable and less daunting. With that out of the way, let’s get to it!

The Grid:

Imagine a grid over Los Angeles, like this:

Within each section of the grid, the player can see up to nine different pokémon. The player can see which pokémon are within their grid space via checking the nearby section of the app.

These pokémon might be in F2 (in the square with Museum of Contemporary Art), while in G2 there is a whole different set of pokémon. When a player moves to a different grid space, different pokémon will populate in their “Nearby” page.

Side note: The pokémon also seem to cycle in and out based on time elapsed. Each pokémon will disappear after a certain amount of time has passed.

 

But how do they decide which pokémon will be in each grid space?

Enter a random number generator! For simplicity sake, I’m going to use only five pokémon in my example.

Now imagine you have a twenty sided dice. You’re going to roll the dice nine times, and those nine dice rolls will determine the nine pokémon in the K1 grid space. You can try this exercise out using the grid as follows:

Just from looking at this chart you can see a few things:

 

●      25% chance the pokémon will be a Pidgey

●      25% chance the pokémon will be a Rattata

●      25% chance the pokémon will be a Zubat

●      10% chance the pokémon will be a Growlithe

●      5% chance the pokémon will be a Goldeen

●      10% chance there will be no pokémon

(If you don’t have a D20 lying around, you can check out WIZARD'S DICE TOOL and use their digital dice)

Try it out! Roll the dice nine times. What did you get?

My rolls are:

4, 1, 2, 17, 20, 1, 5, 13, 4

This means that the 9 pokémon in K1 are:

1.     Pidgey

2.     Pidgey

3.     Pidgey

4.     Growlithe

5.     Nothing

6.     Pidgey

7.     Pidgey

8.     Zubat

9.     Pidgey

As you can see the results are random, but there is a higher chance of certain pokémon appearing over others. If we were to check a different space, we’d see different results. Maybe we’d find a space with mostly Zubats instead of Pidgeys.

So how does geography affect pokémon placement?

Let’s say, for example, we go to the pier. Now we’re over water, so there are more water pokémon appearing. How has our chart changed? Let’s take a look:

As you can see from the chart, things have changed. Now we have:

●      15% chance the pokémon will be a Pidgey

●      5% chance the pokémon will be a Rattata

●      15% chance the pokémon will be a Zubat

●      5% chance the pokémon will be a Growlithe

●      50% chance the pokémon will be a Goldeen

●      10% chance there will be no pokémon

Now, if we run our simulation with the updated chart, what do you get? I got:

2, 8, 16, 17, 2, 10, 6, 16, 19

This means that the nine pokémon in the space with water are:

1.     Pidgey

2.     Goldeen

3.     Goldeen

4.     Growlithe

5.     Pidgey

6.     Goldeen

7.     Rattata

8.     Goldeen

9.     Nothing

As you can see, while on land we had more Pidgeys, Rattatas and Zubats, but Goldeen rains supreme by the ocean. This is because there is a higher chance of Goldeen appearing based on the player's proximity to water. It’s safe to say then, if the player were near a volcano for example the number of Growlithes would increase just like the number of Goldeens increased when the player was near the water. Because of the random number generator, it is possible to find an area that has no pokémon, or even only one kind of pokémon. Though this is unlikely because Niantic is working with 150 different pokémon instead of just five.

Is it possible to catch any pokémon at any location?

I believe so. I know it sounds crazy, but at times I’ve found Goldeens and Goldducks in the middle of downtown L.A. miles away from the water. I think the possibility of a Goldeen showing up though is so miniscule that it will almost never happen. While our example used only 20 slots to choose pokémon from, Niantic’s would be using hundreds of slots resulting in some pokémon appearing less than .001% of the time.

Side note: Imagine you lived in the middle of Kansas with your dog Toto. What if a super rare pokémon to the area, like Venasaur, popped up? You’d race towards that Venasaur. This is the kind of effect they’re creating in players by allowing pokémon to appear anywhere just at an incredibly small probability. Players’ excitement will be rekindled again long after the initial excitement has dwindled because of this rare find. Additionally, they may have done it this way to simulate wandering pokémon who maybe got lost.

So, what factors cause the chart to adjust?

Niantic has come out and said that there are a couple of factors which influence pokémon appearing:

●      Location - Geography and location on the planet

●      Time of day - different pokémon come out at night than during the day

●      Pokémon rarity - how rare is the pokémon?

So, your location at midday might cause you to run into more Pidgeys, but at night the chart readjusts and there may be a higher chance of Growlithes.

Now that you understand the basics of how pokémon are distributed, we’re going to add one additional layer, common, uncommon, rare and legendary. This is actually a third factor, which influences which pokémon appear. Common pokémon, like Pidgeys, will appear in greater numbers than an uncommon pokémon. Uncommon pokémon will appear in greater numbers than rare pokémon and rare pokémon will appear in greater numbers than legendary pokémon. To help you visualize the distribution of these kinds of pokémon, check out this chart:

Side note: This is assuming the legendary pokémon are not attached to public events. Though the commercial for Pokémon Go made it seem like they were.

The distribution of pokémon rarity might look like this, with considerable amounts of common pokémon vs. the other types. Then we’ll see a few less uncommon pokémon and even fewer rare pokémon, with the legendries being almost nonexistent.

This affects our chart by adjusting the rarity of pokémon. For example, we know we’ll find more water pokémon near the water, as you can see in the slots listed as Goldeen in our charts above. If we expand to add more pokémon to the mix, you’re still going to see more Goldeens than you would a Blastoise. This is because Blastoise is a rare pokémon and Goldeen is common. There is a greater chance of Blastoise appearing because the player is closer to the water. But due to the rarity of Blastoise there may still be a higher chance of the player encountering a Pidgey instead.

Side note: The best way I can think of to explain it is a little more technical. Each pokémon already has a percentage of appearing based on their rarity. The system checks the location of the grid space. From the environment/geography, the chance of a pokémon appearing adjusts by increasing or reducing the percentage based on if the area is near water, or in a city, near a volcano, etc. The system will then select nine random numbers and select the pokémon for placement in the world. It then selects nine random locations within the single grid space to place the pokémon. This is why three different people can all see the same pokémon at the same space.

For those who like math, a simple algorithm for pokémon chance of spawning might look like:

Pokémon rarity x (D + G) = % Spawn chance

·       D = Day/night cycle modifier

·       G = Geographical modifier

Most of the pokémon would be less than 1% because there are 150 of them.

But what about incense and lures?

Pokémon can’t move independently in the world. They are tethered to the global system. Additionally, when two players are using incense at the same time, which way do the pokémon go? What about ten players?  Because of this, and that pokémon can’t move towards the player who is also moving across grid lines, it causes too much confusion and stress on the system. So incense actually creates a virtual space around the player spawning in additional pokémon. This is why when I activate incense; someone next to me won't always see the same pokémon I do. It is also why sometimes I’ll see rare pokémon that my friends standing right next to me can’t see. Additionally, there is a check to see if the player is moving. When the player is on the move more pokémon will appear for the player. You can tell incense specific pokémon by noticing a slight purple glow when they appear on the map.

Lures on the other hand are stationary. They work similarly to the incense; the space around the lure spawns an additional set of pokémon, acting as it’s own grid space. Because it is tethered to a stationary position and not player specific all players can see these pokémon. Due to this benefit of attracting pokémon for all players, we oftentimes see players congregate around lured pokestops. This helps to bring players together and creates a sense of community.

I hope this post has helped you to think about how Niantic distributes pokémon across the world. Like I mentioned before, this is based on my research I’ve conducted and I may be wrong. The only way to know for sure is to ask the designers at Niantic. Do you agree? Do you think I missed something? Let me know in the comments below and we can discuss it further. Next week we've got one more Pokémon Go post. After that, we'll continue on to other games.

I’ll see you guys next week,

Scott

Pokémon Go: Gym Battles!

In the last blog post, we talked briefly about the battle system. In this post, I want to dive a little deeper into it. We’ll talk about how it works, how the designer’s messaging to the player is displayed, and the pros and cons of how this battle system works. In the interest of brevity, we’ll be discussing pokémon locations in the next post. I’m trying to shorten these just a little bit. If you haven’t read my broad overview of Pokémon GO, I recommend checking it out first. It can be found HERE. Without any further ado, let’s dive into the battle system.

Very brief review from last week’s post:

·      Player takes six pokémon into opposing teams’ gyms.

·      Player takes one pokémon into their team’s gym.

·      Pokémon strengths and weaknesses have an effect on damage received and damage output.

·      Concept of CP is similar to a pokémon’s level from the original games.

Battle:

Now we’re in the battle, our six pokémon are prepped and ready to go. The battle begins.

The player has a few different options:

·      Tap the Screen: Weak fast attack

·      Tap and hold the screen: Slow very powerful attack

·      Swipe the screen: Dodge attacks

These controls really help Pokémon Go’s battle system to be successful. Because they are built around mobile devices, using inputs that most players already understand, anyone can play and enjoy the gym battles.

To see what a battle is supposed to look like, I recommend checking out GameXplain’s video:

You'll notice that when Raticate would attack, the screen would have yellow flashes around the boarder of the screen.

This Gif image was taken from the above GameXplain video.

It also would lunge forward immediately after the flash. The yellow flash messages to the player to swipe to dodge. The Raticate lunging forward is when the actual attack hits. Although these are only on the screen for a split second, they are broadcasted for the player. This allows the player to dodge. Unfortunately, that’s it. The enemy pokémon can’t dodge the player’s attacks or even move.

Let’s take a look at the flow of how a battle is suppose to work:

Chart made with Lucidchart

As you can see, the player is constantly watching the enemy attack and responding to them to minimize the damage against the player’s pokémon. The best Pokémon Go players follow this flow and are able to take down gyms that are considerably more powerful, because they use their skill to compensate for their weaker pokémon.

Now that we’ve taken a look at how the battles are supposed to work, let’s take a look at the flow of how 99.9% of players battle in Pokémon go:

You’ll notice that players don’t swipe to dodge or use the more powerful attack.

Why don’t players dodge or use more powerful attacks?

Most gyms I’ve seen will have maybe three or four pokémon in them. So going in, I’m at an advantage because I’ve got two more pokémon than the gym. I can simply overpower them by pure numbers. The other reason is that I can attack so quickly that I can take out their pokémon typically before mine even hits half. The slow attack makes me vulnerable for a few seconds, which almost guarantees that I’ll take a hit. Why would I use an attack that does forty damage every four seconds, when I can dish out eighty plus damage in the same amount of time by simply tapping the screen as quickly as possible?

Additionally, the AI always follows the same pattern:

·      Attack with a weak/quick attack every X seconds

o   If pokémon falls under one-third health, use slow/strong attack every X seconds.

Usually I can eliminate that pokémon before they get their strong attack out. And even if I can’t, it won’t last much longer because it has no way of avoiding my attacks.

While I don’t think the designers intended to have a shallow battle system, it seems as if it is due to how players play the game. The only way I can think of to fix this is to create a cool down for player attacks. This would force the players to actually dodge the opposing pokémon and think more strategically about combat. The other way to fix it would be to either force players to only have the same number of pokémon as the gym, or make it even easier for teams to fill up their gyms with six pokémon. These tweaks would even the battlefield a little bit more and require the player to have a little bit more skill to take a gym down rather than a fast tapping finger.

For the next post, we’ll be talking about the pokémon spawn locations. I know there were some requests for me to rip on the game due to the absolute terrible server issues, which nullify the point of the designer’s messaging in place. But as that is technically not part of the game’s design and actually a bug, so I’m going to leave it alone. I hope you enjoyed this post.

I’ll see you next time,

Scott