Fandom

Game Dev Tycoon Wiki

Sales Algorithm

98pages on
this wiki
Add New Page
Comments20 Share
Imbox warn.png
This page applies partially or entirely to version 1.3.9.

Its information may not be accurate for newer versions of the game.
If you update the article to reflect the current version, please archive the page referring to the older version and categorize adequately before removing this template. Please also change the background colour when you change the fitting!

Once a game is reviewed, the game computes the sales it generates, and the revenue you get from it.
Sales


This decomposes itself in three phases:

  1. Estimating the market size
  2. Calculating total sales amount
  3. Breaking it down in subsequent weeks

Market size estimationEdit

Custom consoleEdit

These calculations apply if you released a game for your own console

We define a "grid factor" f as :

  • If you have researched GRID and your custom console is the strongest console on the market : f=1.05
  • Otherwise f=1

Then the market size for your console is (whichever is greater)

S = 5 * (Sales earned from console sales / unit price of console) * f * 5 000 000

or

S = 5 * initial amount of units sold (See Custom Hardware sales algorithm)

Stock consoleEdit

These calculations apply if you released a game for a standard console

The "grid factor" f is defined as :

  • If you have researched GRID, PC is the strongest platform on the market and you released your game for PC : f = 1.05
  • Otherwise f = 1

Then the market size for your console is given, using the Raw Data for the corresponding console, if :

  • j is the amount for the next market point in the table
  • h is the amount for the previous market point in the table
  • g is the number of weeks since the previous market point
  • k is the number of weeks between the previous and the next marker points
S = ((j-h)*(g/k) + h) * f * 5 000 000

In simpler terms, plot the previous and the next market points, draw a line between them and read the value of the market size at your current date !

Total sales amountEdit

Primary expressionEdit

Let m be the adapted market size modifier from Raw Data, and S the market size as defined previously

M = S*m is the useful market size

R your review score for the game

P the Platform/Audience value defined in Raw Data for Review Algorithm

Before the computations begin, if you are using the torrented version of the game, or any version that has the G782 modifier set to true, past year 12 there is a 75 % chance that your score becomes R = 1 regardless of what it was before

We define a L modifier as follows :

  • If R ≥ 9 and you are in the 4th office : L = 1.25
  • If R ≥ 9 and you are not in the 4th office yet : L = 1
  • If R < 9 and the date is before year 6 : L = 0.65
  • If R < 9, you are past year 6 and in the 4th office : L = 0.35
  • If R < 9, you are past year 6 but not in the 4th office yet : L = 0.5

Then we have U the first market reach :

  • If R ≤ 9
U = (2 / 1000) * R³
  • If R > 9
U = R³ / (100 - 35(R-9))

then U' is the actual market reach :

U' = ((2 / 150) * L * U + 0.008) * P

and K = M * U' the amount of copies sold (rounded down to have an integer value)

Hype factorEdit

The hype factor h is defined from H the number of hype points gathered at the time of release : h = H/500 , and h is then capped to 1. K is then modified to reflect hype effects :

  • If R >= 5 : K is increased by : ({A} means A rounded down to the previous integer)
{0.05 * M * h * ((R - 5) / 5)}
  • If R <= 5 : K is decreased by : ({A} means A rounded down to the previous integer)
{0.25 * M * h * U * (R/5)}

At this point, K is capped to M, which means that you cannot sell more copies of the game than the number of consoles in the world :)

Publisher & Fans influenceEdit

Fan targets are in the Raw Data

  • If the game is published through an exterior publisher, and you have fewer fans than the fan target : K is increased by (Fan target - Actual fans) * (R / 10)
  • If the game is self-published K is increased by (fans * (R / 10))

Fan increaseEdit

[A <-> B] means a random number between A and B Your "fan increase" amount F is then updated :

  • If R >= 7 and the game is either not a sequel or a sequel to a game that is more than 40 weeks old : F is increased by [5% <-> 10%] (of your current number of fans) This adds to the following bonus for R >=5 if it applies
  • If R >= 5, the game is either not a sequel or a sequel to a game that is more than 40 weeks old, and it is published by an exterior publisher :
    • If you have more fans than the Fan Target for your size of game : F is increased by 0.005 * M * (R / 10 + [0 <-> 0.1])
    • If you have less fans than the Fan Target : F is increased by 0.005 * M * (R / 10 + [0 <-> 1])
  • If R <= 5 or the game is a sequel to a recent (< 40 weeks) game : F is set to  [-0.25 * (# of fans) * (1 - R/10) <-> 0]

Final amountsEdit

Final amount of sold copies : ([A <-> B] means "a random number between A and B")

J = 0.8 * K * (R/10) + [0 <-> (0.2 * K)]

Then if the game is an AAA MMO, J is multiplied by 1.45,

If P is the unit price of the game as defined in Raw Data, the total revenue generated by the game will be approximately (because there is a random factor in the weekly sales) :

C = J * P

Weekly breakdownEdit

The C value defined previously is then distributed over the course of several weeks, and the game is taken off the market when its total revenue is greater than C.

Note : C can be modified by exterior factors (namely conventions) before the end of sales, which means that sales numbers are not entirely determined at release

Every week, the game applies the calculations from the previous week, then computes the sales numbers for the following week. S is the total income gathered for the game so far

Achievement modifierEdit

There is some sort of modifier that is related to whether you have sold over some fixed amounts of copies. It matters only if you are not selling an MMO, and you are self-published.
Sales AnomalyEdit
First, the game checks whether your game passed a threshold the previous week. Those thresholds are listed in Raw Data. There is an exception though : once one of your games passed 100K, none of the ≤100K thresholds are taken into account anymore. Only the highest achieved value that week counts.
If you have topped one of those values, let e be the corresponding value in the table,
Amod = e/(#number of sales anomalies for that game)
and go to Modifier Calculation
Top ScoresEdit
If your game had a review score counted as top score(see Review Algorithm) and you are in the 1st, 2nd or 3rd week of sales, then the Amod value is the one from the list in Raw Data.
Else, if you are before the 8th week of sales, and one of the following conditions is verified : 
  • You had less than the following number of sales anomalies in the previous weeks :

Review score

Number of anomalies
10 3
8 <= Score < 10 2
Score < 8 1
  • Your score is 10
  • You have already had this (since "Else") bonus before
Then
Amod = 0
Note : this value is very strange, I have an empty function where it should be calculated
Modifier CalculationEdit
Finally, the modifier is
A = Amod * 0.3 * C
Rounded to the previous integer

Raw IncomeEdit

The efficiency factor e can be found in Raw Data
For MMOsEdit
I = [0.05 <-> 0.1] * e * (C - S)
  • If I ≥ 100K, C is increased by I/2
  • If I < 100K, C is increased by I/2 + 100K, then I is set to 100K.
For non-MMO gamesEdit
Remaining out of C
I
(C-S)/C <= 0.01*e
0
0.01*e < (C-S)/C < 0.1*e
I = [0.4 <-> 0.8]*(C-S)*e
0.1*e <= (C-S)/C
I = [0.2 <-> 0.4]*(C-S)*e

Final Weekly income and Fan gainEdit

Fan modification for the following week is, with F the total fan increase calculated in the previous part : F* I / C
Total income for the following week is :
  • I is the raw income
  • A is the Achievement modifier
  • R is your royalty rate (R=1 (100%) if self-published)
I' = (I + A/2) * R
If I' = 0 then the game is taken off the market

Maintenance calculations (only if MMO)Edit

  • Same notations as previous paragraph
  • L is the number of weeks since release of the MMO (expansions do not reset the value)
M = (I' + S)/100 + I' / (L³ + 3)

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.