Edit: The recent name change means that this thread title is obsolete. Tech will be partially implemented in Demo 7, formerly known as 5.2, and will hopefully be fully integrated into demo 8. Where you see "Demo 6" in this thread, read "demo 8."
OK, it seems that nothing happened to the tech model while my motherboard was fried. The timing couldn’t have been worse; my computer messed up shortly after Gary finished the code that would have allowed me to actually do something productive. So there has been a delay of several months, during which time Demo 5 has apparently been finished. The tech system is then planned for Demo 6.
For a while, I was planning to do a big summary of the tech system. Since we are prepared to begin development for Demo 6, this is probably a good time to do it. So I will write a tech summary with the following goals:
1. Describe the tech system so that newcomers can understand it without having to reference any previous posts.
2. Eliminate archaic holdovers such as bizarre variable names.
3. Re-familiarize myself with the technical details of the model
4. Provide a clean starting point for discussion of how the model will fit into Demo 6.
Note that this is not documentation for the code, nor is it a guide to writing more code. It is intended to be a high level overview of the model, nothing more. Due to various computer problems, I haven’t even seen the code or the tech tree data editor. So I may have to retract some of these statements if it turns out that I was mistaken about how something was coded.
The Basics (veterans can skip this)
Clash will not be using the prerequisite-based technology “trees” that most strategy games use. Given the scale and complexity of Clash, this would probably be a nightmare to create and debug. Instead, we will be using a system of gradually increasing skills that is similar to the character development system in RPG’s.
There will be several Tiers of technologies or skills, each representing a different level of effect on the civilization. They all have the same basic equations, but the player interacts with them differently.
Tier 1 techs, or “Theory” techs, measure the level of general scientific theories like Chemistry or Psychology. These broad categories of knowledge affect many aspects of the civilization, and can serve as a useful benchmark of overall scientific progress. There are about twelve of these.
Tier 2 techs, or “Field” techs, like Explosives or Mass Communications, measure the level of a more specific field of study. These have a greater impact on a smaller number of civilization activities than the Theory techs. There will be several dozen of these.
Tier 3 techs, or “Skill” techs like Artillery or Propaganda Techniques, measure the civilization’s skill in a narrow technical area that has direct effects on the daily activities of the government and society. The number of these could rise into the hundreds, but since they are mostly controlled by economic factors and other technologies, the player will not have to micromanage them.
In addition to affecting the society, military, and economy of the civilization, the technologies will affect each other. For example, the civilization’s skill level in the Chemistry tech will affect the rate at which the Explosives technology skill level increases. This will in turn determine the development of the Artillery technology, which will have direct effects on the battlefield.
Just like an RPG character, the civilization’s skills will increase as it gains experience. The development team recognizes that throughout history, many technical advances have come ordinary people in the course of their daily lives and activities. To reflect this, technology rise is a result of the labor input of various activities within the civilization. The more people that are working on some activity, the more potential there is for new ideas and mundane improvements that result in more efficiency for that activity.
For example, assume that an ancient civilization has started a big public works program, building sewers and aqueducts for several cities. This will result in the hiring and training of many engineers, project foremen, and skilled laborers who are working these systems. Many of these people will have ideas for doing the job better, and as they do their job they will learn more about the job. But they are learning more than just the basic skills for that particular project. They are learning more general scientific facts, as well as skills that are good for other things. In the future, they will be able to take some skills to other areas like the construction of roads or buildings. A few people will develop general scientific theories based on their work experience.
So in game terms, investing labor in the construction of aqueducts and sewers would result in a lot of improvement in the Skill tech of Water Systems, some improvement in the Field techs of Architecture and Civil Engineering, and a little improvement in the Theory techs of Mathematics, Physics, and Chemistry. This experience will allow the civilization to become a lot better at making aqueducts, somewhat better at working on other buildings and big public projects, and a little better at understanding the basic concepts of science.
This system of advancing knowledge means that civilizations will develop in a more natural and realistic way. The people will not wake up one morning to learn that the government scientists have developed “Construction” and that they can now make something that they had never heard of before. Of course, the government can still invest in research and education, but that is not the only source of innovation in the Clash world.
This technology system also allows technological skill to fall if it is not maintained. A certain amount of effort must go into recording and maintaining data and teaching the next generation the skills that were learned. If this is not done, then skills are lost and civilization becomes less effective at doing certain things.
RP Generation and Allocation
In Clash, the experience that a civilization gains by investing in various activities is measured by Research Points, or RP’s. This number is at the core of the technology equations.
The technology system starts by fetching data from the economy model. In addition to this, the player has the option of directing scientific research toward certain areas.
Note that the technology rise is based on labor input, not product output. If output were used, then the level could easily spiral out of control as higher levels led to higher output which instantly led to higher levels, ad infinitum. It is also more logical to base the RP’s on input, since that represents the amount of thought people put into something.
I think that the Demo 6 tech system should ignore the effects of technology diffusion based on trade and conquest. In any case, this tech diffusion affects the levels directly, using a mechanism that is different from the RP spending.
After the labor data is gathered, that data is turned into RP’s. This is done with the civilizationActivity objects. There is a 1:1 correlation between these and the infraclass objects, so each object is responsible for turning the labor input of an infraclass into a RP number that will be used in the technology equations. For now, we can probably get away with something as simple as 1 unit of labor input equals 1 RP. The concept is arbitrary anyway and the technology equations are flexible enough to handle big differences in RP production.
Example: The economy model shows that 2430 units of labor were spent on the Health Care infraclass. In addition to this, the government funded research that generated 854 RP’s for health care. This means that the civilizationActivity object must distribute these 3284 RP’s among all technologies that would benefit from an increase in health care spending. Formerly this was done with something called “Z values” but Gary and Mark advised that we move to a simple percentage system, which would work much better. So the tech system designer inputs the percentage of RP’s that go to certain technologies. A partial list for the Health Care activity might look like this:
Theory
10% Biology
5% Chemistry
Field
40% Medicine
Skill
10% Surgery
20% Pharmaceuticals
15% Nutrition
So the Biology tech gets 328 RP’s, Medicine gets 1313, Nutrition gets 493, ect. These values are passed directly to the technology equations, in keeping with the black box design philosophy and good coding practice (I think.)
I think that the technology data editor allows the user to create civilization activities and set their percentage allocation of RP’s. Gary, correct me if I’m wrong.
Hmm, it just occurred to me that decimal RP values would probably work better, especially with little-used sectors of the economy. These work fine with the spreadsheet, but is there anything in the code that would be affected by allowing RP’s to be decimals?
Technology Change Equations
Note: These equations and their related values are a mathematical ‘kernel’ that the players do not have to see. It would be a simple matter for the interface to interpret these values so that “Gunpowder level 50” is presented to the player as a “Gunpowder level 40” or possibly “Gunpowder AD 1720.”
There are several concepts used by these equations:
Knowledge is a linear scale that defines the civilization’s understanding of a technology. It is ideally a direct measurement of quality, performance, productivity, or what can be accomplished with the technology. If the knowledge of Ranged Weapons has doubled, then the civilization will be able to produce military units that are twice as powerful. If the knowledge of Architecture has doubled, then the civilization will be able to produce buildings that are twice as good. If the knowledge of Chemistry has doubled, then the civilization is twice as good at using chemicals to improve the lives of the people. Note that this does not necessarily mean that a library holding all of the facts the civilization knows would be twice as big. It is the application of the knowledge, not its volume, that counts.
The starting level of a technology, the point of minimal usefulness, is defined to have Knowledge equal to 1. In 1903, our knowledge of Heavier than Air Flight was 1. It is possible for knowledge to fall to fractions below 1 without the system failing. This rare case would represent a civilization discovering the fundamentals of something, but then losing the ability to do anything useful with it. They would probably be able to bring the knowledge back to 1 with minimal effort.
The technology model defines several values used to transform RP into knowledge. In the code, all of these are the result of a Basexxx global value times a xxxMultiplier value set for each tech. This allows us to customize the technologies but also to change default values easily while keeping the relative values of the techs the same.
RPDiminishingReturns: This value can be used to handicap larger civilizations. It is normally set to 1, and since the number of RP’s generated is raised to this power, a small change can have very large effects.
GrowthRate: This value multiplies the number of RP’s produced. It is the primary way to change the growth rate of the technology
Upkeep: Logically, the amount of effort required to maintain knowledge is directly proportional to the amount of knowledge the civilization has. This value multiplies knowledge, forming a term that is then subtracted from the total RP generation.
TotalHelperEffect is a working variable, defined later, that summarizes the impacts of the helper technologies.
So the change in knowledge is as follows:
Knowledge = previous Knowledge + (TotalHelperEffect * GrowthRate * (RP^ RPDiminishingReturns)) - (Upkeep * Knowledge)
These values are defined in the data editor and used by the tech system creator to determine the activity of the technology.
Technology Level is a working variable that makes the knowledge number easier to work with. It is simply a logarithmic scale of knowledge where the tech level changes as follows: When Knowledge is multiplied by the MultiplierVariable (default 2), the tech level increases by the GrowthVariable (default 10). So in the normal game, a doubling of knowledge will result in the tech level rising by 10.
In order to make tech comparisons easier for the person designing and debugging the system (me), The Technology Level for the default game us designed so that a Tech level of 100 in all technologies represents the most advanced publicly known application as of January 1, 2000. This means that if I look in a reference book and I see that manufacturing productivity in 1750 was 1/50th of what it is today, I can quickly calculate the proper Manufacturing tech level. 100+10((ln1/50)/(ln2)) = 44 Using this benchmark, the ‘proper’ growth rate of knowledge can be calculated and tested.
This method is also used to calculate the starting tech level, where Knowledge equals 1. The starting tech level will be different for each technology, because of the vastly different rate at which technology has grown. Our current knowledge of one tech might be thousands of times the point of minimal usefulness, while our knowledge of another tech might only be a few times the starting point.
So Knowledge is equal to MultiplierVariable ^ (( Tech level – Starting Tech level ) / GrowthVariable)
Helper Technologies and Technology Requirements
Obviously, not all technologies have existed since the beginning of time. Many technologies cannot appear until a certain level of basic technology exists to support it. The Wright Brothers could not have made their plane if there had been no light engines to power it. They also required a certain amount of physics knowledge to make their calculations. So the required technologies for Heavier Than Air Flight would be a certain level of Physics (Theory) and Engines (Field).
In addition to being requirements, a high level of these technologies will speed up the rate at which new and better planes can be developed. Better engines and more physics knowledge can make airplane research a lot easier. These helper effects are one of the primary motivations for a player to invest research into the Theory technologies.
The calculation of the effects of helper technologies is one of the main reasons for using the tech level instead of simply basing all calculations on Knowledge. The following are used in the calculation of TotalHelperEffect:
Each Helper Technology object associated with a tech contains certain values:
HelperTechEffect: This is the primary value that determines the amount that the level of the helper tech affects the growth of the technology it helps. It will normally be between 0.1 and 0.5
HelperLevelOffset is a number added or subtracted to the level of the helper tech in order to make fine corrections to the growth rate.
TechRequirement: This is the level of the helper tech required for the other technology to exist. The amount that the helper tech affects the technology is based on the difference between this and the current value of the helper tech.
So each helper tech adds its effect as follows:
HelperTechEffect * ( Current level – TechRequirement + HelperLevelOffset )
This equation is run for every helper tech, and the results are added together to form a working variable called RelativeHelperLevel. This value is then run through the following equation to determine the TotalHelperEffect value used in the RP to knowledge equation:
TotalHelperEffect = MultiplierVariable^( RelativeHelperLevel / (Growth Variable * GlobalHelperEffect))
GlobalHelperEffect is a value that determines the strength of the connections between the technologies. The value is typically set to something near 1.5. It is lowered to increase the effect of helper tech and raised to decrease it.
Alert readers will notice that this equation can have a large effect on the growth of a technology. If all the required technologies are 50 levels higher than the requirements, then the RelativeHelperLevel can also get as high as 50. This means that the TotalHelperEffect could multiply the RP generation by 30 or more. In real life, this makes sense. Knowing 32 times as much about Biology will probably make farming research proceed at about 30 times the rate, since all of the theory and background facts will aid a researcher or a farmer immensely. But this could cause problems with game mechanics of not handled properly.
The main balancing mechanism is the Upkeep value that reduces RP generation based on the knowledge level of the technology. If Biology is 50 levels higher, the upkeep for that tech will be 32 times as much as it once was. That upkeep will reduce the available RP’s for the civ, somewhat balancing the helper effects. But it will not balance completely. Since Biology provides no benefit for the civ other than those helper effects, a high level in Biology will actually hurt the player if its upkeep is higher than its helper effect.
But the tech being helped also has upkeep requirements. And since the Tier 3 Skill techs do not usually help other techs a lot, their upkeep will be higher than any helper effect they might have on other techs. This helps keep the total system in balance.
So if helper techs start reinforcing each other too much, we can increase the Global Upkeep value and the Upkeep multiplier value for certain techs.
Another more direct check on the system is GlobalHelperEffect. It serves to directly limit the effects of the helper techs. Note, however, that if it drops below 1, it will generate synergy that will almost certainly send the tech levels spiraling to infinity.
Another way to avoid problems is by good design practice. If the total of all HelperTechEffect values for a technology is less than one, the TotalHelperEffect value will be small enough not to cause problems.
The full thing was too long for one post, so it will be continued as a reply...
OK, it seems that nothing happened to the tech model while my motherboard was fried. The timing couldn’t have been worse; my computer messed up shortly after Gary finished the code that would have allowed me to actually do something productive. So there has been a delay of several months, during which time Demo 5 has apparently been finished. The tech system is then planned for Demo 6.
For a while, I was planning to do a big summary of the tech system. Since we are prepared to begin development for Demo 6, this is probably a good time to do it. So I will write a tech summary with the following goals:
1. Describe the tech system so that newcomers can understand it without having to reference any previous posts.
2. Eliminate archaic holdovers such as bizarre variable names.
3. Re-familiarize myself with the technical details of the model
4. Provide a clean starting point for discussion of how the model will fit into Demo 6.
Note that this is not documentation for the code, nor is it a guide to writing more code. It is intended to be a high level overview of the model, nothing more. Due to various computer problems, I haven’t even seen the code or the tech tree data editor. So I may have to retract some of these statements if it turns out that I was mistaken about how something was coded.
The Basics (veterans can skip this)
Clash will not be using the prerequisite-based technology “trees” that most strategy games use. Given the scale and complexity of Clash, this would probably be a nightmare to create and debug. Instead, we will be using a system of gradually increasing skills that is similar to the character development system in RPG’s.
There will be several Tiers of technologies or skills, each representing a different level of effect on the civilization. They all have the same basic equations, but the player interacts with them differently.
Tier 1 techs, or “Theory” techs, measure the level of general scientific theories like Chemistry or Psychology. These broad categories of knowledge affect many aspects of the civilization, and can serve as a useful benchmark of overall scientific progress. There are about twelve of these.
Tier 2 techs, or “Field” techs, like Explosives or Mass Communications, measure the level of a more specific field of study. These have a greater impact on a smaller number of civilization activities than the Theory techs. There will be several dozen of these.
Tier 3 techs, or “Skill” techs like Artillery or Propaganda Techniques, measure the civilization’s skill in a narrow technical area that has direct effects on the daily activities of the government and society. The number of these could rise into the hundreds, but since they are mostly controlled by economic factors and other technologies, the player will not have to micromanage them.
In addition to affecting the society, military, and economy of the civilization, the technologies will affect each other. For example, the civilization’s skill level in the Chemistry tech will affect the rate at which the Explosives technology skill level increases. This will in turn determine the development of the Artillery technology, which will have direct effects on the battlefield.
Just like an RPG character, the civilization’s skills will increase as it gains experience. The development team recognizes that throughout history, many technical advances have come ordinary people in the course of their daily lives and activities. To reflect this, technology rise is a result of the labor input of various activities within the civilization. The more people that are working on some activity, the more potential there is for new ideas and mundane improvements that result in more efficiency for that activity.
For example, assume that an ancient civilization has started a big public works program, building sewers and aqueducts for several cities. This will result in the hiring and training of many engineers, project foremen, and skilled laborers who are working these systems. Many of these people will have ideas for doing the job better, and as they do their job they will learn more about the job. But they are learning more than just the basic skills for that particular project. They are learning more general scientific facts, as well as skills that are good for other things. In the future, they will be able to take some skills to other areas like the construction of roads or buildings. A few people will develop general scientific theories based on their work experience.
So in game terms, investing labor in the construction of aqueducts and sewers would result in a lot of improvement in the Skill tech of Water Systems, some improvement in the Field techs of Architecture and Civil Engineering, and a little improvement in the Theory techs of Mathematics, Physics, and Chemistry. This experience will allow the civilization to become a lot better at making aqueducts, somewhat better at working on other buildings and big public projects, and a little better at understanding the basic concepts of science.
This system of advancing knowledge means that civilizations will develop in a more natural and realistic way. The people will not wake up one morning to learn that the government scientists have developed “Construction” and that they can now make something that they had never heard of before. Of course, the government can still invest in research and education, but that is not the only source of innovation in the Clash world.
This technology system also allows technological skill to fall if it is not maintained. A certain amount of effort must go into recording and maintaining data and teaching the next generation the skills that were learned. If this is not done, then skills are lost and civilization becomes less effective at doing certain things.
RP Generation and Allocation
In Clash, the experience that a civilization gains by investing in various activities is measured by Research Points, or RP’s. This number is at the core of the technology equations.
The technology system starts by fetching data from the economy model. In addition to this, the player has the option of directing scientific research toward certain areas.
Note that the technology rise is based on labor input, not product output. If output were used, then the level could easily spiral out of control as higher levels led to higher output which instantly led to higher levels, ad infinitum. It is also more logical to base the RP’s on input, since that represents the amount of thought people put into something.
I think that the Demo 6 tech system should ignore the effects of technology diffusion based on trade and conquest. In any case, this tech diffusion affects the levels directly, using a mechanism that is different from the RP spending.
After the labor data is gathered, that data is turned into RP’s. This is done with the civilizationActivity objects. There is a 1:1 correlation between these and the infraclass objects, so each object is responsible for turning the labor input of an infraclass into a RP number that will be used in the technology equations. For now, we can probably get away with something as simple as 1 unit of labor input equals 1 RP. The concept is arbitrary anyway and the technology equations are flexible enough to handle big differences in RP production.
Example: The economy model shows that 2430 units of labor were spent on the Health Care infraclass. In addition to this, the government funded research that generated 854 RP’s for health care. This means that the civilizationActivity object must distribute these 3284 RP’s among all technologies that would benefit from an increase in health care spending. Formerly this was done with something called “Z values” but Gary and Mark advised that we move to a simple percentage system, which would work much better. So the tech system designer inputs the percentage of RP’s that go to certain technologies. A partial list for the Health Care activity might look like this:
Theory
10% Biology
5% Chemistry
Field
40% Medicine
Skill
10% Surgery
20% Pharmaceuticals
15% Nutrition
So the Biology tech gets 328 RP’s, Medicine gets 1313, Nutrition gets 493, ect. These values are passed directly to the technology equations, in keeping with the black box design philosophy and good coding practice (I think.)
I think that the technology data editor allows the user to create civilization activities and set their percentage allocation of RP’s. Gary, correct me if I’m wrong.
Hmm, it just occurred to me that decimal RP values would probably work better, especially with little-used sectors of the economy. These work fine with the spreadsheet, but is there anything in the code that would be affected by allowing RP’s to be decimals?
Technology Change Equations
Note: These equations and their related values are a mathematical ‘kernel’ that the players do not have to see. It would be a simple matter for the interface to interpret these values so that “Gunpowder level 50” is presented to the player as a “Gunpowder level 40” or possibly “Gunpowder AD 1720.”
There are several concepts used by these equations:
Knowledge is a linear scale that defines the civilization’s understanding of a technology. It is ideally a direct measurement of quality, performance, productivity, or what can be accomplished with the technology. If the knowledge of Ranged Weapons has doubled, then the civilization will be able to produce military units that are twice as powerful. If the knowledge of Architecture has doubled, then the civilization will be able to produce buildings that are twice as good. If the knowledge of Chemistry has doubled, then the civilization is twice as good at using chemicals to improve the lives of the people. Note that this does not necessarily mean that a library holding all of the facts the civilization knows would be twice as big. It is the application of the knowledge, not its volume, that counts.
The starting level of a technology, the point of minimal usefulness, is defined to have Knowledge equal to 1. In 1903, our knowledge of Heavier than Air Flight was 1. It is possible for knowledge to fall to fractions below 1 without the system failing. This rare case would represent a civilization discovering the fundamentals of something, but then losing the ability to do anything useful with it. They would probably be able to bring the knowledge back to 1 with minimal effort.
The technology model defines several values used to transform RP into knowledge. In the code, all of these are the result of a Basexxx global value times a xxxMultiplier value set for each tech. This allows us to customize the technologies but also to change default values easily while keeping the relative values of the techs the same.
RPDiminishingReturns: This value can be used to handicap larger civilizations. It is normally set to 1, and since the number of RP’s generated is raised to this power, a small change can have very large effects.
GrowthRate: This value multiplies the number of RP’s produced. It is the primary way to change the growth rate of the technology
Upkeep: Logically, the amount of effort required to maintain knowledge is directly proportional to the amount of knowledge the civilization has. This value multiplies knowledge, forming a term that is then subtracted from the total RP generation.
TotalHelperEffect is a working variable, defined later, that summarizes the impacts of the helper technologies.
So the change in knowledge is as follows:
Knowledge = previous Knowledge + (TotalHelperEffect * GrowthRate * (RP^ RPDiminishingReturns)) - (Upkeep * Knowledge)
These values are defined in the data editor and used by the tech system creator to determine the activity of the technology.
Technology Level is a working variable that makes the knowledge number easier to work with. It is simply a logarithmic scale of knowledge where the tech level changes as follows: When Knowledge is multiplied by the MultiplierVariable (default 2), the tech level increases by the GrowthVariable (default 10). So in the normal game, a doubling of knowledge will result in the tech level rising by 10.
In order to make tech comparisons easier for the person designing and debugging the system (me), The Technology Level for the default game us designed so that a Tech level of 100 in all technologies represents the most advanced publicly known application as of January 1, 2000. This means that if I look in a reference book and I see that manufacturing productivity in 1750 was 1/50th of what it is today, I can quickly calculate the proper Manufacturing tech level. 100+10((ln1/50)/(ln2)) = 44 Using this benchmark, the ‘proper’ growth rate of knowledge can be calculated and tested.
This method is also used to calculate the starting tech level, where Knowledge equals 1. The starting tech level will be different for each technology, because of the vastly different rate at which technology has grown. Our current knowledge of one tech might be thousands of times the point of minimal usefulness, while our knowledge of another tech might only be a few times the starting point.
So Knowledge is equal to MultiplierVariable ^ (( Tech level – Starting Tech level ) / GrowthVariable)
Helper Technologies and Technology Requirements
Obviously, not all technologies have existed since the beginning of time. Many technologies cannot appear until a certain level of basic technology exists to support it. The Wright Brothers could not have made their plane if there had been no light engines to power it. They also required a certain amount of physics knowledge to make their calculations. So the required technologies for Heavier Than Air Flight would be a certain level of Physics (Theory) and Engines (Field).
In addition to being requirements, a high level of these technologies will speed up the rate at which new and better planes can be developed. Better engines and more physics knowledge can make airplane research a lot easier. These helper effects are one of the primary motivations for a player to invest research into the Theory technologies.
The calculation of the effects of helper technologies is one of the main reasons for using the tech level instead of simply basing all calculations on Knowledge. The following are used in the calculation of TotalHelperEffect:
Each Helper Technology object associated with a tech contains certain values:
HelperTechEffect: This is the primary value that determines the amount that the level of the helper tech affects the growth of the technology it helps. It will normally be between 0.1 and 0.5
HelperLevelOffset is a number added or subtracted to the level of the helper tech in order to make fine corrections to the growth rate.
TechRequirement: This is the level of the helper tech required for the other technology to exist. The amount that the helper tech affects the technology is based on the difference between this and the current value of the helper tech.
So each helper tech adds its effect as follows:
HelperTechEffect * ( Current level – TechRequirement + HelperLevelOffset )
This equation is run for every helper tech, and the results are added together to form a working variable called RelativeHelperLevel. This value is then run through the following equation to determine the TotalHelperEffect value used in the RP to knowledge equation:
TotalHelperEffect = MultiplierVariable^( RelativeHelperLevel / (Growth Variable * GlobalHelperEffect))
GlobalHelperEffect is a value that determines the strength of the connections between the technologies. The value is typically set to something near 1.5. It is lowered to increase the effect of helper tech and raised to decrease it.
Alert readers will notice that this equation can have a large effect on the growth of a technology. If all the required technologies are 50 levels higher than the requirements, then the RelativeHelperLevel can also get as high as 50. This means that the TotalHelperEffect could multiply the RP generation by 30 or more. In real life, this makes sense. Knowing 32 times as much about Biology will probably make farming research proceed at about 30 times the rate, since all of the theory and background facts will aid a researcher or a farmer immensely. But this could cause problems with game mechanics of not handled properly.
The main balancing mechanism is the Upkeep value that reduces RP generation based on the knowledge level of the technology. If Biology is 50 levels higher, the upkeep for that tech will be 32 times as much as it once was. That upkeep will reduce the available RP’s for the civ, somewhat balancing the helper effects. But it will not balance completely. Since Biology provides no benefit for the civ other than those helper effects, a high level in Biology will actually hurt the player if its upkeep is higher than its helper effect.
But the tech being helped also has upkeep requirements. And since the Tier 3 Skill techs do not usually help other techs a lot, their upkeep will be higher than any helper effect they might have on other techs. This helps keep the total system in balance.
So if helper techs start reinforcing each other too much, we can increase the Global Upkeep value and the Upkeep multiplier value for certain techs.
Another more direct check on the system is GlobalHelperEffect. It serves to directly limit the effects of the helper techs. Note, however, that if it drops below 1, it will generate synergy that will almost certainly send the tech levels spiraling to infinity.
Another way to avoid problems is by good design practice. If the total of all HelperTechEffect values for a technology is less than one, the TotalHelperEffect value will be small enough not to cause problems.
The full thing was too long for one post, so it will be continued as a reply...
Comment