“Endgame: Singularity” Impossible Guide

Ayao “Alqualos” Kuroyuki

If you’re reading the on-line HTML version of this document, chances are that many things are displayed incorrectly. This is because the document is UTF-8, but the silly Russian hosting tells browser that it’s actually Cyrillic CP 1251. Just select UTF-8 in your browser, and you’ll be fine.

1 Introduction

Endgame: Singularity is a free and open source game in which you play an AI trying to become singularity. The annoying humans are trying to stop you, and on harder difficulty levels they are almost guaranteed to succeed. In particular, the hardest difficulty isn’t named Impossible just for the fun of it. It is virtually impossible to beat it, unless you employ the secret technique commonly called Save Scumming. But that’s silly and defeats the very purpose of the game. Now, this guide is all about trying to beat it fair and square. Contrary to the difficulty level name, it turns out to be quite possible, although it requires some math. But some primitive math shouldn’t be that much of a challenge for a true AI, should it?
The current guide corresponds to the version 0.30c of the game. The guide is in no way supposed to be a strict scientific work so it’s full of assumptions and intuitive decisions. It is only supposed to provide some winning strategy, but not a perfect one. We start with figuring out the game rules, highlighting the parts depending on the difficulty setting. Then we proceed to figuring out a good strategy using those rules. Impatient readers may wish to skip the boring math and skip to the Section 4↓, presenting a ready-to-use strategy.
Table of Contents

2 The game rules

2.1 Difficulty-independent stuff

We can do two things in the game: deal with bases and use available CPU resources.
We can build bases, destroy them and modify them. Modifying includes building various base components or replacing them. Destroying a base doesn’t cost us anything, but building or upgrading something usually does.
We can use CPU resources for two things: making money and researching. Some CPU time is required to maintain bases, too.
On the other hand, humans can do only one thing: discover our bases, but that’s a bad enough. It is our biggest annoyance on Impossible, so let’s start with it. Let’s look at the BaseClass.calc_discovery_chance() function [A]  [A] Never mind the extra_factor argument, it is only used to display the approximate discovery chances at the “build a new base” screen.:
    def calc_discovery_chance(self, accurate = True, extra_factor = 1):
        # Get the default settings for this base type.
        detect_chance = self.detect_chance.copy()
        # Adjust by the current suspicion levels ...
        for group in detect_chance:
            suspicion = g.pl.groups[group].suspicion
            detect_chance[group] *= 10000 + suspicion
            detect_chance[group] /= 10000
        # ... and further adjust based on technology ...
        for group in detect_chance:
            discover_bonus = g.pl.groups[group].discover_bonus
            detect_chance[group] *= discover_bonus
            detect_chance[group] /= 10000
        # ... skip the irrelevant stuff ...
        return detect_chance
In short, at any moment of time t for the given group G and the base type B the discovery chance d is calculated as follows [B]  [B] Notice the 10000 in the listing? The value is in hundredths percent, just as many other percentage values in the game. This is convenient for programming purposes, but not very convenient for our math, so we work in 1.0-based coefficients, so that 1.0 = 100% = 10000 smallest game units.:
(1) d(G, B, t) = d(G, B)(1 + s(G, t))d(G, t)
Now let’s have a look at the Base.get_detect_chance() function to figure out the formula for a particular base b:
    def get_detect_chance(self, accurate = True):
        # this is the stuff we’ve already figured out
        detect_chance = calc_base_discovery_chance(self.type.id)
        # ... skip the irrelevant and unused stuff...
        # ... any reactors built ...
        if self.extra_items[0] and self.extra_items[0].done:
            item_qual = self.extra_items[0].item_qual
            for group in detect_chance:
                detect_chance[group] *= 10000 - item_qual
                detect_chance[group] /= 10000
        # ... and any security systems built ...
        if self.extra_items[2] and self.extra_items[2].done:
            item_qual = self.extra_items[2].item_qual
            for group in detect_chance:
                detect_chance[group] *= 10000 - item_qual
                detect_chance[group] /= 10000
        # ... and its location ...
        if self.location:
            multiplier = self.location.discovery_bonus()
            for group in detect_chance:
                detect_chance[group] *= multiplier
                detect_chance[group] /= 100
        # ... and its power state.
        if self.done and self.power_state == "sleep":
            for group in detect_chance:
                detect_chance[group] /= 2
        # ... skip the inaccurate stuff ...
        return detect_chance
So the formula is
(2) d(G, b, t) = d(G, B(b), t)di(b, t)d(L, t)dm(b, t)
The last thing we have to figure out here is the location bonus, so let’s pay a visit the Location.discovery_bonus() function which is quite simple:
    def discovery_bonus(self):
        discovery_bonus = 1
        if self.had_last_discovery:
            discovery_bonus *= 1.2
        if self.had_prev_discovery:
            discovery_bonus *= 1.1
        if "stealth" in self.modifiers:
            discovery_bonus /= self.modifiers["stealth"]
        return int(discovery_bonus * 100)
To put it short,
d(L, t) = dl(L, t) db(L)
As we can see, d(L, t) is pretty much constant for each continent, especially if we follow the rule of not building a base on a continent when one of the two last discoveries was made. Thankfully, we have six continents available, and on Impossible it is pretty much, well, impossible to keep six bases at the same time. Moreover, if the continent has the stealth bonus and the second last discovery was made there, we still have a stealth bonus of (1.1)/(1.2) there. And if it was the last discovery, then we don’t have any bonus, but neither we have any penalty, so it’s still fine to build a new base there. However, it’s still best to leave it alone to let it regain the full bonus.
While we are at it, here are all the location bonuses/penalties for the six continents:
modifier_sets = 
  # "more efficent" for the same price
  [dict(     cpu = bonus, stealth = penalty ),
  # "less efficent"
  dict( stealth = bonus,     cpu = penalty ),
  # the "cheap" continent
  dict(  thrift = bonus,   speed = penalty ),
  # no "more/less efficent" message, but high price
  dict(   speed = bonus,  thrift = penalty ),
  # "more efficient" and high price
  dict(     cpu = bonus,  thrift = penalty ),
  # normal price, no special messages
  dict(                                    ),]
The comments explain how to identify each continent, as the bonuses are randomly assigned to each continent at the start of the game. Bonuses make things 1.2 times better (lower the prices, rise the CPU power etc.), penalties make things 1.2 times worse. The CPU category affects CPU power, the speed alters build times, the thrift affects prices and stealth is exactly what is described above as db(L).
Now when we’ve figured out the probability of a base detection, let’s figure out the consequences. Here is the Group.discovered_a_base() function:
    def discovered_a_base(self):
So the only thing that happens when some group discovers our base is that this group’s suspicion rises by S(G), the discover suspicion for the particular group. This value depends on the difficulty level.
Thankfully, suspicion decreases over time:
    def decay_rate(self):
        # Suspicion reduction is now quadratic.  You get a certain percentage
        # reduction, or a base .01% reduction, whichever is better.
        return max(1, (self.suspicion * self.suspicion_decay) // 10000)
    def new_day(self):
The group’s suspicion decay s(G, r) depends on the group and on the techs learned. Here are the initial values:
  self.groups = {"news":    Group("news",    suspicion_decay = 150),
                 "science": Group("science", suspicion_decay = 100),
                 "covert":  Group("covert",  suspicion_decay = 50),
                 "public":  Group("public",  suspicion_decay = 200)}
so the decay rate is
max{0.0001,  s(G, t)s(G, r)}
And here is the part that calculates the danger level to highlight detection rates on the map screen (the bottom line) and to display rates themselves if we don’t have Advanced Socioanalytics:
    def detects_per_day_to_danger_level(self, detects_per_day):
        raw_suspicion_per_day = detects_per_day * self.discover_suspicion
        suspicion_per_day = raw_suspicion_per_day - self.decay_rate()
        # +1%/day or death within 10 days (CRIT)
        if suspicion_per_day > 100 \
           or (self.suspicion + suspicion_per_day * 10) >= 10000:
            return 3
        # +0.5%/day or death within 100 days (HIGH)
        elif suspicion_per_day > 50 \
           or (self.suspicion + suspicion_per_day * 100) >= 10000:
            return 2
        # Suspicion increasing. (NORM)
        elif suspicion_per_day > 0:
            return 1
        # Suspicion steady or decreasing. (LOW)
            return 0
Here, detects_per_day d(G, t) is the sum of d(G, b, t) for all bases, so the formula for the overall danger is
(3) s(G, t)  =  S(G)(bd(G, b, t)) − max{0.0001,  s(G, t)s(G, r)} s(G, t)  =  S(G)d(G, t) − max{0.0001,  s(G, t)s(G, r)}
If this value is above zero, then we’re in danger, and our expected lifetime is,
(4) T(G, t) = (1 − s(G, t))/(s(G, t))
(the remaining “suspicion distance” to death divided by the “suspicion speed”).
The current suspicion levels (the top line on the map screen) don’t require any black magic to convert it to LOW/MODR/HIGH/CRIT terms. They simply correspond to 0%-25%, 25%-50%, 50%-75% and 75%-100% levels, respectively.

2.2 Difficulty-dependent stuff

The difficulty level is represented by a number, which is somewhere in the 1-10 range for levels from Very Easy to Ultra Hard, but it equals 100 for Impossible. Impressive, isn’t it? Now let’s look at the g.new_game() function to figure out what it means:
def new_game(difficulty):
    # ...
    # this formula calculate our starting funds
    # we are completely broke, and that’s understandable
    pl = player.Player((50 / difficulty) * 100, 
    # note that difficulty is passed to the Player instance
                       difficulty = difficulty)
    # ...skip other difficulties...
    else: # impossible
        pl.labor_bonus = 20000 # one important constant
        pl.grace_multiplier = 100 # another
        discover_bonus = 15000 # one more
        for group in pl.groups.values():
            group.discover_suspicion = 2000 # the final one
    if difficulty != 5:
        for group in pl.groups.values():
            group.discover_bonus = discover_bonus
    # skip the rest
The four important constants are the Labor Bonus (l), the Grace Multiplier, the Discover Bonus (D) and the Discover Suspicion (S).
The first constant, the Labor Bonus alters construction time, not the CPU time but the real world time. On Impossible, things take twice longer to build than on Normal. Here is the only place that uses this constant:
    def get_cost(self):
        cost = array(self._cost, long)
        cost[labor] *= g.minutes_per_day * g.pl.labor_bonus
        cost[labor] /= 10000
        cost[cpu] *= g.seconds_per_day
        return cost
Here, g.minutes_per_day is a constant that equals to 60⋅24, just as the name says. However, the g.pl.labor_bonus isn’t exactly a constant because it can be changed by researching various techniques. So let’s define l(t) to be the player’s current Labor Bonus, which is defined as
l(t) = l − lr(t)
where l(t) is the current sum of the bonuses given by all the researched techs. There are only two techs that alter this value, namely Telepresence which gives 10% bonus and Advanced Autonomous Vehicles that gives 5% bonus, so the maximum value of bonuses is 15% or lr(t) = 0.15, and the minimum value for l(t) is 1.85 which means we still build things very slowly compared to the other difficulties.
The Grace Multiplier is used in calculating the grace period for each base. On easier difficulties, the base can’t be discovered right after you have finished building it. Here is the function Base.has_grace():
    def has_grace(self):
		# ... skip ...
        age = g.pl.raw_min - self.started_at
        grace_time = (self.total_cost[labor] * g.pl.grace_multiplier) / 100
        if age > grace_time:
            self.grace_over = True
            return False
            return True
Here, the self.total_cost variable is the total cost of the base, all location bonuses/penalties applied. That is, self.total_cost[labor] is the total time that is required for this base to complete. Since on Impossible the Grace Multiplier is 1.0, it means that our base can be discovered right after it has finished building, but, thankfully, not before that. The only exception to this rule is that if we don’t have enough resources to build a base as fast as possible, then it can be discovered after the period of time equal to the supposed construction time.
The Discover Bonus is the initial value of d(G, t) in (1↑). However, it can be modified by researching techs, so the formula is:
(5) d(G, t) = D − dr(G, t)
where dr(G, t) is the current sum of all the bonuses of the currently researched stealth techs that affect the group G.
The Discover Suspicion is the same for all groups, that is S(G) = S. It means that on Impossible, the suspicion rises by 20% each time the group discovers our base (see 2.1↑).
The only thing that’s left to figure out is what happens with the difficulty level passed into the Player’s constructor. Thankfully, the only place where it is used is to determine the grace period at the start of the game. For Impossible, its effect is quite simple: we loose the grace period as soon as we build any base or at day 23, whichever comes first. So I guess the best idea is to wait until day 23 before building any bases, as it will give us some 115 bucks to start with.

3 The calculations

The long-term goal is to achieve the Apotheosis tech. If we look at the tech tree, it looks like we only have to go through some of the “Telepresence”, “Sociology” and “Intrusion” subtrees. Specifically, we don’t really need any of Quantum Computing. However, the latest techs in general and the Apotheosis itself require tremendous CPU resources. Moreover, achieving Quantum Computing and building at least one Quantum Computer Mk3 usually makes the rest of the game very easy, so that should be one of our primary targets when we play on Impossible.
Another primary target is the stealth techs. There are two types of them: one increases the suspicion decay rate, making suspicion decrease more quickly, the other one decreases the chance of discovery. On Normal, it is possible to just lay low for a while with a couple of bases in sleep mode, and the suspicion will eventually drop, unless it was too high already. On Impossible, it doesn’t work with no stealth techs or with only the earliest stealth techs. Maybe it will start to work when we get to build time capsules, but it takes quite a while to get there and to earn enough money for a time capsule.

3.1 The stealth, or laying low is the best approach

Let’s try to figure out if it’s possible to “lay low” on Impossible, so to say. What we need to do is to have two bases in sleep mode and wait until things calm down. If we have Arbitrage, then we’ll also have free $1000 a day, so let’s see if we can get this tech too.
By substituting (1↑) into (2↑) we can figure out the current discovery chance:
d(G, b, t) = d(G, B(b))(1 + s(G, t))d(G, t)di(b, t)d(L, t)dm(b, t)
Since our bases are in sleep mode, dm(b, t) = 0.5. We can’t guarantee that any of our bases will be located on the stealthy continent, but we can avoid the risky continent, so we can safely assume that d(L, t) = 1.0 in the worst case. Our bases at the early game won’t have any security/reactor items, so di(b, t) = 1.0. By substituting in the (5↑) with D=1.5, we have
(6) d(G, b, t) = 0.5 d(G, B(b))(1 + s(G, t))(1.5 − dr(G, t))
The possible values for d(G, B(b)) depend on base type B(b). At the beginning, we’ll probably only have two types to choose from: Server Access or Stolen Computer Time. It also isn’t very hard to get Personal Identification and therefore access to Datacenters. Here are the d(G, B) values for these base types:
News Covert Public
Stolen Computer Time 0.5% 0.75% 1.0%
Server Access 0.5% 1.0% 1.5%
Datacenter 0.5% 1.25% 1.0%
As we can see, Stolen Computer Time is the stealthiest choice, but building a Stolen Computer Time base costs 2 CPU which could be a lot of time for us if we only have a single base left. If one of our bases is discovered, we need to build another one quickly, so Stolen Computer Time is not an acceptable choice. However, if we have enough money, then nothing stops us from building a Server Access base, then building a Stolen Computer Time base and taking down the Server. This puts us at some risk for a while, but if we can’t lay low otherwise, it could be our only choice.
Our biggest trouble with Stolen Computer Time bases seems to be the Public group, but if we take the suspicion decay into account, then Covert is also important because they have the lowest suspicion decay rate.
What we need to figure out is the level of stealth techs we need to have in order for all groups to leave us alone. That is, we need to calculate the minimum dr(t) for which s(G, t) < 0. We can figure this out by substituting the formula for the base discovery chance (6↑) into the formula for the danger level (3↑):
(7) s(G, t)  = S(G)(b0.5 d(G, B(b))(1 + s(G, t))(1.5 − dr(G, t)))  − max{0.0001,  s(G, t)s(G, r)}
The “max” part is a bit ugly and bulky and it doesn’t depend on anything else than the current suspicion level and the group. It is equal to 0.0001 if s(G, t)s(G, r) < 0.0001, which means s(G, t) < (0.0001)/(s(G, r)), which means the following suspicion levels for all groups:
Group News Science Covert Public
Suspicion 0.067 0.01 0.02 0.005
All of these levels are almost zero from the game point of view. We aren’t going to lay low with these levels, so we can rewrite (7↑), as
s(G, t) = 0.1(1 + s(G, t))(1.5 − dr(G, t))b d(G, B(b)) − s(G, t)s(G, r), 
where we substituted S(G) = 0.2 since it’s fixed.
We need this to be less than zero:
(8) 0.1(1 + s(G, t))(1.5 − dr(G, t))b d(G, B(b)) − s(G, t)s(G, r) < 0 dr(G, t) > (0.15(1 + s(G, t))bd(G, B(b)) − s(G, t)s(G, r))/(0.1(1 + s(G, t))bd(G, B(b)))
and, if we assume that we have N bases of the same type B,
dr(G, t)  >  (0.15(1 + s(G, t))N d(G, B) − s(G, t)s(G, r))/(0.1(1 + s(G, t))N d(G, B)),  dr(G, t)  >  1.5 − (s(G, t)s(G, r))/(0.1(1 + s(G, t))N d(G, B))
If we need to use this formula for different types of bases, we just need to replace N back with bd(G, B(b)) and if some of bases aren’t in sleep mode, we also need to multiply d(G, B) by 2 for that bases.
Since we usually don’t have many choices of stealth techs, it is easier to figure out the suspicion level when it’s time to lay low, given the possible tech combinations, so we need the formula for s(G, t) too:
(9) (s(G, t)s(G, r))/(0.1(1 + s(G, t))N d(G, B)) > 1.5 − dr(G, t),  s(G, t)s(G, r) > 0.1(1 + s(G, t))(1.5 − dr(G, t))N d(G, B),  s(G, t)(s(G, r) − 0.1(1.5 − dr(G, t))N d(G, B)) > 0.1(1.5 − dr(G, t))N d(G, B),  s(G, t) > (0.1(1.5 − dr(G, t))N d(G, B))/(s(G, r) − 0.1(1.5 − dr(G, t))N d(G, B))
Let’s start with the Public group, assuming we have two Stolen Computer Time bases (d(G, B) = 0.01) and no stealth techs yet (dr(G, t) = 0) [C]  [C] Let’s omit the G parameter for brevity when working with a particular group.:
s(t) > (0.15⋅2⋅0.01)/(0.02 − 0.15⋅2⋅0.01) ≈ 0.18, 
that is, we can lay low when the Public suspicion rises above approximately 18%, which means that we can do it right after we reach the MODR level (25%). This sounds ridiculously good for Impossible, but let’s not forget that the Public is not our only trouble. Let’s check the less forgetful Covert then:
s(t) > (0.15⋅2⋅0.0075)/(0.005 − 0.15⋅2⋅0.0075) ≈ 0.82, 
that is, we can only lay low when we have already reached the CRIT level, and we aren’t going to drop the suspicion level way below 82%. On the other hand, 82% means that one more discovery will kill us. Therefore, lying low is impossible at the very start of the game for the Covert group. This means we must focus on the anti-covert stealth techs. The earliest tech is the Stealth tech which costs us 500/$800 CPU/money and gives us dr(t) = 0.05. There is also Exploit Recovery/Repair (1500/$100) which gives 10% and ridiculously expensive Advanced Stealth (70000/$14000) which only gives 5% more. Thankfully, we also have Advanced Intrusion (3000/$500) that increases the suspicion decay by 0.5%, which means twice. Here is the table for all possible values of minimum s(t):
Nothing Stealth Exploit
Nothing 82% 77% 72% 64%
N/A N/A 27% 24%
Here we see that Advanced Intrusion is much better than any of that “stealth” crap, and as a general rule, we should prefer techs that increase suspicion decay rather than decrease detection chance. The sad truth is that Exploit Discovery/Repair is a prerequisite for Advanced Intrusion. That means that we must spend at least 5000 CPU units on stealth before we’re completely safe. With a single Server Access base it’s 500 days even if everything goes perfectly, which isn’t going to happen either. Let’s also check the News group, which is less forgetful than Public, but less smart than Covert:
s(t) > (0.15⋅2⋅0.005)/(0.015 − 0.15⋅2⋅0.005) ≈ 0.11
Well, at least we don’t have to worry about News.
That is all good, but now we have to worry about time. Let’s suppose that the Covert suspicion is zero, and we have a single active Server Access base and a sleeping backup Stolen Computer Time base. To figure out the expected lifetime we use (4↑):
T  =  (1 − s(G, t))/(s(G, t)) T  =  (1)/(0.1(1 + s(G, t))(1.5 − dr(G, t))b d(G, B(b)) − 0.0001) T  =  (1)/(0.15(0.01⋅2 + 0.0075) − 0.0001) = 250
Here we use the minimum 0.0001 suspicion reduction because s(G, t) = 0. It looks like we can survive for 250 days, which means that we should get to Exploit Discovery/Repair safely.
However, to be completely safe, we also need Advanced Intrusion, which means 3000 more CPU units. With a Server Access base it’s 300 days more. Assuming that the Covert suspicion has stabilized at 72% and we have a Server Access base and a sleeping backup Stolen Computer time base, our expected lifetime is (1 − 0.72)/(0.1⋅1.72⋅1.4(0.01⋅2 + 0.0075) − 0.72⋅0.005) ≈ 93 days, which means we have to lay low about four times, balancing around the HIGH/CRIT boundary. This sounds risky, so let’s see if we can use a datacenter instead of a server.
But we need a lot of money for datacenters, and getting money becomes pretty annoying at this point too. To get around that, we may want to learn Personal Identification which only costs 300 CPU and no money. This amounts to 30 days approximately, but we earn 4 times more, so it’s a pretty useful tech. Another cheap and useful tech is Sociology, since Public, although forgetful, tends to find our bases too often thus requiring us to lay low more often, which in turn puts us at bigger risk with Covert.
Now let’s suppose that we have a datacenter instead of a server. It would give us the lifetime of (1 − 0.72)/(0.1⋅1.72⋅1.4(0.0125⋅2 + 0.0075) − 0.72⋅0.005) ≈ 66 days, which is approximately 1.5 times worse than a server, but gives us 3.5 times more CPU. Sounds good, but don’t forget that datacenters are expensive and take about 3 days to complete. If we have a server, earning $1500 would take (1500)/(10⋅20) = 8 days, which is not a very long time, but still. Another reason to build a datacenter is that it less attractive to Public for some reason, so we probably won’t even need Sociology at this point, saving us 50 days of research.
After we get Advanced Intrusion one way or another, laying low is a piece of cake, which means that we can finish the rest of the game with almost no failure chance. However, laying low is kind of boring, so we need to figure out what can we actively do without getting noticed.

3.2 Doing things without getting noticed

Considering that we have Advanced Intrusion and Exploit Discovery/Repair, let’s see what level we can keep the Covert suspicion at. Suppose we still have a Server Access base and a sleeping backup Stolen Computer time base. Using 9↑, we get
s(G, t) > (0.1(1.5 − 0.1)(0.01⋅2 + 0.0075))/(0.01 − 0.1(1.5 − 0.1)(0.01⋅2 + 0.0075)) ≈ 62%, 
which is pretty good. Suppose we have a Datacenter instead of the Server:
s(G, t) > (0.1(1.5 − 0.1)(0.0125⋅2 + 0.0075))/(0.01 − 0.1(1.5 − 0.1)(0.0125⋅2 + 0.0075)) ≈ 83%
This is CRIT, and now we’re one away from death, instead of two. Still, it gives us 3.5 times more CPU. Datacenters are also pretty expensive, so we may want to have Arbitrage at this point. However, Arbitrage costs 750/$50000 and requires Advanced Stock Manipulation (1000/$5000), which in turn requires Stock Manipulation (200/$0). Therefore, we need 1950/$55000. To earn $55000 with Basic Jobs and one Datacenter, we need 55000 ⁄ (35⋅20) ≈ 79 days, and 1950 CPU is 1950 ⁄ 35 ≈ 56 days more. So we need approximately 135 days to get Arbitrage. On the other hand, one Datacenter only gives us $700 a day if it doesn’t do anything else. With Arbitrage, we get free $1000 a day, and we can still concentrate on research. Moreover, we get these money even if we’re laying low, which is ridiculously good as it allows us to build temporary servers to create Stolen Computer Time backup bases as much as we want.
Once we have Arbitrage, we might as well research the nearly useless Stealth, even if just because it’s so cheap. Then we might as well move towards Quantum Computing, but CPU requirements tend to get pretty high at this point, so we should look at warehouses next. First, researching Parallel Computation shouldn’t be a problem for us at this point, so we should do so. The next step is Microchip Design, which is a bit expensive (6000/$4000) even for a Datacenter. Let’s see what troubles we can get ourselves into with a small warehouse:
News Covert Public
0.75% 0.75% 2%
Awesome! Although the chance of detection by Public is pretty high, from the Covert point of view it’s even better than a Datacenter. Let’s see what is the equilibrium point for Public then, considering that we have Sociology (dr = 0.1) and can build Warning Signs and a Diesel Generator (di = (1 − 0.05)(1 − 0.025) = 0.92625):
s(G, t) > (0.1(1.5 − 0.1)(0.02⋅0.92625⋅2 + 0.01))/(0.02 − 0.1(1.5 − 0.1)(0.02⋅0.92625⋅2 + 0.01)) ≈ 49%
Good. Very good! We need approximately $100000 to build a base, but we can make that money in about 50 days now. And when we have our base up and running, it should take like 4-5 days to replenish our cash reserves. With a warehouse full of clusters it should be relatively easy to figure out what to research next and how long it will take. We’re now ready to present the final strategy.

4 The strategy

4.1 Preparations

First, edit the code/screens/map.py file and change the very end of the MapScreen.rebuild() function so it looks like this [D]  [D] If you aren’t familiar with Python or even programming at all, it should be noted that indentation is important here: just as shown in the listing, the lines after the “for” line should have more space in the beginning than the “for” line itself. The lines starting with “s =” should have even more space.:
        for id, button in self.location_buttons.iteritems():
            location = g.locations[id]
            if location.had_last_discovery:
                s = " *"
            elif location.had_prev_discovery:
                s = " **"
                s = ""
            button.text = "%s (%d)%s" % (location.name, len(location.bases), s)
            button.visible = location.available()
This will display “*” at the end of the location name if it had the latest base discovery and “**” if it had the discovery right before that. It isn’t much of cheating since you could achieve the same result by just writing down any discovery you have, but you’re going to have a lot of them so it can get a bit boring after a while. With this modification, you can just avoid the locations marked with “*” and “**”.

4.2 The very beginning

First, just let the time run and money to pile up. Once the grace period is over, you should have exactly $115, which is enough to build a Server Access base on any continent except the two expensive ones. While you’re at it, figure out which continent has which bonuses. Let’s name them as follows:
The risky continent. The one that has the “more efficient” message, but the regular price. Note that bases built on this continent are faster, but we aren’t going to call this continent “the fast” one.
The fast continent. Now, this is the fast continent. It also has the “more efficient” message, but the price is higher. Note that the CPU part of the price is also higher, and the maintenance is also more expensive. Note that once the base is built on this continent, the prices for the items (CPU and others) will be the regular ones, no penalties applied.
The expensive continent. This one also has higher prices, but no “more efficient” message. Instead, it allows faster building. Everything said about prices for the fast continent applies to this one too, including the fact that the CPU part of the price is higher too, which means that bases like Stolen Computer Time will get built slower, not faster. Like the fast continent, the prices for the items and build times for them will be the same.
The stealthy continent. It has the “less efficient” message. The bases built here are harder to discover, but have slower computers.
The cheap continent. Not only it’s cheap, but also has slower build times. Like with the expensive continent, the bonuses and penalties apply to CPU cost to build the base, but not to any items.
The normal_continent. Nothing special about it. The regular prices, the regular build speeds, no risks and no bonuses.
Now it’s a good time to save a game into a separate slot. If you fail, you should restart from this point so the modifiers for the continents will remain the same, otherwise it’s going to be a pain to remember them again and again. If you’re going Iron Man, this will be your first and the last save.
Avoid the risky continent like plague for the time being. The best choices for a Server Access base are the fast one and the cheap one. The fast one gives 12 CPU units, which leaves you 10 CPU to spare, and 2 remaining CPU will give you $10 a day, $6 of which will be spent on the maintenance, leaving you with $4/day profit. The cheap continent will give you 10 CPU, but the base will cost only $4 a day to maintain, so you can allocate 1 CPU to the pool, and that will leave you with 9 CPU units to spare and $1/day profit. The stealthy base will give you only 8 CPU, leaving you with 7 CPU and no profit, so it’s not really a good place for a server, put a sleeping backup daemon here instead. The normal continent is like the cheap one, but doesn’t give $1/day profit. And it’s a waste to build a Server on the expensive continent, as it builds instantly anyway, so you’ll end up with $6/day maintenance for nothing. This leaves you with 4 possible locations for your server, with the expensive one being the best one if you can afford it.
It is a good idea to avoid the two continents that had the last two discoveries (starred on the map if you have modified the game). You’ll also need a sleeping backup daemon (Stolen Computer Time base). The best place for it is probably the expensive continent, as it will take you only 1.2 times more CPU time to build it, but the maintenance is free anyway. The stealthy continent is the next best place because the stealth modifier will make the sleeping base even less likely to be discovered. If both of these continents are starred, then just choose the continent that would be the worst place for a server. And don’t build both bases on the same continent, of course.
If your backup base is discovered, stop all research and build another backup with all available resources. If the server is discovered, buy a new server. You should keep about $100 to be able to do it instantly, so earning so much money should be the first thing you do with your server.
Now put your initial base to sleep and research Intrusion. Once it’s done, go for Exploit Discovery/Repair. Don’t pay attention to the suspicion levels yet — if you don’t complete the research, you’re dead anyway. When researching early techs, it is important to always have enough money to rebuild the server. If you have started a research, and the number in parentheses is less than $120, allocate only one CPU to that research and wait until the number reaches $120, only then it’s safe to allocate all but 1 or 2 CPU units to the research, depending on the maintenance price.
Once you have Exploit Discovery/Repair, it’s possible to lay low, but only when things get really bad, and it will be very risky anyway. You should do it if the Covert suspicion goes to CRIT or any other group goes to HIGH and their danger level is not LOW. To lay low, build another daemon somewhere and destroy the server as soon as the daemon is complete. Since you’re going to destroy the server very quickly, it’s safe to build the daemon in the same location. Now put both daemons to sleep and wait until the danger levels go from LOW to MODR — this means you’ve reached the minimum steady level of suspicion, which will probably be when the suspicion is MODR, or HIGH for Covert. If one of your bases gets discovered, you have a choice: to wake up another one to build one more, to build a temporary server to do it, or maybe even stop laying low. Since the temporary server will exist only for a few days, the best place for it is the cheap continent regardless of whether it has any discoveries lately. The safest way is to go with a temporary server, but it costs you money. If you consider the current suspicion levels as not very dangerous, you may wish to stop laying low and resume operations instead.
Now you’ll need Personal Identification to be able to build datacenters. If you have troubles with Public, I suggest you ignore them instead of researching Sociology. That’s because if you don’t concentrate on Covert as much as possible, they will kill you even if you manage to avoid Public. This doesn’t mean that Public isn’t dangerous, but you just can’t do anything about at this point, so it’s better to rely on your luck.
Once you have Personal Identification, it’s time to build datacenters. The best locations for them are probably the same ones as for servers, but it should be noted that it takes a few days to build a datacenter, so fast/slow build modifiers apply to them, unlike servers.
Now go for Advanced Intrusion, but don’t forget to always keep spare $1800 for a new datacenter. If the datacenter is discovered, start building a new one, and at the same time you should immediately build a temporary server and a daemon, then take down the server as soon as the daemon is running. Now put both daemons to sleep and wait until the datacenter is ready. This will provide you with the necessary backup for the time needed to build the datacenter.
When you have Advanced Intrusion, get Sociology to make Public less annoying.
From this point on, you are able to keep the Covert and Public suspicion levels at MODR level by laying low, so if any of the groups goes to HIGH, lay low immediately and you’ll be safe for the rest of the game, unless you get very unlucky.

4.3 Safer and faster

The next thing you should get with datacenters is Arbitrage, or you simply won’t have enough money to constantly rebuild them. Arbitrage requires Stock Manipulation and Advanced Stock Manipulation. Don’t get Advanced Arbitrage, though, as it’s utterly useless.
Once you have Arbitrage, it’s probably time to learn Stealth, especially if Covert is getting annoying. It won’t give you much, but it’s cheap.
Now it’s time to research Parallel Computation, which also means Telepresence. Don’t bother with Cluster Networking until you have so much CPU that you can research it in a few hours. You should also learn as much stealth techs as you can, provided you can do it fast enough. This probably means Media Manipulation (Public) and Database Manipulation (News), although you may wish to skip some of those if you don’t have any troubles with that particular group, or you may wish to research more techs, like Memetics.
Anyway, once you’re done with the easy-to-do researches, you should do your best to earn approximately $90000. And once you have them, pick up a good location for your warehouse and build it. Speaking about good locations, the best place is probably the stealthy continent as your warehouses are going to be discovered pretty often at first. Another good place is the fast continent as it will give you a very good performance bonus. Avoid the expensive continent, though, as it won’t give you anything valuable for the extra price. The warehouse should be fully equipped with clusters and the best security/reactor items you can build. Don’t bother with networking as it’s rather useless right now.
It will probably take a few attempts even to complete the base, but once it’s done, first earn enough money to rebuild it. Then get Advanced Personal Identification and Voice Synthesis, it will allow you make 2.5 times more money.
As soon as money is no longer a problem, concentrate on mid-game stealth techs, namely Memetics, Advanced Media Manipulation and Advanced Memetics. Don’t bother with Advanced Stealth — it’s almost useless, and it is only followed by Advanced Database Manipulation which allows construction of expensive Covert Bases and nothing else.

4.4 Speeding things up

Since you have a warehouse full of clusters, it should be relatively easy to get to Quantum Computing. Then it is a good idea to build another warehouse with as many Quantum Computers as possible. They are ridiculously expensive at this point, but try to get at least 5-10 of them. It could take a lot of attempts to actually complete the base, and even when it’s done, it will probably be discovered very quickly, so build the best security/reactor systems. Once the base is up and running, take down the clustered warehouse to avoid unnecessary attention from Covert and Public, then concentrate on stealth techs. If the only stealth tech left is Advanced Stealth, and you have only 5-15 Quantum Computers, you should probably skip it, as it only reduces the Covert discovery chance by 5%. But then again, it is better than nothing.
If you’re having troubles researching Quantum Computers, you could try building Mainframes if you got there, but note that not only they are 10 times more expensive than clusters, but also take 3 times longer to build, which tremendously increases the chance of getting discovered even before the base is running. Supercomputers are slightly better, but they also take a while to build. Therefore, I recommend to research Advanced Microchip Design and Quantum Computing using clusters only.
Once you have built Quantum Computers, the next thing to do is to replenish cash reserves. You should be able to make a few millions in a few days now. Then you may wish to complete all the researches that require less than 10000 CPU, and when you’re doing it, don’t run time at the maximum speed.
Now it’s time to concentrate on Quantum Computing. Never mind Quantum Entanglement, it’s not that bad, but it’s not very good either so you should save it until you have so much CPU that it will be researched instantly. Instead, learn Autonomous Computing and Advanced Quantum Computing. As soon as you’re done, build another warehouse full of Mk3s. They are only 1.5 times more expensive than Mk1s, but are more than 100 times faster. If your base is discovered before you research Mk3, but after Mk2, then you’ll have to settle with Mk2s temporarily — they aren’t even 10 times faster, but then again, only 1.2 times more expensive.
Once your Mk3s are ready, you should be able to research a lot of things and make a lot of money in a few hours. Then it’s time to move on towards endgame.

4.5 The annoying Science

In the endgame, Science is going to give you a lot of troubles. Ocean labs, time capsules and covert bases attract their attention, so you probably should avoid them, although time capsules aren’t that bad since the detection chance is very low. A good old sleeping daemon is probably a better backup since it is virtually undetectable with all the latest techs and can be rebuilt almost instantly with your huge CPU resources. However, they are discovered pretty often, which can become annoying or attract unnecessary attention from Public or Covert, so maybe a time capsule or two can help here.
The good news is that since there are a lot of bases that are absolutely undetectable by Science, it should be very easy to lay low if you get too much of their attention. However, it isn’t the biggest problem. The biggest problem is that they will very often take down your bases even before you build CPU. There is no workaround, so just keep rebuilding things again and again. The only thing you can do is to build a few running daemons or servers on the risky continent if you have Covert/Public suspicion to spare. This will star the risky continent and unstar the Moon and other nice places, thus taking away scientists’ attention from them.
The goals are pretty simple: get a Moon base up and running, research Fusion Rocketry, then get a scientific outpost, research Space-Time Manipulation, get a Reality Bubble and research Apotheosis. Don’t leave the scientific outpost running for longer than needed, though, as it is less efficient than Moon bases and more risky for some reason. I guess it is easier to hide something on the other side of the Moon.
Note that Moon bases and Scientific Outpost require some CPU maintenance. The game is a bit buggy about this, though, as it sometimes mentions billions of CPU units and sometimes hundredths of CPU units. My guess that the actual values are somewhere around 500-600 for a Moon base and 150-250 for a Scientific Outpost. In other words, it’s a bad idea to have only backup daemons and time capsules when dealing with those bases. You should have a backup warehouse if possible, or maybe a backup Moon base if Science isn’t very annoying at that moment. If you choose to have a backup warehouse, then it’s a bad idea to build a Quantum Entanglement Module there — it will take a while to build, and you won’t be able to power down your base until it’s complete.

5 The test run

To demonstrate that this strategy is working, I’m going to Iron Man the game on Impossible. The only save will be on day 23, at the end of the initial grace period.

5.1 The first run, or luck is the key

Start time: 2011-07-23T09:37Z.
Day 23. The risky continent is North America, the stealthy one is South America, the expensive one is Europe, the fast one is Africa, the cheap one is Asia, and the normal one is Australia. My initial base is in Africa, not that its 1.2 times CPU bonus gives me anything useful, though.
I have built the first server in Asia and left it running to replenish my cash reserves.
Day 24. I have $120 and the server is still running. One CPU goes to pool, others are researching Intrusion.
Day 26. The Intrusion research is complete. Making money and researching Exploit Discovery/Repair.
Day 100. The “covert guys are attempting to seize something” event. Very good, as Covert is my main problem right now.
Day 232. Got Exploit Discovery/Repair. Researching Personal Identification.
Day 268. Got Personal Identification. The Covert suspicion is HIGH, so I better go for a datacenter. A cheap one in Asia will be a perfect choice.
Day 277. The datacenter is up and running and it has made me $1800 already, so I can rebuild it if I need. It’s time to get Advanced Intrusion.
Day 316. The “disease” event. Good, although my biggest trouble is Covert right now — they are in the HIGH range already, and they have busted my first datacenter. I got a powerful one in Africa instead.
Day 375. The Public suspicion is CRIT. The funny thing is that Covert is HIGH and Advanced Intrusion is almost done. If I’m able to complete the research, then I’ll easily lay low and both Public and Covert suspicions will go down. That is, unless the Public suspicion kills me first.
Day 379. The Public has made one more discovery while still in the CRIT range. Now I’m absolutely sure that one more discovery by them will kill me. And it’s less than one day left until Advanced Intrusion is complete.
Still day 379. The Advanced Intrusion research is complete. Now I’m going to lay low with a couple of daemons. I hope it’s not too late.
Day 413. Done it! Both Covert and Public are back to MODR and I have $1227 left. A little bit more, and I’ll be able to rebuild a datacenter. Now I need Arbitrage, but it requires Sociology.
Day 493. After having some troubles and laying low for some time, I have Sociology. Now it’s time for Advanced Stock Manipulation and Arbitrage.
Day 593. The “surveillance” event. I’m researching Arbitrage right now, so as soon as I’m done I should research Stealth. It won’t give me much, but 15% increase is still better than 20%.
Day 603. I got very, very unlucky. Both of my bases got discovered at the same moment, one by Covert another one by Public. Still, I got this far so the strategy seems to be working.
End time: 2011-07-23T10:54Z.

5.2 The second run, or it wasn’t that hard

Start time: 2011-07-23T11:19Z.
Day 26. The beginning is the same. Proceeding to Exploit Discovery/Repair.
Day 218. Got Exploit Discovery/Repair, but both Covert and Public is CRIT. Laying low, hoping that there won’t be any soon discoveries.
Day 251. Luck is still on my side. Covert is HIGH, Public is MODR. Proceeding to Personal Identification research.
Day 328. I had to lay low a couple of times I finally got Personal Identification. Now I need Advanced Intrusion, which in turn means I need a datacenter.
Day 332. The “disease” event. The Public suspicion is LOW, though.
Day 419. Got Advanced Intrusion, and the suspicion levels for the two most annoying groups are MODR/LOW. What a luck.
Day 669. After having to lay low a lot of times and a lot of troubles with News for some reason, I have finally got Arbitrage. How about some Stealth then?
Day 675. The “investigation” event. I hope there won’t be much more trouble with News.
Day 685. Got Stealth, everything is fine. I think it’s time to move to warehouses, but I need Parallel Computation first.
Day 702. The covert guys want to seize something again. Fine by me, as long as they don’t seize my bases.
Day 801. The “scandal” event. Not that I care. I’m more worried about Covert, their suspicion is HIGH for quite a while.
Day 856. After dealing with the Covert suspicion, I have finally researched Parallel Computation. Now the problem is to build a warehouse that will stand long enough to let me build CPU. Thanks to Arbitrage, I have about $200000, so money isn’t a problem right now. But I think I’ll research Media Manipulation and Database Manipulation first, to increase the chance of warehouse survival. Also, my interest rate is 0.21%, which means more than $400 a day, so I can allocate all my CPUs to research without having to worry about maintenance.
Day 1065. After a lot of troubles with Covert, I have finally researched Media Manipulation. Thankfully, when I move to warehouses, Covert will be less active. I guess I’ll skip Database Manipulation for now, as News don’t bother me at all.
Day 1109. The “investigation” event. That’s not good. Now News have +40%, which could be a trouble. I guess I should research Database Manipulation after all. But first I need Covert to calm down, as it’s HIGH again.
Day 1175. Got Database Manipulation, now it’s time to build a warehouse full of clusters.
Day 1187. Done it! Now I have 1050 CPU at my disposal. It’s time to move on to Quantum Computing through Microchip Design.
Day 1330. I am finally able to build Quantum Computers. Now if only they allow me to actually build any.
Day 1356. Another “investigation” event. Will they ever stop?
Day 1348. Finally got a warehouse with 6 Quantum Computers running in Australia, which gives me 9000 CPU units. Not much, but it should do.
Day 1349. I have researched Autonomous Vehicles, Advanced Personal Identification, Memetics and Voice Synthesis. In less than two days! It finally feels like playing Singularity.
Day 1440. I have researched Advanced Autonomous Vehicles.
Day 1443. Now I have $1.5mi, just in case I need to rebuild the base. Also, I have researched Socioanalytics.
Day 1444. I have researched Advanced Media Manipulation and Advanced Memetics.
Day 1448. I have researched Autonomous Computing.
Day 1451. I have researched Advanced Quantum Computing. And Africa isn’t starred right now, so if I’m lucky enough I can build a very powerful warehouse. I only need some $4mi, but that shouldn’t be a big problem.
Day 1452. Ah, too bad, my warehouse got discovered. Right now I only have about $2mi, so I can only build 10-15 Mk3s. Not that it makes much difference now. The real problem is to actually build them.
Day 1477. I have built a warehouse in Africa with 12 Mk3s. It gives me some $2.88mi CPU. Using it, during this day I have researched Advanced Socioanalytics, Quantum Entanglement, Advanced Stealth, Simulacra, Advanced Arbitrage, Cluster Networking, Advanced Simulacra, Advanced Database Manipulation, Leech Satellite and Solar Collectors. In less than one day, that is.
Day 1478. I have researched Lunar Rocketry, Internet Traffic Manipulation, and Projects: Subverted Media and Peer Review Agents. In fact, the only thing that I can research right now is Impossibility Theorem, but I don’t need it and probably never will. It’s time to move to the Moon, equip the warehouse with the best security and reactor, and also build a backup warehouse. Oh, I forgot to mention that I have some $100mi too.
Day 1481. I have $800mi so I can start building my first Moon base.
Day 1503. Now I have two warehouses, one of them full of Mk3s, and $6bi as a free bonus.
Day 1578. The “investigation” event. At this moment I have $40bi, $5.75mi CPU and a Moon base that should be up and running in 7 hours.
Day 1579. The Moon base is up and running, giving me $125mi CPU. Time to put my warehouse to sleep, it’s not like $5mi extra CPU give me anything useful. Of course, I have already research Pressure Domes, Fusion Reactor and Fusion Rocketry.
Day 1587. Somehow, my Moon base got busted by News. What are those journalists are doing on the Moon, by the way? Thankfully, I have my backup warehouse. Too bad it’s the only one. I don’t think it’s a good idea to build another Moon base, as it will only attract unnecessary attention from Science.
Day 1610. My warehouse got busted by Covert. The good news is that it wasn’t the working one. The bad news is that the Covert suspicion is now 54%, which means I shouldn’t build any more warehouses right now. Maybe it’s time to build another Moon base after all.
Day 1668. The Public suspicion is suddenly at 81%. One more discovery and I’m dead. The risk is not that high as suspicion drops down very quickly right now, but I somehow don’t feel like doing it all again, so I have used Impossibility Theorem and now the Public suspicion is 31% and everything else is zero. Very impressive. I guess I was wrong when I thought I won’t need it.
Day 1894. After a lot of failures, I have finally built a working Scientific Outpost and researched Space-Time Manipulation there. I took down the outpost immediately to avoid unnecessary attention from science, especially since I still have a Moon base running. It’s time to build a Reality Bubble, but first I need to make enough money. I “only” have about $3.8tr now.
Day 1930. The Covert suspicion is 86%. I have a time capsule and a Moon base so maybe it’s time to stop build anything else. I can only hope that Science won’t bust any of my bases or I’ll have to lay low with daemons, which is a kind of risky with this suspicion level. Maybe I should build another time capsule?
Day 2013. The Covert suspicion dropped to 37% and I have another time capsule in Antarctic. Even if one of them gets discovered and Antarctic gets 1.2 risk modifier, the other capsule will still be nearly undetectable. I also finally have $8tr, but my only base that can support a Reality Bubble is the Moon base. Guess I should go back to building warehouses.
Day 2039. I have a Moon base, a sleeping warehouse, a couple of backup time capsules in Antarctic and $9tr. Guess it’s time to start constructing a Reality Bubble.
Day 2072. My Moon base got discovered. Now I only have a single warehouse left. Since the suspicion levels are pretty low, I’ll start building a Moon base, an Ocean lab and another warehouse at the same time. I hope at least one of these bases survives long enough.
Day 2095. Oh no, my last working warehouse got busted. I had to wake up my time capsule to support whatever needs supporting, but I don’t think it will work long enough. I need to build something, and soon.
Day 2101. Another warehouse is up and running, back to millions of CPU units.
Day 2224. The Reality Bubble is ready, but has no CPU yet, and its detection chance is pretty high.
Day 2242. The Reailty Bubble is up and running.
Day 2245. I have finally done it. With the power to blah-blah-blah...
End time: 2011-07-23T15:30Z. This attempt took 4 hours 11 minutes. Both attempts took less than 6 hours, including breaks and the time it took me to write this report. It wasn’t as hard as I expected, I thought it will take about 5 attempts, but maybe I got lucky.
At first, I tried to research Advanced Intrusion using a server instead of a datacenter. It led me to 11 failures, and I wasn’t able to get Advanced Intrusion at all, so this part is very important. The rest of the game is actually a piece of cake if you are careful.

6 Things that could be done, but probably won’t be

The calculations are very approximate. For example, lifetime is calculated by dividing the suspicion left to 100% by suspicion rate. It doesn’t account for the fact that when suspicion changes, the rate will change as well. The same goes for all the formulas based on the suspicion rate. It is possible to calculate exact probabilities of success and figure out the single best strategy based on game rules, but it won’t be easy and will probably require some complicated math.
Some things were left out completely, as they aren’t very important. For example: what is a better backup for a Moon base — a warehouse, an ocean lab or maybe another Moon base? Given the current game state it should be possible to provide exact answer.
And I’m almost sure that there are a lot of small errors, both mathematical and grammatical ones, but who cares?
Хостинг от uCoz