Advanced Tech' Tree Design - Part One
From Scenario League Wiki
A guide to designing advanced tech trees, including civilization-specific advances, units, improvements and wonders.
by Blackclove (April 1999)
Advanced Tech Tree Design
A scenario designer often wants to have different units and advances available to different tribes in their scenario. This guide is about making that happen and in general about editing the advances tree. If you haven't done so already, I suggest that you read our basic tutorial on editing rules.txt. Although we assume you have Fantastic Worlds or the Multiplayer Gold Edition installed, you will not be able to use the FW/MGE Advances Editor to achieve all of the effects you want. Notepad is your friend!
The main source of the problem is that you must use advances that DO NOT appear in the Civilopedia as the root of your tech tree. Fantastic Worlds is a little too clever, and will try to "fix" your tech tree if you do this. That's why you will need to do some editing using Notepad.
Download "Invasion Earth" Example
| For this tutorial, I've created a new mini-scenario called Invasion Earth. It's only a marginally playable scenario, but with some tweaking it could actually be a lot of fun! I've included a units file, a basic rules file, a people file, cities file, and the pedia.txt file. It is a total war scenario featuring aliens invading Earth. As the humans, you have lots of cheap units available, but are horribly outclassed by the invaders. As the aliens, you have only a fixed number of your most powerful units, and it will be a while before you can start really manufacturing even your lesser units.
The mini-scenario has two main features that interest us:
No-No Advances and Tribe-Specific Tech Trees
The key to making differences between your tribes is the use of no-no advances. If you look at the main Civilization II rules.txt file advances around plumbing you see:
The two "no" columns for Plumbing tell you that there are no advances leading to the research of Plumbing. Plastics, on the other hand, requires Refrigeration (Ref) and Space Flight (SFl) - I say it is "derived" from Refrigeration and Space Flight. In the real game, Plumbing doesn't appear in the Civilopedia and you can never research it. It isn't derived from ANY technologies. You can't even give it to a civilization by using the cheat menu. It's almost as if the advance doesn't exist.
Plumbing is what I call a no-no advance. Don't confuse no-no advances with nil-nil advances -- those requiring nil as their prerequisities. Nil means nothing is required to research this. No means you CAN'T research this.
There are a number of useful properties of no-no advances:
- No-no advances cannot be traded to other civilizations
- No-no advances can never be researched
- No-no advances cannot be stolen or acquired through conquest
- No-no advances, and any units or improvements that it is the prerequisite for, do not appear in the Civilopedia. So, if you create a no-no advance called "Bite Me" and derive a unit called "Megakewl" then although the player can build Megakewls, they cannot see the stats on it in the Civilopedia or view the "Bite Me" technology description.
You CAN give a no-no advance to a civilization using an Event.
Important: Advances that are derived directly from a no-no advance appear in the Civilopedia normally. We will exploit this in order to create tech trees that are specific to a given civilization.
Why we need Notepad: The 'Once Removed' Advance
Fantastic Worlds and MGE are both too smart for their own good.
As an experiment, you might want to start a new game, save it as a scenario (say, test1) and change Pottery to a no-no advance called Once Removed. Now create an advance derived from Once Removed and nil called The Thing. Save as scenario, quit, and begin the scenario. Now check the advances. What has happened? It lists The Thing in the pedia, but you cannot research it -- even if you give the player the advance Once Removed. If you check the advances editor, you'll see it has modified The Thing to have prerequisites no, nil.
It seems this means it's impossible to make tech trees that are unique to one civilization!
The problem is that Fantastic Worlds has a habit of trimming items that are directly derived from no-no advances when created using the FW editor. Hmm… this sucks! You'll also find that these single-step no-no derivations cause FW to do lots of other strange things to your rules.txt file if you start editing things. Names and such will get screwed up. This is due to a major bug in FW.
So, if you create any no-no advances AT ALL, you can no longer use the Advances Editor in Fantastic Worlds. Other editors will still work OK, like the improvement editor, but if you use the Advances Editor you will get poor results.
So now what?
The Twice-Removed Advance to the Rescue
OK, this time start a new game, save it as a scenario (test2). Change one of the advances to a no-no advance called Twice Removed. Now create an advance derived from it called Once Removed. Finally, create an advance derived from Once Removed called Kick Alien Butt. Copy the pedia.txt file from another scenario so you can see the results of your work. Quit and begin the scenario. Here is an example starting from Plumbing:
Now what's up? Twice Removed isn't in your pedia, but Once Removed is - although the prerequisites look funny. The important thing, though, is that Kick Alien Butt looks fine!
Now open up your rules.txt file with Notepad. Whoa! Surprise! Your new advances look fine -- they've not been altered!
What have we learned?
If you create a new no-no advance, it will not appear in the pedia and advances directly derived from it cannot be researched. But, if you create a Twice Removed no-no advance, and then give a tribe a Once Removed advance derived from it, then new advances derived from Once Removed can be researched. Further, this process seems to insulate Fantastic Worlds from the bug associated with no-no advances to a certain degree. You will still not be able to use the Advances Editor after creating no-no advances, but at least your work will not be destroyed just by playing.
Creating new tech trees is as simple as deriving an advance from Once Removed that is specific to a particular tribe. For example, in the Invasion Earth scenario, I've created two special technologies derived from Once Removed. Kick Alien Butt is the root of all human technologies, while Destroy Mankind is the root of all alien technologies.
I have used this process to good effect in several scenarios, most notably Dungeon: Heroes of Beckhorn, where there are no less than six unique technology trees, each derived from Once Removed, which is in turn derived from Twice Removed. These later technologies can be researched, stolen and traded normally, but if only the aliens have Destroy Mankind, then the humans won't be able to research those advances.
At this point you will need to find ways to disable some of the ways of swiping these advances. I suggest turning off "tech from conquest" when you begin designing your scenario for real (you must tick this when you begin the game for the first time, as it is an option only then). You should also not use diplomats and should turn off negotiations using events. Start each civilization with its root technology and you are ready to go!
If you want, you can open up the Invasion Earth rules.txt file. You'll see that several advances have been converted just as I suggested. Just to prove that any four technologies will pretty much work, I changed Astronomy and Atomic Theory to Once Removed and Twice Removed, and made several technologies derived from them. For example, all of the government techs are derived from Once Removed so they will appear in the Pedia, but will not be possible to research. Likewise, I have included Kick Alien Butt (as Automobile) and Destroy Mankind (as Bronze Working). You might want to load up the scenario and check to see that the no-no advances in fact do not show up, while those derived from Once Removed show up in the Pedia and list of techs you can give to the player.
Making Units Unique to a Single Civilization
OK, we're now ready to make some unique units! The obvious way is to make your unit require an advance that other civilizations can't get (i.e., derived from one of your advances that comes off the Once Removed tree).
But what if you want the units to require the SAME technology to build for all civilizations, but still be available only to some civilizations? For example, you might want to have Knights and Samurai in the same game, both requiring Warlord Training as the needed technology, but have the Samurai allowed only to the Japanese tribe while Knights are available to the European tribes.
I will demonstrate with an example from the Invasion Earth scenario. Open up rules.txt for the Invasion Earth design with Notepad. Notice that both Colony Pods and Engineers require nil to build:
However, you can also see that they require different advances to become obsolete - in this case, Kick Alien Butt [Aut] (for Colony Pods) and Colonization [Exp] (for Engineers). Because Kick Alien Butt technology is ONLY available to the humans, they can never build Colony Pods -- although Colony Pods appear in the Civilopedia. Likewise, the Colonization advance is only going to be given to aliens so the aliens won't be able to build Engineers.
Another example is the Plasma Marines unit (human) and the Alien Tank unit (alien), both of which require Plasma Weapons [Whe] to build. However, Alien Tanks go obsolete with Kick Alien Butt [Aut], so humans can never build them. Likewise, Plasma Marines are human-only because they go obsolete with Destroy Mankind [Bro].
What this illustrates is that you can have two units that require the same technology to build, but that are civilization-specific. The way you do it is by having different technologies that make the units go obsolete. Usually, these special advances will be derived from Once Removed and will be given to the tribe from the start, as in the case of Kick Alien Butt.
Making Improvements and Wonders that are Civilization-Specific
So what if you want to make an improvement unique to a single civilization but that requires the same advance for both civilizations? We can't simply make it obsolete like we could with units. To accomplish this particular trick requires the use of events as well as technologies. Imagine we want two civilizations to both be able to research Monotheism, but we want our Islamic civilization to build Mosques and our two Christian civilizations to build Cathedrals. How can we do it?
- First, create the Mosque using the Colosseum slot. You should probably find a good picture for it and rename the Colosseum "Mosque".
- Now, create three different advances using Notepad. Advance #1 is Monotheism, and it is a regular advance with the usual prerequisites. Advance #2 is Islam, and it is a no-no advance. Likewise Advance #3 is Christianity, and is a no-no advance. Make Mosques require Islam and Cathedrals require Christianity.
- Now, create events that are unique to your Islamic civilization so that when Monotheism is discovered, they are awarded Islam.
- Create events that are unique to each of your Christian civilizations that given them Christianity when they discover Monotheism.
The reason why you need one event for each civilization is that you will want this to be a JUSTONCE event; otherwise it will fire every turn and pop up whatever message you had.
Concluding Remarks: Part I of the Tutorial
This tutorial has addressed several questions. First, how can you make tech trees that are unique to a particular civilization? Second, how can you make units that are unique to a particular civilization? And finally, how can you make wonders or improvements that are unique to a particular civilization? Part II of the tutorial addresses the finer points of tech tree design - that is, the picky details.
Most of Part II has already been covered excellently in Leon Marrick's guide to advanced scenario design, but I will reprise it and give some examples from Invasion Earth. I will also include a few other considerations that have not been covered before.