Objects of this class are used for every single game project.
MMO_CAPACITY_USE_PERCENTAGE (0.7)
a dialogue regarding high server use will be started when about to release another MMO game with the server use scalar being greater or equal to this value.
OUTSOLD_DEV_COSTS_AMOUNT (1.25)
a game must outsell the development costs by this much for the developers to talk about how profitable it is.
MAX_NAME_SYMBOLS (35)
maximum game name length.
TESTING_SESSIONS (60)
amount of test sessions for a single test task (employee testing).
POPULARITY_TO_TIME_SALE_AFFECTOR (2000)
for every this many popularity points we will reduce the time sale affector by 1.
MAX_TIME_SALE_AFFECTOR_FROM_POPULARITY (5)
we can reduce the time sale affector max. by this much from gained popularity.
STATIC_PURCHASING_POWER_LOSS (0.33)
the static purchase power loss.
DYNAMIC_PURCHASING_POWER_LOSS (0.67)
additional purchase power loss based that is affected by the relation between the set price and the ideal price.
MAX_OF_PLATFORM_USERS_TO_SALE (0.3)
per each week we can sell a max to this many platform users on a single platform.
TIME_SALE_AFFECTOR_MULTIPLIER (0.5)
higher values = faster fall off of sales, etc.
SCALE_TO_WORKAMOUNT_MAX (0.9)
the work amount we must complete (in %) at the highest price point.
SCALE_TO_FEATURE_COUNT_MAX (0.9)
the amount of features (in %) we must select at the highest price point.
SCALE_TO_FEATURE_PRICE_DELTA_MULTIPLIER (0.125)
used in calculating the feature-to-price penalty. Higher value = higher penalty when the penalty is applicable.
SALE_BOOST_PER_POSITIVE_SCALE_PRICE_RELATION (0.25)
the boost in sales from pricing a game lower than what is considered the ideal price for it.
MAX_EXTRA_INTEREST (5000)
the amount of interest our project can attain after it has exceeded our reputation level before it starts greatly slowing down.
MAX_FINAL_INTEREST (20000)
the final amount of interest we can get after it has surpassed MAX_EXTRA_INTEREST before it reaches MINIMUM_INTEREST_GAIN in the multiplier of the change.
MINIMUM_INTEREST_GAIN (0.01)
the minimum increase in popularity/interest after we've reached the limit DEVELOPMENT_CATEGORIES
MMO_DEVELOPMENT_CATEGORIES
table containing task categories that will be created when selecting features for a MMO type game.
CONTENT_DEVELOPMENT_CATEGORIES
table containing task categories that will be craeted when selecting features for an Expansion Pack type game.
DEVELOPMENT_TYPE
map containing game type IDs.
DEVELOPMENT_TYPE_ORDER
the order list of game types for selection in the new game menu.
SEQUEL_DEV_TYPES
map which indicates which games can have a sequel made for.
SCALE
map which indicates the maximum scale boundaries for each game type. Key is game type ID, value is a table containing 2 indexes: min and max boundaries.
POPULARITY_SCORE_AFFECTOR
table containing maps which are used for determining the affector for popularity and hype (moment popularity) based on the score of the game. Use table.print on this table for more info). Observe the order of the table.
ASK_FOR_MORE_CONTENT_RATING (8)
if a game's rating is >= this, then fans are going to "ask for more content".
ASK_FOR_MORE_MIN_SALES (100000)
we must have at least this many sales for fans to say "more please".
ASK_FOR_MORE_MAX_TIME (20)
we will ask for more content if we sell at least ASK_FOR_MORE_MIN_SALES copies in <= this much time.
MAXIMUM_VARIETY_PENALTY (0.25)
the lowest the sale affector from lack of variety can go to.
MIN_DELTA_FOR_PENALTY (200)
the difference in content amount must be at least this large for a content penalty to be active.
VARIETY_PENALTY_MIN_DELTA (0.25)
when the distance between the largest amount of content and the least amount of content is this big (divided by the average of project scale of all content packs) we will induce a penalty.
CONTENT_TO_PRICE_MAXIMUM_PENALTY (0.1)
the maximum sale penalty from a bad sale-to-content relation.
CONTENT_TO_PRICE_RELATION (50)
a price of 4.99 requires a minimum content amount of this much to not induce a penalty.
CONTENT_DELTA_TO_PENALTY (0.05)
per each point in this when the price-content relation is <0 we will lose this many sales %.
CONTENT_AFFECTOR_MINIMUM_NOTIFY (0.9)
if one of the content sale affectors is lower than this, we will create a popup in which we will notify the player of the reason why it might not be selling as well.
EXPANSION_SALE_DROP_OFF_TIME_PERIOD (360)
after this many days pass of the original game's release, the expansion pack sales will begin decreasing.
EXPANSION_SALE_DROP_OFF_TIME_SPEED (240)
used in calculating the sale affector after a lot of time has passed since the release of the original game. Higher values = slower penalty induction.
EXPANSION_SALE_DROP_OFF_EXPONENT (2)
apply an exponent of this much when calculating the original game's release date sale affector.
MAX_EXPANSION_SALE_DROP_OFF (4)
the maximum sale divider for when an expansion pack's original game release is far in the past. THEME_SALE_AFFECTOR_MULTIPLIER (0.5)
INTEREST_TO_PLATFORM_INTEREST (0.4)
transfer this much of the game's interest to the player-made platform. ISSUE_EVALUATION_MINIMUM_DAYS_PASSED (3)
ISSUE_EVALUATION_MINIMUM_SALES (50)
the minimum amount of sales required for people to complain about the amount of issues in the game.
ISSUE_COMPLAINTS_LEVEL
table, the score affector from issues must exceed one of the indexes in this table for the players to start complaining about the buggyness of the game.
BASE_QA_TIME (4)
the base amount of days a QA session lasts.
SCALE_TO_EXTRA_QA_TIME (3)
multiply scale by this much and add it to the QA time.
QA_ISSUE_DISCOVER_MIN_CHANCE (10)
the minimum chance for an issue to be discovered in QA.
QA_ISSUE_DISCOVER_MAX_CHANCE (85)
the maximum chance for an issue to be discovered in QA.
QA_ISSUE_DISCOVER_CHANCE_DIVIDER (100)
divides the total amount of undiscovered issues by this when calculating the amount of iterations to run the issue discovery logic through.
QA_DISCOVER_ATTEMPTS ({20, 30})
how many issue discovers will be attempted in one day.
QA_BASE_COST (3000)
the base QA cost.
QA_COST_PER_DAY (1000)
per each day the QA session will be held for, increase the cost by this much.
QA_COST_SCALE_MULTIPLIER (0.5)
overall cost + overall cost * QA_COST_SCALE_MULTIPLIER * scale.
QA_COST_ROUNDING_SEGMENT (500)
round the QA session cost in segments of this much.
ISSUE_DISCOVERY_MINIMUM_FACTOR (0.15)
the minimum percentage of the amount of people that have purchased the game that can discover issues (no matter how bad a game is, someone will still play it).
ISSUE_DISCOVERY_MAXIMUM_FACTOR (0.8)
ditto, but maximum (no matter how good a game is, some people will not play it even though they bought it).
MAXIMUM_SCORE_BEFORE_FACTOR_DROP (7)
how good the game should be (on a scale of 1 to 10), independent from reviews, before the issue discovery chance percentage drops.
AUDIENCE_TO_DISCOVERY_DIVIDER (200)
for every this amount of sales a single issue will be discovered.
MAXIMUM_ISSUES_DISCOVERED_PER_DAY (25)
the maximum amount of issues that can be discovered in a single day.
MIN_REPETITIVENESS_FOR_PENALTY (6)
every time we find a game genre that we've already seen, we will increase a "penalty" value, if it exceeds this value, then we will start increasing the "repetitiveness" penalty. Same theme count + same genre count >= this value.
UNIQUE_REPETITIVENESS_PREVENTION (6)
if uniqueThemeCount + uniqueGenreCount > this value, then no penalty will be applied, regardless of how many games of the same genres & themes we've got.
REPETITIVENESS_PENALTY_TO_DIVIDER (0.2)
multiply penalty value by this much, and add the result to 1.
MAX_TIME_DIFFERENCE (2400)
games older than this will not be taken into consideration when calculating the repetitiveness penalty.
BASE_REPUTATION_PER_REVIEW (1500)
the maximum reputation we can get from a single review.
NEGATIVE_REPUTATION_CUTOFF (3)
if the review rating is <= this, we lose reputation.
REVIEW_REPUTATION_CHANGE_RANDOM ({-0.16, 0.16})
random multiplier range to the reputation we get from a review.
SCORE_SALE_MULTIPLIER (0.5)
multiply the score sale multiplier by this.
MAX_SCORE_SALE_MULTIPLIER (5)
the maximum sale multiplier from the score.
MAX_EXTRA_SALES_FROM_SCALING (3)
the maximum sale multiplier when our scale is high, but our price is lower than usual for such a project.
MIN_SALE_MULTIPLIER_FROM_SCALING (0.1)
the minimum our sale multiplier can drop down to.
SALE_SCALE_DROP_EXPONENT (1.5)
the exponent for the sale divider when our sale-scale multiplier is positive.
MAX_SCALE_OFFSET (0.7)
max scale offset towards the upper side before we start penalizing for a game price that's too high.
MINIMUM_SALE_MULTIPLIER_FROM_PRICE (0.1)
the lowest our sale amount can get multiplied by when our price is maximum.
POPULARITY_TO_EXTRA_SALES (0.2)
multiply popularity by this much when calculating the amount of sales the game can sell.
HYPE_TO_EXTRA_SALES (0.8)
multiply hype by this much when calculating the amount of sales the game can sell.
EXTRA_REPUTATION_POPULARITY_SALES (0.33)
sales + min(pop * POPULARITY_TO_EXTRA_SALES + momentPop * HYPE_TO_EXTRA_SALES, reputation) * this value.
MINIMUM_RATING_SALE_MULTIPLIER (0.1)
how low the sale multiplier can go due to a low rating.
RATING_SALE_MULTIPLIER_EXPONENT
the exponent for the rating sale multiplier.
OVERALL_SALE_MULTIPLIER (0.33)
possible sales per week are multiplied by this.
RATING_SALE_TIME_REDUCTION_EXPONENT (1.15)
days passed since release ^ this value.
RATING_SALE_TIME_REDUCTION_MULTIPLIER(0.15)
(days passed since release ^ RATING_SALE_TIME_REDUCTION_EXPONENT) * this value.
PERCENTAGE_OF_INITIAL_SALES_ON_MARKET (0.025)
as long as the weekly sales exceed this much of the initial sales, we can stay on-market.
MIN_SALES_OFFMARKET_INCREASE (5)
the lowest amount of sales our project can get each week until we start increasing the "go off-market" counter.
FULL_SALE_POWER_TIME (10)
the amount of time that our sales will be at full power (no time passed penalty).
SALE_ATTEMPTS_UNTIL_NO_SALES (10)
if the game sells below PERCENTAGE_OF_INITIAL_SALES_ON_MARKET of initial sales this many sale generation attempts, then this product will not sell anymore.
REPUTATION_SALE_MULTIPLIER (0.5)
reputation * this value = how many extra sales we will get from reputation alone (affected by a lot of other factors).
MAX_SALES_PER_PLATFORM (0.5)
the maximum we can sell on any platform
affected by the game score.
QUALITY_SALE_MULT_INTEREST_REQUIREMENT (7500)
this much interest is required to increase the rating sale multiplier by 1.
AUTO_ADD_INTERVIEW_COOLDOWN (50)
chance for a new review every time a new day dawns.
GLOBAL_AUTO_ADD_INTERVIEW_COOLDOWN (3)
global interview cooldown in days after handling an interview.
MAX_AUTO_ADD_INTERVIEW_CHANCE (30)
the chance for an interview to be automatically added on its own.
MAX_INTERVIEWS_PER_REVIEWER (2)
the maximum amount of interviews every single reviewer community can auto-add to the player's project.
REVEAL_REPUTATION_AFFECTOR (0.1)
multiply our reputation by this much when calculating the reveal score.
REVEAL_MINIMUM_REVEAL_TIME_DIFFERENCE (240)
the time difference between this game and the selected related game when calculating the reveal score.
REVEAL_EARLY_REVEAL_PENALTY (2)-per each day that was announced too early, we take away this many reveal score points.
REVEAL_BOOST_PER_DAY (0.5)
per each day that was announced past the penalty timeline, we receive this much boost of reveal score points.
REVEAL_BOOST_MAX (480)
up to a max of this value (in this case, up to 4 years).
REVEAL_SCORE_TO_REPUTATION (0.01)
convert this much of the reveal score to gained reputation.
REVEAL_AVG_SCORE_OF_PREV_GAME_MINIMUM (6)
if the avg score of the previous game is lower than this, then the reveal score points are lowered, if it's higher than this, the reveal score points are increased.
REVEAL_PREV_GAME_SCORE_DELTA_AFFECTOR (200)
per each point above REVEAL_AVG_SCORE_OF_PREV_GAME_MINIMUM, we gain this many reveal score points.
REVEAL_PREV_GAME_POPULARITY_AFFECTOR (0.01)
per each popularity point of the previous game, the new game gains this many reveal score points.
REVEAL_PLAYERBASE_AFFECTOR (0.001)
per each person within a playerbase, we gain this many reveal score points.
REVEAL_PLAYERBASE_REP_LOWER_BOUND (60000)
since the reveal strength is now capped to popularity, our lowest bound from rep-to-platformusers is this value.
REVEAL_PLAYERBASE_AFFECTOR_RANDOM ({0.75, 1.25})
the random multiplier for the reveal score based on the user base affector.
REVEAL_SCORE_TO_POPULARITY (0.1)
convert this much reveal score to project popularity gain.
REVEAL_NEW_GENRE_AFFECTOR (0.15)
multiply current rep by this much and add the result to the reveal score when making a game of a genre we haven't made before.
REVEAL_NEW_GENRE_MINIMUM_REPUTATION (2000)
minimum reputation required for the 'new genre' affector to be added.
REVEAL_NOT_EXCITED_AVERAGE_SCORE (6)
if the average game score of all games is <= than this, then the public won't be as excited.
REVEAL_NOT_EXCITED_NEW_GENRE_AFFECTOR (0.005)
if the public isn't excited then multiply the 'new genre' by this.
PRIORITY_MIN (0.25)
minimum priority for a task category that we can set.
PRIORITY_MAX (1)
max priority for a task category that we can set.
POPULARITY_TO_FADE_AFFECTOR (0.25)
when popularity is increased, the "popularity fade" is increased by popChange * thisValue.
POPULARITY_TO_FADE_SPEED_DECREASE (0.1)
the "popularity fade speed" is decreased by popChange * thisValue.
POPULARITY_FADE_SPEED_PER_DAY (1)
per each day the popularity fade speed increases by this much.
POPULARITY_DECREASE_SPEED_PER_DAY (0.75)
increase the amount of Hype points lost by this much per each day when the "popularity fade" value is lower or equal to 0.
POPULARITY_MULTIPLIER (0.25)
when we advertise, the gained popularity is multiplied by this.
MAX_POPULARITY_FADE_VALUE (1000)
the maximum the popularity fade value can go up to by increasing popularity of the project.
REPUTATION_DECREASE_MINIMUM_POPULARITY (1000)
when popularity + hype > this value we will lose reputation if we scrap the game.
REPUTATION_LOSS_PER_POP_POINT (0.1)
for each point in hype + popularity above REPUTATION_DECREASE_MINIMUM_POPULARITY we will lose this much reputation.
PLATFORM_HYPE_DIVIDER (0.5)
for each platform selected, the divider of the boost from moment popularity (hype) will increase by this.
PLATFORM_HYPE_BASE_DIVIDER (1)
the base divider value.
PREVIOUS_GAME_EXTRA_SALES_RATING_CUTOFF (-6)
1 + math.max((this value + previous game score) / 10, 0) = sale multiplier.
MINIMUM_TIME_TO_SEQUEL (180)
minimum amount of time that has to pass before releasing a sequel to a game in order to not suffer from a penalty.
SEQUEL_LOW_TIME_PENALTY (0.7)
if the game was released in less than MINIMUM_TIME_TO_SEQUEL, the sequel sale multiplier will be multiplied by this value.
MIN_SEQUEL_TIME_BONUS_MULTIPLIER (1)
the lowest sequel sale multiplier after the minimum time requirement has passed, should not be lower than SEQUEL_LOW_TIME_PENALTY, because then it will make no sense.
MAX_SEQUEL_TIME_BONUS_MULTIPLIER (1.5)
the highest sequel sale multiplier from the time affector.
TIME_DIFFERENCE_EXPONENT (1.15)
apply a time difference exponent when calculating the sequel sale affectors.
TIME_DIFFERENCE_DIVIDER (1000)
divide the final time difference by this much when calculating the sequel sale affectors.
DEFAULT_POPULARITY_TO_REPUTATION_MULT (0.02)
when adding reputation from gained popularity, we convert this much of the gained popularity to reputation.
SALE_POST_TAX_PERCENTAGE (0.8)
an imaginary 20% tax per each sale.
REPUTATION_GAIN_FROM_POPULARITY_WITH_CONTRACTOR (0.1)
multiplier on reputation gain from popularity increase if the game is being made for a contractor.
MAX_WORK_PERIOD_EXTENDS (3)
maximum amount of times we can extend the work period.
HYPE_COUNTER_INCREASE (1)
when we hype our game during interviews, the hype counter increases by this much.
BASE_HYPE_RATING (5)
the base rating if the hype counter is present required for no reputation loss.
BASE_HYPE_COUNTER_VALUE (4)
the base value when calculating the "hyped up project" penalty. Lower = lower penalty.
BASE_HYPE_RATING_OFFSET (0.5)
offset the penalty rating by this much, so that if the rating difference is not too big the player doesn't get a penalty.
MULTIPLIER_PER_HYPE_COUNTER (0.05)
multiply the hype counter delta by this when calculating the penalty.
MAX_HYPE_COUNTERS (4)
the maximum amount of times we can hype up a game during an interview.
HYPE_MAX_REP_LOSS (0.9)
the maximum of our current reputation that we can lose from overhyping the game.
DEFAULT_POP_GAIN_LIMITER_MULTIPLIER (1)
the default multiplier for popularity gain.
REVIEW_REPUTATION_GAIN_PER_SCALE_POINT (6000)
per this many points in reputation we must increase the scale by 1 to not suffer a decrease in reputation gained from reviews.
REVIEW_REPUTATION_CUTOFF (8000)
distance in scale vs reputation gets divided by this value when the distance is <0.
REVIEW_REPUTATION_CUTOFF_PENALTY_MULTIPLIER (0.2)
the final value gets multiplied by this, is min'd to 1 and is used as a lerp delta between REVIEW_REPUTATION_MIN_REP_GAIN and REVIEW_REPUTATION_MAX_REP_GAIN.
REVIEW_REPUTATION_MIN_REP_GAIN (0.1)
as explained above.
REVIEW_REPUTATION_MAX_REP_GAIN (1)
as explained above.
MAX_REVIEW_REP_GAIN_SCALE (0.8)
the game scale has to be this close to 100% of max current possible max scale to get 100% of reputation for a game.
MAX_REVIEW_REP_GAIN (1)
the maximum multiplier for gained reputation.
MIN_REVIEW_REP_GAIN (0.05)
the minimum multiplier for gained reputation.
MIN_REVIEW_REP_GAIN_REPUTATION (20000)
the maximum reputation cut-off before we begin losing the amount of reputation we can get from reviews.
MIN_REVIEW_REP_GAIN_UPPER_LIMIT (0.55)
the minimum bound gets increased by this much the further away our rep is from MIN_REVIEW_REP_GAIN_REPUTATION.
TIME_SALE_AFFECTOR_CHANGE_MULTIPLIER (0.5)
when generating sales the increase in the timeSaleAffector value will be multiplied by this.
MMO_EXPANSION_PACK_COOLDOWN (0.2)
multiply all expansion pack sales by this much when there is a cooldown on the amount of content the people can buy.
MMO_EXPANSION_POPULARITY_TRANSFER (0.25)
this much of the expansion pack's popularity will be transfered to the base MMO project.
MMO_MAX_PLATFORMS (2)
the max amount of platforms we can make an MMO for.
MMO_BASE_SALE_MULT (0.5)
multiply all sales by this much, because mmos generate a lot of money via subs.
EXPANSION_POPULARITY_TRANSFER (0.4)
this much of the expansion pack's popularity will be transfered to the base project (when it is not a MMO).
CONTENT_TO_TIME_SALE_AFFECTOR_DIVIDER (8)
divide the total content point amount by this value when releasing an expansion pack when increasing the selling capabilities on the base game.
BEGAN_WORK
fired when beginning work on a game project. arguments: the project
FINISHED_GAME
fired when work on a game is finished. arguments: the project
SET_PREQUEL
fired when a related game has been selected. arguments: the project, the related game.
ANNOUNCED
fired when announcing a game project. arguments: the project
CHANGED_PRICE
fired when changing the price of a game project. arguments: the project
REACHED_RELEASE_STATE
fired when the project has reached a stage which allows the player to release the game as it is. arguments: the project
DEVELOPMENT_TYPE_CHANGED
fired when changing the game type. arguments: the project, the new game type.
NEW_REVIEW
fired when a new review has been published for a game project. arguments: the project, the review object.
CHANGED_GENRE
fired when the genre has been changed. arguments: the project, the new genre.
CHANGED_THEME
fired when the theme has been changed. arguments: the project, the new genre.
GAME_OFF_MARKET
fired when a game goes off-market. arguments: the project.
SCALE_CHANGED
fired when changing the scale of the project. arguments: the project, the new scale.
WORK_PERIOD_EXTENDED
fired when extending the work period. arguments: the project
CATEGORY_PRIORITY_CHANGED
fired when a task category priority is changed. arguments: the project, the new priority, the old priority, the category ID.
OPENED_INTERACTION_MENU
fired when opening the project interaction menu. arguments: the project
PLATFORM_STATE_CHANGED
fired when selecting/deselecting a platform. arguments: the project, the platform ID, the new state.
PUBLISHER_SET
fired when setting a publisher. arguments: the project.
AUDIENCE_CHANGED
fired when changing the target audience. arguments: the project.
ENGINE_CHANGED
fired when changing the engine. arguments: the engine.
ISSUE_DISCOVERED
fired when an issue has been discovered. arguments: the project, the issue type.
ISSUE_FIXED
fired when an issue has been fixed. arguments: the project, the issue type.
COPIES_SOLD
fired when game copies have been sold. arguments: the project, the amount of sales.
UPDATE_SALE_DISPLAY
fired when updating the sale display UI element. arguments: the project.
QA_OVER
fired when a QA session is over. arguments: the project.
QA_PROGRESSED
fired when a QA session has advanced. arguments: the project
TREND_CONTRIBUTION_UPDATED
fired when the trend contribution has updated. arguments: the project.
INITIAL_FINISH
fired when work on a game is finished. arguments: the project
PRE_RELEASE_VERIFICATION
fired when verifying whether everything is valid for releasing the game. arguments: the project.