Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to make a game in which the players create different products (supply), and I give them a certain finite number of customers (demand). Players can choose the price and quality of their products (among perhaps other variables).

I've been trying to come up with an algorithm to decide on the market share of each product based on those variables. I could do something random, but thought I'd ask first!

share|improve this question
I have answered a question here before about this: I just can't find it. Probably the most basic route would be to use Supply and Demand - you would get a pretty good estimate from that as well. Related:… – Jonathan Dickinson Feb 6 '12 at 15:12

You can do this quite effectively with the following approach:

  • Give each product an "attribute vector" (quality variables such as amount of crunchiness, whatever....)
  • Create pool of 1,000 customers or so to represent the market
  • Give each customer a "taste vector" - i.e. how much they value each product attribute
  • Each customer evaluates all products, and chooses the product where the dot product of the taste vector with the attribute vector minus the price is highest (if this is still negative... the customer opts not to buy anything)

If you want to add in more real world market features you can also try:

  • Customer stickiness - customers stick with the previous product they purchased X% of the time (chosen randomly).
  • Brand perception - make the actual attributes of the product different from the perceived attributes of the product.
  • Novelty effect - if a product is new and well-marketed, customers may buy it once anyway regardless of their preferences (this typically only applies if the purchase is relatively small, of course...)
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.