This tech model will most likely be very close to what will be in the final game, unless someone else has a brilliant new idea. If you have any ideas, comments, or suggestions, now is the time to make them known. After we agree on the final structure of the model, the hard work of adding detail and fine tuning everything will begin. We would like as much input as possible before we start sinking a lot of work into the details. The last technology thread gave us a lot of good ideas for the model and helped us improve the system. More input and discussion will improve this system as well, so please let us know what you think.
This post is meant to be a good starting point for everyone, so I will start at the beginning. If you are familiar with the tech model, just skim through what you already know.
Justification and Background
In most tech trees, all techs are discrete units that are linked together by prerequisites. This works fine for simple games that are focused on a single topic or are not very detailed. However, Clash will be a game with great depth and complexity, and this type of system would lead to many problems. The main one is complexity. A tech tree with hundreds of techs linked together would be difficult for the player to learn and very difficult to construct. It would also be vulnerable to bugs and gameplay problems. A similar problem is one of flexibility. Such a tree is very hard to adjust. It would make tech tree creation or modification very difficult for the Clash team and anyone who wanted to make a scenario.
Another problem is historical accuracy. In the normal tech tree, all knowledge comes in big chunks and never improves after you get it. Your metallurgy skill is the same in 2000 BC and 2000 AD. This is unrealistic. Historically, technologies are constantly improving in a continuous fashion.
To reflect this and avoid the problems with a standard tech tree, we have created a tree that splits technologies into four layers. The bottom layer consists of Applications, which are items, improvements, or units that you can implement in your civilization. The top three layers are Technologies that grow continuously as your civ advances.
This solves the problems of complexity and flexibility that plague most tech trees. Rather than making a complex chain of applications, a thing is simply assigned a requirement of some percentage of one or more Technologies. This makes it amazingly easy to modify the tech tree and add units. Now, we can allow other model leaders to give us a list of applications that they want and easily put those technologies in the tree. With the normal tech tree type, we would have to force other people to use the technologies that we put in at the beginning. The current tech tree model is flexible enough to be easily changed by the Clash team and any scenario designer.
Description of the System
Technologies are broad, contiguous areas of knowledge or skill that are defined as percentages from zero to a hundred. Zero percent represents no knowledge, 1% represents minimal knowledge, and 100% represents the highest level of publicly known application as of January 1, 2000. The scale is logarithmic, with each 10% increase representing approximately a doubling in knowledge or skill. This might not be entirely accurate, but it works for now and we can rescale it later.
There are three layers of these Technologies. We have names for the levels, but to avoid confusion I will refer to them as Level 1, 2, and 3.
Level 1 technologies are broad, theoretical fields of knowledge like Physics or Biology. Level 1 technologies determine how fast other technologies will advance. This will be described in detail later.
Level 2 technologies are more focused and practical areas of study, usually within the Level 1 techs. They include things like Mechanics, Electromagnetics, and Optics under the Physics tech and Anatomy, Botany, and Ecology under the Biology tech. The level of these technologies determine the efficiency at which your civ can do certain things, as well as determining the rate of advancement of Level 3 technologies.
Level 3 technologies are your civ's knowledge and skill in some specific area of practical application of knowledge. A certain level of a Level 1 or 2 tech might be required to obtain this technology. Examples of these techs are Shipbuilding or Robotics. Specific applications become available when some percentage of one or more Level 3 technologies have been reached.
Note that Level 3 technologies like Shipbuilding are not just sets of theories and equations. The techs are also meant to represent experimentation, trials, prototypes, and the study of potential applications. So by Shipbuilding 50% your people have already drawn plans for a new type of ship, built a prototype of that device, and figured out how to operate it and what it would be good for. At that point you get the message that some new thing is available. The practical part of things is already included in all of the techs. They are not just academic disciplines; they also represent the completed and tested plans for doing things.
Basic technology levels are increased by spending Research Points, or RP's. These are generated by your civ, and the amount your civilization generates should grow constantly as your population and economy expand. The pool of your RP's represents the entire creative capacity of your civilization, not just people working under government supervision. Any farmer, craftsman, engineer, or philosopher is a potential source of RP's. You also get RP's from any contact with other civilizations. Trade is one of the biggest RP generators, but battle, espionage, and the mere presence of another civ close by will generate RP's to simulate the diffusion of knowledge and technology. Of course, you can also generate RP's by investing in research. In addition to this, you get a small amount of RP's every time you construct something.
You do not control how most RP's are spent. Any 'free' RP will be spent automatically to advance the technology that is most related to the production source. For example, RP's generated automatically by an agricultural province would be spent on Biology, Breeding, and Botany while RP's that you get by building a string of fortifications would be spent on Masonry and Architecture.
The technologies that you will be able to most directly influence will be the Level 3 techs. Until you get close to the early modern era, your government will not be able to influence the more theoretical Level 1 and 2 techs because their connection to practical applications are not well understood. Any research you order will be into some Level 3 tech like Siege Weaponry. You can say, "Make better siege weapons for our army" but until you know more about how science works you will not be able to say, "Learn about Physics."
As you grow more advanced, you will gain the ability to put money into Level 2 techs. Later, you will be able to support the development of Level 1 techs as well.
Because the rate of knowledge growth is exponential and the rate of RP production is also close to exponential, the number of RP's spent for an increase in percentage must also grow exponentially. Also, you must spend RP's to keep your tech levels from falling. This represents the effort put into teaching the people your civ's scientific, cultural, and technical knowledge. The amount of effort you put into education is proportional to the amount you know, so you have to spend RP's based on the level of the tech.
So we have a differential equation of the form
where a, b, c, e, n, and m are constants, P is the current percentage, dP is the change in that percentage every turn, and RP is the amount of RP's spent on the tech in one turn.
If RP is zero, the tech declines at a rate proportional to the level of the tech. If RP=xP, there is no growth. You can see that the input required to keep the tech level constant increases as the tech does, to simulate the greater amount of teaching required. In between these two, the decline is less rapid but still present. If the first term is greater than zero, then the tech rises, but the rate of the rise slows as the tech level increases.
The previous equation does not take into account the effect of tech synergy. All fields of knowledge are related, so knowing more about Tech A will allow your research into Tech B to be more effective. The change in the percentage increase of Tech B is multiplied by some factor that depends on the level of tech A. The nominal equation for this is
where dPf is the final increase of Tech B, dP is the number obtained from the first equation, C is a constant, and A is the percentage of Tech A. Obviously dP will have to be very small, so it will be very hard to raise the tech if A is low.
Tech A is known as either a Vital Tech or a Helper Tech, depending on the magnitude of C. A Helper Tech gives a smaller increase in tech gain, while it is almost impossible to raise a tech without a decent level of a Vital Tech.
Vital Techs are almost always techs that are one level above the tech being influenced. Vital Techs are technologies that are extremely important to the development and understanding of the tech in question. The dependant tech is usually a sub-field of the Vital Tech. For Example, Anatomy would have Biology as a Vital Tech. A Helper Tech can be any other tech that would aid the knowledge or study of the tech. Optics would be one Helper Tech for Anatomy.
Applications have percent requirements in one or more technologies, usually Level 3 technologies. When that percentage is reached, the application becomes available to your civ.
Note that gaining the requirements for the application does not necessarily mean that you can use it instantly. Any item must be made using the productive capacity of your civ, and social applications like Public Education can only be implemented if your population agrees to it, based on the social model.
The effectiveness of applications depends on the level of the relevant Level 3 technology. The tentative equation for this Application Factor is
E=.1(T1-R1+10) * .1(T2-R2+10) . . .
where E is the effectiveness of the application, R is the percentage requirement for the application, and T is the current percentage of the requirement technology.
When the device is acquired by normal research, all T values will equal the R values and E will be one. As the T values increase, E will also increase. This simulates the constant improvement of applications as basic technical knowledge increases.
To explore this equation and its consequences in detail, consider an application with only one tech requirement. Assume that the Level 3 tech Firearms is the only requirement for the Arquebusiers unit, and that this particular application needs Firearms 20%. This is not necessarily accurate or final; it is just an example.
When you reach Firearms 20%, you get the application and can now make Arquebusiers. T=R, so E=1. The unit is at its base power.
Now suppose that you increase your knowledge to Firearms 25%. This means that your firearms knowledge is about 141% of what it was at Firearms 20% when you developed the Arquebus. E is now 1.5, or 150% of what it was earlier. Your Arquebusiers are 1.5 times as good as they were when you first made them. An increase in technology has resulted in a slightly greater increase in application effectiveness. This is reasonable because there is a lot of room for improvement when something is first developed.
When Firearms reaches 30%, your knowledge of Firearms has doubled and so has the effectiveness of your Arquebusiers.
As you continue to increase your tech, you get diminishing returns on that application. This is also reasonable, because as things get better it is harder to improve that thing. At Firearms 40% your knowledge has quadrupled, but the Arquebusier effectiveness in only three times its original value. At this point there will usually be a new application with a base effectiveness of four times the effectiveness of the Arquebusiers.
This new application will quickly make Arquebusiers obsolete, even though both of are increasing effectiveness based on a simple formula. At invention, there is not a very large effectiveness gap. The new thing is at 4 times original Arquebusier power, while Arquebusiers are at 3 times the original power. But as tech rises, the difference quickly becomes large. At Firearms 45%, the Arquebusiers are at 3.5 times their original power. The new unit, however, is at 1.5 times its initial value, or 6 times original Arquebusier power. Arquebusiers are now totally outclassed, even though the starting disparity was not that great.
The same application factor can be used to easily and realistically model the loss of ability due to a decline in technology. If you allow technology levels to fall, then applications based on that technology will become less effective. People now lack the technical knowledge to make and repair the application, so it cannot be used as well.
At first, the loss is not a big disaster. If your Firearms tech drops to 37%, or three percent below the new unit's requirement of 40%, then the Application factor is at 0.7 and the new unit is seven tenths as powerful as it was when it was invented. At this point, this unit is about as effective as your Arquebusiers, so there is no real calamity.
But as the tech continues to fall, the effects will become severe. At 35% it is at half power, at 33% it is at a third of its original power, at 32% it is one fifth original power, and at 31% it is utterly useless at one tenth of original power. At 30% Firearms technology, the Application Factor is at zero and all units disappear. The application is lost entirely and it will have to be rediscovered. This is reasonable because at this point you have half the knowledge you originally needed to make the thing. The science behind the operation of the thing is now completely foreign to you.
Sometime during this decline period, you lose the ability to make new copies of the thing and can only maintain the existing applications. The current consensus is that this cutoff point be 5% below the requirement point, when the application factor is 0.5
There is some debate about the acquisition of the applications. My recommendation, which will be used in Demo 5, is that all applications are received exactly at the requirement percentage without any deviation. I see this as the best option because it is simple and fair.
Other people prefer that the application be received randomly, with the probability of invention being something like a bell curve centered on some percentage before the requirement percentage. The width of this curve would be based on social factors, with a high chance early invention for societies that value freedom and inventiveness.
While more realistic and accurate, I think that this is needlessly complex and would lead to several gameplay problems. Any randomness can be supplied by the randomness in the generation of RP's. Occasionally, someone will raise the Level 3 technology a few points, and this jump in tech can cause the early acquisition of an application.
Another new concept in the tech model is the idea of a "Template Tech." This is actually a Level 3 technology or an application that changes its name, description, and icon based on the civ's culture. "Culture" in this context more closely means, "Artistic and Religious preference." It is chosen at the beginning of the game by the player and does not change. It has nothing to do with culture as defined by the social model. For example, the template tech "House of Worship" would be a cathedral for European cultures, a mosque for Arab cultures, a pagoda for Oriental cultures, and a temple for Native American cultures. The house of worship does exactly the same thing for all people and has exactly the same prerequisites, but it looks different so we don't have a situation like the one in Civ 2 where the Japanese or Zulu have to build a cathedral to keep people happy.
The player never sees the generic name. It is simply a coding description. They would simply see a message like, "We can now build cathedrals" or "We can now build mosques."
In the basic game, we should keep all things that come from template techs identical. That way, no race of people will have any kind of advantage. But we should give scenario designers the option of changing the things that come from template techs. For example, someone who made a 20th century scenario might want a template tech called, "World War 2 fighter." If you played Americans this would give you a P-51, if you played Japanese this would give you a Zero, etc. As any military history buff knows, these planes were not identical. The scenario designer might want to give them slightly different statistics to reflect history. The ability to make these template techs lead to different things based on the civ would be a powerful design tool.
The Tech Tree
This is not meant to be the complete and final list. It is meant to illustrate the structure and stimulate discussion. Most helper techs and Level 3 Technologies have not been included. We plan on adding Applications at the request of the other model leaders.
People familiar with the old tech tree will note that some technologies have vanished. In most cases this was intentional. Many previous technologies like Resource Gathering were amalgamations of many diverse skills. In this model, these techs have been split into several Level 2 and 3 techs.
Note that Mathematics is a helper tech for every technical discipline while Art is a helper tech for all social technologies.
These Level 1 techs are vital techs for
all level 2 techs listed after them. The format is
Art---Literature, Music, Theatre, Visual Arts
Biology---Anatomy, Botany, Breeding/Genetics, Ecology
Chemistry---Ceramics, Explosives, Fuels, Metallurgy, Synthetics
Construction---Architecture, Roads, Mechanical Engineering
Earth Sciences---Geology, Mapping and Surveying, Navigation, Meteorology, Mining
Government and Management---Government, Industrial Engineering, Law, Management
Military Operations---Air Tactics, Combined Arms, Covert Operations, Infantry Tactics, Logistics, Mobile Tactics
Physics---Electronics, Fluid Dynamics, Magnetism, Mechanics, Nuclear Physics, Optics
Social Sciences---Philosophy, Psychology, Religion
Other Level 2 Techs
Agriculture---Biology, Earth Sciences
Examples of Level 3 Techs with Requirements
Airplanes--- Fluid Dynamics 35%, Engines
Examples of Applications
That should cover the structure of the
new system. What do you think?
Constants and Variables for Tech Growth:
MV and GV: These determine the overall rate of tech change based on knowledge increase. MV means Multiplier Variable and GV means Growth Variable. The overall knowledge is multiplied by MV for every GV rise in tech level. MV used to be set at 2 and GV used to be set at 10.
Tn: The tech level on the turn before the calculations.
Tn+1: The tech level after the calculations.
m: This constant determines the effect that RP’s have on the growth and maintenance of a certain technology. It will probably be set to about 0.01, but can be changed for each tech.
c: This constant determines the amount of upkeep that a certain technology requires. It will usually be around 0.02, but can be different for different techs.
Ts: This is the level that a technology is at when it is first discovered.
E: This variable influences the difficulty of maintaining a technology. It will be influenced by the social and government model, among other things. It will not be functional for Demo 5, but we should prepare a place for it. For now, it will be equal to one.
H: This variable is the total influence of all helper technologies. It is determined by the following constants, variables, and equations:
HT1 through HTx are the technology levels of the tech’s helper technologies. These would logically have to be the technology levels at the previous turn. A level of technology that was just calculated would not be able to impact something that is theoretically happening simultaneously. For this reason, Tn for every tech should be stored until all of the tech level calculations are finished.
h1 through hx are constants that determine the influence of each helper technology. O1 through Ox are the tech level offsets applied to each helper technology. They give a bonus or penalty to the helper tech levels so that research is easier or harder.
W determines the overall influence of the helper techs. After all of the playtesting is done, we might fix this at a single value, but for now we should keep the ability to alter it so we can test different values. It is defined as something times the gain variable GV, so if we change GV all of the helper equations will still be accurate.
RHL = (h1*(HT1n +O1-Tn)+...+hx*(HTxn+Ox-Tn))
H = MV^(RHL/W)
I: This variable influences the difficulty of raising technology levels. Like E, It will be influenced by the social and government model, among other things. Also like E, it will not be functional for Demo 5, but we should prepare for its inclusion and set it equal to one for now.
DR: This determines what diminishing returns, if any, will be applied to excess RP generation. Like W, it is here for testing purposes and might be fixed in the final model.
The steps from RP to tech change are as follows. V will describe some quantity based on RP’s that is carried over from one step to the next.
1) V1 = RP*m - E*c*(MV^((Tn-Ts)/GV))
2) If V1 < 0, then V2 = V1.
V2 = H*I*V1^DR
3) Tn+1 = GV/ln(MV)*ln((MV^((Tn-Ts)/GV))+(V2))+Ts
After this process is completed for every technology, the effects of the technology change must be calculated. Some technologies like Sanitation have direct effects on other models based on their level. These effects will probably not be in Demo 5, but we will have to prepare for that functionality in the tech model.
To ensure flexibility, each technology will have to have "Alter Variable" commands that can be defined in the tech editor. All of the variables in other models are defined independently of the technologies. Each individual technology would have the ability to affect those variables in some way. For example, the disease model might define some variable named CLEAN. The number of new people infected by a disease is divided by his variable. The Sanitation technology would then have an Alter Variable command like, "CLEAN=CLEAN*(.04T)" As the tech level increased, CLEAN would increase and disease spread would slow.
Another effect of technology increase is to allow access to a new technology. If the requirements for some technology are met, then that technology is set to its starting tech level and the player is notified of its invention. On the next turn, the tech level of that technology is recalculated.
The main effect of technology, and the one that will be included in Demo 5, will be applications and application factors. The application factors will be calculated for each application as follows:
E is the application effectiveness factor. If the application is a unit, it changes the unit's power. If the application is an improvement, it changes the effect that the thing has.
T1 through Tx are the levels of the technologies that are requirements for the application. R1 through Rx are the tech level requirements for the application. h1 through hx are constants that determine the influence of each required technology on the growth of the application.
L is a constant defined for each application that determines the expected lifetime of the application. G determines the short term growth of the application. F determines how fast the application factor falls with a decline of tech level. G and F have to be defined in terms of GV so a change in GV won't foul things up.
RTL = (h1*(T1-R1)+...+hx*(Tx-Rx))/(h1+...hx)
E=RTL*G+(1+.1*(MV-1)*L)^(RTL/GV) when RTL
is positive or zero.
Applications should also eventually have an Alter Variable command. The effect that the application has on some other thing is determined by the application level. For example, a sewer system would have an Alter Variable equation like, "CLEAN=CLEAN*(.2E)" There should also be a tag that tells how much of the civ is affected by this application. In this case, only a small area is influenced. But that is still pretty far in the future.
I would like the tech tree utility to do the following things. If anything here is not feasible, let me know.
1. Set values for MV and GV, and set default values for m, c, W, and DR. It would be good if W was defined in terms of the default GV (GV times something)
2. For every technology, input:
It would be nice if parts a through e were in different sections. Also, space should be left for the the Alter Variable section and sections dealing with E and I.
3. For every application, input:
Later, the application editor should have much more functionality, but that is all we need for now.
With this editor, we should be able to define a technology like:
a. Farm Machinery and Equipment
The applications would be defined like:
a. Bombard Cannon
This should be the final, coded tech system. Once it is all done, we will be able to build the actual tech tree.
(To learn more about this topic, click here)