11 February 2013

NPC Pricing - There are more options than you think

-
---
-----
(hypothetical conversation between a Game designer and me)
-How much gold (tokens) should a NPC charge for an item inside your MMORPG? - I ask
-Some fixed value. Well a fixed ratio is fair, right? I mean I wouldn't like to go to the grocery and find that bread has suddenly double in price while my salary is the same. - Explains the game designer.
-That's one Logic. What about FF VII, do you see that they used another logic? - I reply
-Yeah, in FF VIII prices increase as player can earn more gold from winning more difficult battles. Shops overall prices take an estimative of how many fights a regular player wins and how much gear the player needs to buy when he gets to a specific point in storyline. - Reminds him with nostalgia.
-Yeah, that's FF VIII logic. 
-So... - I speak, as I prepare to make my point
-How do you decide which price to put in your stores? - I repeat
-Ahhhh... I make an estimation of how much gold a regular player earns playing, like FF VIII did. - He assumes he just copied the FF VIII Pricing system - a system designed for a single player game.
-That's neither necessarily fair or a justified "designing decision"! You can do much better than that! - I scold him
(This dialog would make a nice cartoon)
-----
---
-
Applied Examples
   To skip theoretical explanation about buying from NPCs behavior and Algorithm optimization jump to applied examples:
More Theory
   To understand some additional concepts read:

Psychology for Pricing
Keep in mind the following: 
  • A NPC shop is just a Token Trading Contingency (read: Token Economy - Wikipedia)
  • Gold is a token and making a good Currency is difficult (read: Gold - Currency x Token)
  • Buying behavior only occurs if what is bought is a reinforcement - The act of trading a token is a behavior and it needs an effective  Reinforcement to occur (Token economy requirement)
  • When under Alternative Schedules for token trading, most adaptive organisms will opt for the most advantageous schedule as soon as they learn available schedules -This is a fancy way to say that either:
    1. If a player has enough tokens he will trade them for the "Good"
    2. If a player doesn't have enough tokens he will acquire more tokens because this will lead him to the "Good"
    3. If a player doesn't have enough tokens, he will do something to change how many tokens are required to obtain the "Good"
    4. If a player doesn't want "Good" he won't spend tokens
  • A game designer can use the same reward in different Token Economies, each requiring a different behavior:
    • A NPC can trade 100 gold pieces for an Iron Sword - Players get gold by killing monsters
    • Another NPC can trade 10 Iron Ore pieces for an Iron Sword - Players get Iron Ore pieces by Mining
    • The choice of either Player Killing or Mining depends on the "Size" - This is a Behaviorism term for "cost-benefit"
  • NPC Stores, inside a MMORPG, are both a Gold Sink (at a currency perspective) and Token Trading Contingency (in player behavior perspective)
  • "Tradition" isn't an acceptable excuse to not develop alternative systems more suitable for your game style or the player behaviors you'd like to have.

What is a Price
   Stop for a moment and try to think about price in an abstract way:
  • Consider a semi-line. It has an origin (point 0) and no limit in one way.
  • When you set the price of a NPC Store good, you can say that the good is a point in that line

   A price value can be understood as a variable measured at Ratio Scale (Check: Levels of Measurement). This means:
  • Either something has a positive price (U$ X) or it doesn't have a price at all (free).
  • "Negative Prices doesn't exist". This means that a Price reduction function needs to be multiplicative in relation to current price in order to prevent price from going negative.
  • If Good A cost X and Good B costs 2X - You can say that B is worth 2 A.
   An apparent problem is when a player finds a way to buy something cheap then, in a later moment, sells it for more than he paid initially. That's an intelligent use of the variation of Token Trading Ratios, a expected behavior for a human. Behavior Analysis:
  • Observation: A Player acquires tokens without doing the behavior intended by the designer (Farming/Playing). Since all possible player behaviors are defined by game designer, this is either a unintended behavior option or poorly adjustment in the variation of token trading ratios.
Lesson: If a player can acquire tokens in any other way the designer didn't intend to then the designer made a mistake.

How to build a price algorithm
    A Game Designer can choose to make the price of something variate due whatever factor he wants. I'll use an example from Guild Wars, a MMORPG that had a NPC Called Rune Trader. The price the Rune Trader charges for each Rune is increased if a player buys a rune and decreases if a player sells a rune to him. We can assume the design process was like this:
    • Prices should increase by Function (A) for each item a player buys (Player Behavior - Discrete Variable - Condition 1)
    • Prices should decrease by Function (B) for each item a player sells (Different Player behavior - Discrete Variable - Condition 2)
    • We need to set a initial price for the NPC
 Then they went to program it:
  1. Starting Price is X
  2. If condition 1 then Price change by Function (A)
  3. If condition 2 then Price change by Function (B)
   Note that they had to choose an initial price. This decision was probably made like this:


F (Initial Price) = F (Item relative Power) * F (How much gold a starting player might have/acquire)

   After having that initial number, he converted his desire to make prices variate into  functions, here's a hypothetical example for Function (A):


F (price increase) = (% price should rise with each buy)
F (after a buy) = (Current Price)* (1 + % price should rise with each buy)

   In other words, he's just programing a way to make prices variate due player behavior! Well that's true because everything that happens inside a game should happen because of player behavior. Now, back to the algorithm building, take these two valuable lessons:



Lesson: Price Variation, unlike prices themselves, can be either Positive or Negative
Lesson: F (Initial Price) ≠ F (Price Variation)



Interlude:

   What is a game? Well, under Behaviorism theory, you could say that a game is a carefully orchestrated group of contingencies a player willingly subjects himself to.
   Why people repeatedly play games? Well, playing games can either have some Positive Reinforcement as consequence - Fun, Joy, Increased Self-esteem - or a Negative Reinforcement like the removal of an aversive stimulus like Boredom or Stress. While common sense supposes people play for fun, that's far from being an absolute truth as my explanation just illustrated.
    On the other hand, let's look at Designer perspective. I have made a pretty good quote to summarize the power a game designer has:
"Games are the ultimate Skinner box".
   Since a game designer have full control over all game elements but player's actual behavior, he has a high degree of Scientific Control. The choices in the Pricing function should be based on player behavior because a game is meant to be a response to player behavior (Playing). Choosing any other logic isn't coherent inside a game. Well a Designer's Logic might be make his product as lucrative as possible, so that makes 2 possibilities.


Pricing variation based on Player Behavior
   So far it should be clear that a designer should seek making price variation a function based on player's behavior and that there are 2 different functions to consider - Initial Pricing and Price Variation. Price variation can be described in a much more elegant algorithm, without mixing Discrete and Continuous Variables or using conditions to decide whenever to use which function:
 F (Price Variation) = F (Price increasing behavior - Price decreasing behavior)
    These player's behavior based functions can be understood as opposing vectors modifying a Price Variation:
  • Direction - A specific behavior can either increase or decrease price
  • Magnitude - The variation is defined by the use of variables chosen by our arbitrary rules inside a game setting
    • A Price increasing behavior produce positive variation in price defined by how many counts of the behavior we observe. The reverse hold for negative factors.
 

   What indicator you will be used to count a "specific playing behavior"? Well we a great plethora of options and  I'll write some articles giving some applied examples:


References: