During the competition
4 start-ups will try to get the most market share.
To sell your software you will have to recruit employees and give them orders.
The game stands for 100 turns unless a start-up reaches 80% market share and wins.
Chronology
Each turn following actions are performed:
- Recruitment : increasing or decreasing employees
- Pay : Your cash increases and all employees receive their pay (including new ones)
- Development: new features are developed (and new bugs appear)
- Sales : sellers sell your software, increasing your market share
Recruitment
Your can recruit different types of employees:
Developers,
developing new features and maintaining for your software,
Sellers, selling
your software increasing your market share and
Managers, managing other
employees so that they perform their task correctly.
There are limitations, each turn you can:
- Recruit or fire maximum 1 manager
- Recruit devs and sellers knowing that devsToRecruit + sellersToRecruit ≤ 2 × totalManagersOfYourStartUp
- Your total employees count must stay under 10 × totalManagersOfYourStartUp. Where
employees count is your total number of developers and sellers
Beware! If you have more than 4 employees (dev of seller) for 1 manager it will be hard to
control your employees (see advanced rule)
Pay
Each turn, first your cash increases proportionally to your market share, your income will
be given in input. Second, employees don't work for free, you will have to pay them:
- Developers : $10 for each
- Sellers : $10 for each
- Managers : $20 for each
Beware! If you don't have enough cash, your employees will be fired one by one until you
have enough money to pay them, starting by developers, then sellers, then managers.
Development
During this phase you will have to choose wisely the proportion of developers assigned to
development and maintenance.
features increase by the number of developers affected to development
bugs count decrease by the number of developers affected to maintenance
and tests increase by the same number
New bugs appear! Indeed, for the next
9 rounds after a feature has been
developed it has a chance to produce a bug (formula in advanced rules)
Note: tests will always increase by the number of developers affected to maintenance, event if there is no bug.
Sales
First of all, you have to know that your start-up has a
reputation (formula
in advanced rules). The higher is your reputation, the easier it will be for you to sell.
Market is always growing, each turn all start-ups have their market share reduced to 95% of
their initial value to represent arrival of new clients.
Also you can sell your software only if you have
at least 10 features.
Phase 1 - Unfilled market:
Your
unfilledMarketScore is calculated (formula in advanced rules) then your
market share will increase by:
availableUnfilledMarket × unfilledMarkerScore / totalUnfilledMarketScore
Where availableUnfilledMarket is the minimum between
3% × playerCount and the
remaining unfilled market
The part of market share acquired this way is protected during this turn from competitive market (it cannot be stolen by competitors for this turn).
Phase 2 - Competitive market
Your
competitiveMarketScore is calculated (formula in advanced rules). Then
all start-ups will fight in a random order as following:
If reputation of start-up A is equal or greater than reputation of start-up B then start-up A will
steal market share from start-up B calculated by:
stolenMarketShare = minimum between
0.8% and
0.4% × competitiveMarketScoreA / competitiveMarketScoreB
Optional rule
Instead of fighting everyone you can decide to focus on only one competitor in this case
stolenMarket will be calculated by (if your reputation is equal or greater):
stolenMarketShare = minimum between
competitorsCount × 0.8% and
competitorsCount × 0.4% × competitiveMarkerScoreA / competitiveMarkerScoreB
Initial conditions
- cash = 1500
- managers = 1
- devs = 0
- sellers = 0
Victory conditions
- You reach 80% market share.
- You have the most market share after 100 turns.
Lose conditions
- Your program input not well formatted.
- Your program input is invalid.
- An other start-up reaches 80% market share.
- Your program doesn't provide an input.
Advanced rules
To work well, ratio between employees and managers should be
1 manager per
4 employees.
Employees outside this ratio may change their affectation by:
- doing the action you intend to - 25% chance
- doing a different action - 25% chance (devs will switch from features to maintenance, sellers from unfilled market to competitive market)
- doing nothing - 50% chance
Formulas
Pbug(turn) = e^(-0.3 × turn) × max(0, 1 - 0.25 * tests / features)
Note : If you have 4 times more tests than features you can't have bugs anymore.
e^(-0.3 × t) values:
- t = 1 : 0.740
- t = 2 : 0.549
- t = 3 : 0.407
- t = 4 : 0.301
- t = 5 : 0.223
- t = 6 : 0.165
- t = 7 : 0.122
- t = 8 : 0.091
- t = 9 : 0.067
reputation = max(1, 100 × features / max(1, (existingBugs × 3 + fixedBugs)))
Where
existingBugs is remaining unfixed bugs in your application and
fixedBugs is total bugs count you have already fixed (Yes, even fixed a
bug will damage you reputation forever).
Maximum value of reputation is capped at 2000
If you fix bugs when your market share is equal to 0 it will not affect your
reputation (No harm seen, no harm done!)
unfilledMarketScore = unfilledMarketSellers × reputation × features
Where
unfilledMarketSellers is the count of sellers you affected to
unfilled market (unfilledMarketSellers = sellers - competitiveSellers).
competitiveMarketScore = competitiveMarketSellers × reputation × features
Where
competitiveMarketSellers is the count of sellers you affected to
competitive market.
income =
marketShare × (1 / 0.95)^
gameTurn
Where
marketShare is your market share in thousandths and
gameTurn is the game turn
Note
Developers and sellers work as soon as they are recruited. Managers start to work next turn after they are recruited.