Remnants of the Precursors · ↑ Systems Map · Design series 03
ROTP Tech Tree
Six categories, 270 techs, and a research model that is not what most 4X players expect.
Research points do not fill a bar — they buy lottery tickets. And the tree you get
is not the tree your neighbour gets: roughly half of it is discarded at random when your empire is
created, and never comes back.
Scope base ROTP rulesCore TechTree · TechCategory · TechData data/techs.txt, 270 records
01The shape of it
Six categories, three different meanings of "level", and a unit called a quintile.
Every empire owns one TechTree holding six TechCategory objects, fixed and
indexed 0–5: Computers, Construction, Force Fields, Planetology, Propulsion, Weapons.
Research is allocated across them with a 60-tick slider budget. Each category researches exactly one
tech at a time and banks its own progress.
Tech, level, quintile
A tech is a concrete item, identified as Type:sequence — for example
ShipWeapon:16 or EcoRestoration:3. Every tech carries an integer
level from 0 to 100, read from the data file. Levels are grouped into
quintiles of five:
Real research occupies levels 1–50, which is quintiles 1–10. Above that sit
the ten future techs per category, at levels 55, 60, 65 … 100. Future techs grant
no equipment at all — they exist to absorb research points and keep raising the category level,
which still matters for miniaturization and for planetology's worker productivity.
Two different "levels" — the confusing part
maxTechLevel() is the highest level you know. But the number shown in the interface, and
the one that drives miniaturization, is techLevel():
Breadth counts as much as depth. Knowing twenty cheap techs raises your category level
as much as reaching twenty levels higher. Free starting techs are subtracted, so they give you the
equipment without giving you level credit.
Tech records
270
across 6 categories
Free at start
18
identical for every race
Future techs
60
10 per category, levels 55–100
02The discovery roll
The single most important mechanic, and the one most likely to be ported wrong.
There is no completion threshold. Research points accumulate in a category's
totalBC, and once that exceeds the current tech's cost, every turn rolls a probability:
So the shape is: bank up to 1× cost with no chance at all, then a linear ramp to a
guaranteed discovery at 3× cost. Half the money buys nothing; the second half buys
a coin flip; the third buys certainty. Because the turn's points are added before the roll, a
single turn can both fund and complete a tech.
Discovery destroys the bank
learnTech calls resetResearchBC() — all banked points in that
category are wiped, including everything above the cost. Since discovery is stochastic, some
overshoot is always wasted.
More importantly, this fires for any acquisition of the tech you are currently researching.
If a diplomat trades you the exact tech you are two turns from finishing, or a spy steals it, or you
plunder it from a captured colony — your entire bank in that category evaporates with no refund
and no partial credit. Being given a tech can be actively expensive.
03Where research points come from
And the interest rule, which rewards exactly the opposite of what players assume.
Colonies produce research from their research slider, multiplied by the planet's research adjustment
(×4 on Orion ruins, ×2 on Antaran ruins), the racial research bonus, and a global hook. The
empire sums them once per turn into a single pool, then splits it by the six category sliders.
That min(totalRP/6, categoryBC) is a bonus capped at an even split. Work
through the two extremes:
Allocation
Effective RP
Why
Even 6-way split
×1.25
Every category is at exactly the cap, so each earns the full 25% on its whole share.
All in one category
×1.042
The bonus is capped at 25% of one sixth of the pool, no matter how much you pour in.
Spreading research is worth 20% more raw points than focusing it. This is a real,
substantial, and almost entirely undocumented pressure toward broad allocation — the opposite of the
"rush one category" instinct most 4X players bring to the game. Combined with the fact that the
discovery roll pays nothing until you clear 1× cost, a thinly-spread category can sit banking for a
long time before it produces anything, which is what makes the pressure feel counterintuitive in play.
04What a tech costs
Quadratic in level, scaled by race, galaxy size, and the research-rate setting.
cost = researchCostBase(level) × researchMapSizeAdjustment × level² × racialMod
// then rounded up to roughly 3 significant figures
The four factors, in order of how much they vary:
Factor
Range
Effect
level²
1 → 2500
The dominant term. A level-50 tech costs 2500× the base of a level-1 tech before anything else applies.
researchCostBase
flat 30 on Normal
The research-rate option. Normal is the only setting flat in level — every slower setting makes high-level techs disproportionately expensive on top of the quadratic, and Fast asymptotes toward half cost at high level.
researchMapSizeAdjustment
√(stars / empires / 12)
Normalises pace against galaxy size. Twelve systems per empire is the neutral point; bigger, emptier maps cost proportionally more, offsetting the larger economy they support.
racialMod
0.60 – 1.25
Per-category, per-race. Lower is cheaper.
Race modifiers
Three separate racial levers: a discovery percentage (how much of the tree you can research at
all — see §05), a flat research point bonus, and the six per-category cost multipliers.
Race
Tree %
RP
Comp
Constr
FF
Plan
Prop
Wpn
Psilon
75
150
80
80
80
80
80
80
Meklar
50
100
60
100
100
125
100
100
Klackon
50
100
100
60
100
100
125
100
Alkari
50
100
100
100
125
100
60
100
Mrrshan
50
100
100
125
100
100
100
60
Sakkra
50
100
100
100
100
60
100
100
Human
50
100
100
100
60
80
80
100
Darlok
50
100
80
100
100
100
100
100
Bulrathi
50
100
125
80
100
100
100
80
Silicoid
50
100
80
125
125
125
125
125
Each race's cheap category is its identity: Meklar computers, Klackon construction, Alkari propulsion,
Mrrshan weapons, Sakkra planetology. Psilon is cheaper at everything and researches 50% more
points and sees half again as much of the tree. Silicoid pays a premium on five of six.
Difficulty does not touch tech cost at all. It scales AI colony output, which indirectly
scales AI research points. A harder AI researches faster because it is richer, not because its techs are
cheaper.
05Your tree is not the tree
About half of every category is thrown away when your empire is created.
This is the design decision that gives ROTP games their character, and it happens once, silently, at
empire creation. Every candidate tech is bucketed by quintile, and each one independently survives a
roll against the race's discovery percentage — 50% for almost every race, 75% for Psilon:
for (int i = 0; i < MAX_QUINTILES; i++) {
boolean found = false;
for (String id: techsByQuintile[i]) {
if (random() <= discoveryPct()) { addPossibleTech(id); found = true; }
}
if (!found) // never leave a quintile empty
addPossibleTech(random(techs));
}
Techs that lose the roll are gone for the whole game — not delayed, not more
expensive, simply not in your tree. You can still obtain them by trade, espionage, plunder or artifact,
but you can never research them. A safety net force-adds one tech if a whole quintile would come up
empty, so there is never a dead level band.
Propulsion gets extra protection: fuel-range and warp-engine techs are force-included whenever the gap
since your last one reaches a configurable limit, so no empire is ever stranded unable to reach the next
star.
Design consequence
Two empires of the same race in the same galaxy have genuinely different strategic options. The
Stargate you are counting on may simply not exist for you this game, and the only way to find out is
to reach that quintile. It is also why tech trading matters so much: your neighbour is not
just ahead of you, they may hold techs you could never have reached on your own.
What you can research right now
You may always research one quintile beyond your highest known quintile. Once you reach future-tech
territory you may only advance past your current quintile after clearing every remaining ordinary tech
at or below it — which is what stops you from skipping into Future Tech while real techs are still
on the table.
06Choosing what to research
There is no lock-out, and the bank does not follow the choice.
When a category needs a new target, the player gets a selection prompt and the AI sorts by its own
research priority. Unchosen techs are not removed from the pool — nothing is ever
locked out by picking something else, and you can switch the current tech at any time for free by
clicking a different node.
Bank and switch
currentTech(Tech) assigns a string and sets a flag. It does not touch
totalBC, which belongs to the category, not to the tech being researched.
So you can point a category at an expensive level-50 tech, bank research against it for many turns,
then switch to a cheap level-20 tech — and your accumulated bank, now far above 3× that
cheaper tech's cost, converts into a guaranteed discovery on the next turn. The bank survives the
switch; only discovery clears it. This is a genuine and exploitable asymmetry, and worth
deciding about deliberately rather than reproducing by accident.
One more wrinkle on the player side: the selection prompt stops appearing once you finish Future Tech 1.
From then on the AI silently picks for you.
07Miniaturization
Old equipment gets cheaper and smaller as the category advances. Two different rates.
gap = min(50, categoryTechLevel − techLevel)
costFactor = 0.933033 ^ gap // all categories
sizeFactor = 0.933033 ^ gap // WEAPONS only
= 0.971640 ^ gap // everything else
Those constants are more legible as halving distances:
Rate
Value
Halves every
Over the 50-level cap
Fast
0.933033
10 levels — it is exactly 2−1/10
×1/32
Slow
0.971640
~24 levels
×0.237
So cost always shrinks fast, halving every ten category levels regardless of category.
Size shrinks fast only for weapons; everywhere else it shrinks at less than half that
pace. Power is not miniaturized at all.
The gap is driven by the composite techLevel() from §01 — the one that counts
breadth. A wide-but-shallow category miniaturizes just as hard as a deep one, which is another quiet
reward for spreading research. Only about seventeen component techs participate; the rest are not
miniaturizable.
08Obsolescence
A labelling and valuation signal, not a research gate.
A tech is obsolete when you already own a strictly better one of the same type. Some classes compare
levels against the registered best; others compare the stat directly — armor by ground bonus,
engines by base warp, fuel range by range level, factories by cost.
Obsolete techs remain researchable and remain in your pool. What obsolescence actually does is gate the
registration:
public void provideBenefits(Empire c) {
super.provideBenefits(c);
if (!isObsolete(c)) {
c.tech().topArmorTech(this); // only a non-obsolete tech becomes your "best"
c.tech().updateMissileBase();
}
c.shipLab().addArmor(new ShipArmor(this, false)); // but it's still added to the lab
}
The component is still added to your ship design lab — you can still build with the
older item, and benefit from its much cheaper miniaturized cost — but it does not become the
empire's registered best. That is what makes acquiring techs out of order safe: plundering an old armor
can never downgrade your current one.
Obsolescence also feeds valuation. The AI scores an obsolete tech at zero, refuses to ask for one
in a trade — and is perfectly happy to give one away, which is why AI tech trading feels so stingy.
09What's actually in the tree
270 records across six categories, plus per-category passive bonuses that need no tech at all.
Weapons is by far the largest category, and its TechShipWeapon family is the most
parameter-rich thing in the tree — each of the 25 beams varies damage range, range, heavy-mount
variant, attacks per round, to-hit computer bonus, shield-piercing multiplier and damage streaming, on
top of cost, size and power. Engine Warp is the opposite extreme: nine levels that vary exactly one
integer, with everything else derived from it.
A handful of techs are marked restricted — they exist as game content but can never
be researched or randomly awarded. These are the monster and guardian weapons: the Death Ray, Amoeba
Stream, Crystal Ray, Jellyfish Dart, Squid Ink, and the amoeba's regeneration. Three classes
(ShipNullifier, BeamFocus, MissileShield) appear in two categories
each, since category membership comes from the data file rather than the class.
10Getting techs without researching them
Six other routes, each with different rules about what it can reach.
Route
Reach
Notes
Diplomatic trade
Anything the partner knows
Deferred one turn — the exchange records intent, and the tech is learned at end of turn. Limited to one tech trade per turn per empire. The AI will normally only give away techs it considers obsolete unless you are allied.
Espionage
Non-future techs at or below the steal roll
Learned immediately, unlike trade. The reachable level scales with your own tech level and is cut by the victim's internal security. Excludes techs you recently traded away.
Ancient artifacts
Levels 1–50, ignoring your tree
Awarded on scouting, not colonizing. Antaran ruins give 1 tech within 10 levels of your best; Orion artifacts give 3 within 25 levels, minimum level 20. Bypasses the discovery-percentage filter entirely — but never reaches future techs or restricted techs.
Conquering a colony
Anything in the defender's empire tree
Each factory on the captured planet is an independent 2% chance to plunder one unknown tech, capped by a game option. Selection is uniform random, not "best available". Notably, this path is not blocked by the forbid-tech-stealing option.
The Orion Guardian
The Death Ray, specifically
The Death Ray is restricted, so killing the Guardian is the only way any empire can ever obtain it.
Random events
Varies by event
Derelict ships and relics grant batches of techs within 10 levels of the relevant category. Killing space monsters can instead inject raw research points, or complete the current tech outright. One event runs the other way and wipes a category's accumulated bank.
Alliance-level treaties add a bulk channel: under unity, every tech either partner learns is
automatically pushed to the other, and an alliance victory in the council pools everything among the
winning bloc.
Every empire also begins with the same 18 free techs — the level-0 defaults plus a
handful of level-1 basics like the first two deflector shields. These are identical for every race, are
excluded from the researchable pool, and are subtracted from the category level count, so they give you
the equipment without any level credit.
11How the AI researches
Inverse-cost weighting, a hard early-game override, and a shared "what do I want" oracle.
Setting the six sliders
Range first, unconditionally. If fuel range is below level 4 and propulsion is under
category level 5, the AI puts all sixty ticks into Propulsion and zero everywhere else. Nothing
else happens until it can reach more stars.
Inverse-cost weighting. Otherwise each category's share is proportional to
1 / cost of its current tech, so cheap categories get the most points. Leader personality
halves the weight of its matching category.
Expansion-mode override. While expanding, everything collapses onto Planetology and
Propulsion — whichever of the two is actually blocking growth, or both.
Steal instead of research. If there are stealable techs visible and the AI has the
minimum military tech it needs, it shifts points into Computers and out of everything else —
buying espionage capacity rather than research.
A per-turn correction pass then zeroes any category that is likely to discover anyway with no funding at
all, and de-funds future-tech categories while any ordinary tech remains unresearched.
Valuing a tech
Most techs get a flat 1–4 score by class. The top tier (4) is Hyperspace Communications, Repulsor,
Robotic Controls and Soil Enrichment; the bottom (1) is ECM Jammer, Stargate, Torpedoes, and all future
techs. A dozen classes are conditional — Control Environment is worth more if it actually opens new
planets, biological antidote is worth more if an enemy has a bio weapon you cannot survive, and ship
weapons are forced down to 1 if their damage is too low to matter.
One oracle, three consumers
mostDesirableTech is the same call used to pick what to research, what to ask for
in a tech trade, and what an AI spy steals. Research priority additionally halves a tech's
value for every contact who could hand it over or be robbed of it — the AI genuinely deprioritises
researching something it expects to acquire another way.
12Quirks worth knowing
Places where the implementation surprises, including two latent crashes.
Bucketing a level-0 tech would crash empire creation.quintile for level 0
is 0, and the bucket array is indexed quintile - 1. It is masked today only because every
level-0 tech happens to be flagged free, and free techs are filtered out first. The data file warns
about this in prose; nothing enforces it.
The empty-quintile fallback injects a Planetology tech into any category. The safety
net that force-adds a tech when a quintile comes up empty falls back to a hardcoded
EcoRestoration:3 — which, in a non-Planetology category, lands in a recovery branch
for "current tech does not belong to this category". The comment shows only the Planetology case was
considered.
The research-rate constants are deliberately mis-paired, with a source comment
admitting it. The identifier named "impeded" maps to the *lethargic* label and the harshest cost
factor. Reading the switch without knowing this gives exactly the wrong ordering.
Future techs claim to always be researchable and are not. Each future tech overrides
its discovery percentage to 1.0, but the tree-building code tests the category's percentage,
not the tech's. The override is decorative — future techs survive at the same 50% as everything
else, and only get in reliably because the empty-quintile fallback rescues them.
The displayed forecast and the applied value can disagree. The applied research uses a
pool snapshotted at the start of the turn; the interface forecast recomputes live. Colonies gained or
lost mid-turn make the two diverge.
A global research multiplier exists and is hardcoded to 1.0, multiplied into every
colony's research output to no effect.