|
Author
|
|
Topic: Final (5.3) Tech Dynamics |  |
|
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 13, 2001 03:47
 |
 |
 |  |
quote:

I don't understand. The doubling is not subjective at all. It is central to the operation of the whole system. The effect on applications and as helper techs depends on the scaling rule where 10 levels is double the ability.
 |
"Not subjective" implies an objective standard. Something that can be measured outside a single individual's perception. The fact that it is central does not make it not subjective. Do you have some objective (not subjective) standard that others can apply to check your judgement?Please understand that I am not being critical of your model. I am just trying to get standards that I can include in the coding. I have many years of experience with models, and dealing with the situation where "Fred has left, he was the only one who understood what was going on. Does anyone know what he meant by a 'number three reference factor' - he always said it was obvious..." A real model has specifications that do not depend on the knowledge of an individual. Can you please define (objectively) the standards for your judgement of "doubling". I also feel that your system definitively prevents any future technologies ever being included in the game. On a logarithmic scale they are now at minus infinity. Cheers
[This message has been edited by Gary Thomas (edited April 13, 2001).] |
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 13, 2001 07:49
 |
 |
 |  |
The thing being measured is the practical use of the technology. If we can make 50 widgets a minute in 1975 and 100 of the same widgets a minute in 2000, then the tech effectiveness has doubled. The Production Process tech has risen by 10 levels.Or, if the best archer element in 2000 BC has a power of 5 and the best archer element in 1000 BC has a power of 10, then the tech effectiveness had doubled, assuming the units cost the same amount of production. The Ranged Unit tech has risen by 10. Or, if the best water system that we can build in 1000 BC delivers 1000 gallons a minute and the best water system that we can build in 500 BC delivers 2000 gallins a minute, then the Water Systems tech effectiveness has doubled and the tech level has risen by 10. |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 13, 2001 13:20
  |
 |
 |  |
This is going to be a (probably stumbling) first shot at how the hookups will work between the technology and economics models. The specific aspect I want to start discussion on here is how to figure out the ideal tech level (T) that the Econ model needs to figure out the productivity in an economic sector like farming or manufacturing (production). I apologize in advance to those of you who aren't really familiar with the economic system. This post may have too much jargon for you to make much sense of it without going back and reading the Econ model.I'm going to focus exclusively on the agriculture sector at first, just to keep things simple. I don't want to review the whole production function concept here, so I will just sketch out how the tech level is used. Basically, the tech level T determines the per capita production of food in the agriculture sector. One unit of labor, on one unit of land, with appropriate investment, will produce the tech level T of output. I will just use T from now on, so as not to confuse it with other tech levels in this thread. My main purpose in this post is to generate T using an effectiveness number from the tech model. First I need to give a few more details about T, and its scale within the Econ model. So, T has the job of determining how much people know about crop rotation, crop plants, agricultural machines, etc. Actually, T doesn't directly determine the production, there is an effective value of T called A, since knowing about things like agricultural machines doesn't mean you have actually bought the tractor... A includes the effects of actually needing to buy some hardware to derive benefit from the technological knowledge. For the purposes of this post, the difference between A and T is irrelevant, and I will just use T. Primitive agriculture has a value of T ~ 4, which is basically subsistence level. A standard population unit on one "site" of farm land will then produce 4 units of food, which is what is needed for basic survival. At subsistence level everyone just produces food, and pretty much nothing else, just to survive. However, by the time you get to a civilization you should have something like T = 5. That gives enough of a food surplus to be able to afford a few specialist types to produce something other than food. At the other end of this scale I want to figure out a crude value of T that would represent modern agriculture. For the modern case I will just use some numbers off the top of my head. I assume that in a modern economy farmers are about 2% of the population, and that they satisfy the modern food needs of the entire population which I take to be something like 5x subsistence. So using these crude numbers modern farmer productivity is approximately 250 x subsistence (5 *50, 50 comes from inverting 2%). So the T scale should go from about 5 for early civilizations, to about 1250 (250x 5) for modern agriculture. Time now to figure out a technology-based effectiveness scale that maps to the numbers the model needs. It seems pretty clear we just want to use some sort of weighted sum of the effectiveness of all the technologies and applications that go into agricultural productivity. (Although this certainly could be a more complicated function, possibly including logic, if a weighted sum doesn't produce the right answers) The applications will already produce effectiveness numbers that we can use directly. For the technologies (civs skills like crop plants) we can rely on the general formula that each 10 levels doubles the effectiveness. For technologies that start at zero at the beginning of the game I'll make the assumption that the starting effectiveness should be one. However, for the case where a technology only becomes available partway through the game, I think we need to associate a "starting effectiveness" with it, otherwise each model that uses technologies will have to make their own determinations. What exactly did you have in mind for this circumstance Richard? I will now use some examples from a previous discussion on this topic to flesh out things a bit and get the discussion of how we should do this to a conclusion soon. I'm going to use a post of Richard's where he had a proposal for what should go into agriculture effectiveness. You can find the original post and a full discussion here near the bottom of the page. quote:
 I think that we can compromise on the 4/3 split Mark wrote about. IMO, some of the things you listed should be Level 3 and some should be Level 4. The original definitions were that Level 3 techs represented knowledge or skill, while Level 4 applications represented a physical thing. A Level 3 thing has instant, global effects, while a Level 4 thing is constructed as per the economic model. A Level 3 thing is something you do, while a Level 4 thing is something you make. I like these definitions. I think that they should be the rule of thumb. Also, remember that there is no way to give arbitrary bonuses to Level 4 applications. To keep things manageable, these should only depend on technology level. Based on these definitions, I suggest the following split: Level 3 Crop Plants (Agriculture 3, Breeding/Genetics 5) Level 3 Crop Rotation (Agriculture 5, Ecology 3) These are basically constant over the civ, so they should be Level 3. Exploration would generate free RP's for the Crop Plants tech, which is something you couldn't do if it were an application. Level 4 Drainage Level 4 Farm Tools [Plows and Early Agricultural Machines] (Agriculture 2, Mechanical Engineering -3% 2, Draft Animals 5, Metallurgy 3% 3) L = 4 Level 4 Farm Machinery (Agriculture 35% 3, Engines 40% 4, Mechanical Engineering 45% 3, Metallurgy 40% 2) L = 13 Level 4 Fertilizers and Pesticides Level 4 Irrigation (Agriculture 3, Civil Engineering 2, Management 2, Mechanical Engineering 2) L = 2 These could vary by province; they are things that must be built and maintained. Of course, the player wouldn't direct the building of farm tools themselves, but I think that the level of province infrastructure and its production capacity should have a local effect on these things. A farm's overall effectiveness would depend on all of these techs, but in the case of the Level 4 equipment, the farm's effectiveness can be penalized if the province has bad infrastructure.
 |
Some of these specs may be slightly out of date, like the level 4 techs don't have any value of G, which is the short term growth parameter in the E equation immediately below. But let's put the details aside for a moment. For reference: E= RTL*G + (1+.1*(MV-1)*L) ^ (RTL/GV) when RTL for the application is positive or zero. Just to keep things simple let's pretend for a bit that an overall Agriculture tech is the only relevant item for determining T for agriculture. Assuming that Agriculture has an effectiveness of 1 at level 0, and that the level for modern agriculture is approximately 100, we can use the scaling law of a factor of 2 for every 10 levels to determine the modern effectiveness. It would be 2 ^ 10 = 1024. So, some formula like T = 3+ Agriculture effectiveness Would give approximately the right answer. Specifically, for classical antiquity where the Agriculture level might be 10, T = 3+ 2 = 5 as specified, and for the year 2000, where the Agriculture level might be 100,T = 3+ 1024 = 1027, which is in the vicinity of the 1250 we were looking for. So first, does this trivial example meet with everyone's approval as a generally sensible way to go about this given the abstracted example? Now we get to the details for what I think could be the real approach. First of all, I will recap Richard's list, stripping out some things we don't need, and adding a few other details. I will drop Drainage from the list, because that gives more sites for agriculture within the model, and the increased sites then contributes to increase productivity. The E = is the starting effectiveness. I just made some guesses for the parameters, and also changed the Irrigation longevity number to be more to my liking. Level 3 Crop Plants E = 1 Level 3 Crop Rotation E = 1 Level 4 Farm Tools E = 1, L = 4 Level 4 Farm Machinery E = 10, L = 13 Level 4 Fertilizers and Pesticides E = 1, L = 10 Level 4 Irrigation E = 1, L = 5 One initial problem is that I have both the level 3 technologies having basically the same scale as I used for Agriculture above. I'm not sure you can make a case for much better than a 30-fold increase in either of these. I sense what Richard will want to do is start both of these at 50 in the Stone Age so that when they reach 100 in modern times the effectiveness will only have increased by a factor of 32. I could work with that scale also, but I think it's really silly since the only place crop plant effectiveness is used is in the agriculture sector and its effectiveness will be multiplied by an arbitrary scale factor. So I will leave it as-is in the example, and let Richard comment. It could certainly be done his way with similar although not identical results. What I will do instead is used the 1-1000 scale and then multiply by a small value to get a scale that maxes out in the vicinity of 30. From here on, I have edited this post from what I put up around noon today. Most of it is slight modifications and also added content. I also changed the discussion of above in some minor ways to make it clear. So here is my first shot at a formula for agricultural effectiveness. In the formula below when I say Crop Plants I mean the effectiveness for that technology or application. Agricultural effectiveness = 3 + 0.04* Crop Plants + 0.03 * Crop Rotation + 0.25 * Farm Tools + 0.70 * Farm Machinery + 0.10 Fertilizers and Pesticides + Irrigation * (Irrigation appropriateness of square/ land) I have not yet balanced out this formula to make sure all the numbers come out right. So I'm sure they won't give exactly the answers I'm looking for. But I think the basic idea is clear. But before we worry too much about small details, I'd like to discuss the overall result. The way I have a right now I think that the effect of crop plants and crop rotation is too weak before the modern era. It would probably work better if I had an effectiveness that went from about 1 to about 30, and dropped the pre-factors. Then I would just reduce the number 3 at the start of the equation to make up for the larger numbers and a low-tech end. So score one for Richard! The farm tools effect will be strong, but not grow that fast because of the longevity factor of 5. I think this is a fairly reasonable result. When farm machinery finally comes along, it will have an enormous importance. And its importance will grow rapidly as technology does because of the longevity factor of 13. There is one problem I have with this high longevity factor. It will work fine for a historical game, but as we go past the modern era, that longevity factor will cause farm machinery to eclipse all other aspects of farming, which doesn't seem right. Finally, the irrigation term will have a large effect, especially in early days, but only for certain squares. Squares with good access to water for irrigation, and also where there is not enough rainfall, will derive large benefits when investments in farms are made. What does everyone think about this first pass at it?
[This message has been edited by Mark_Everson (edited April 13, 2001).] |
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 13, 2001 15:17
  |
 |
 |  |
The problem is that agriculture is one of those technologies that doesn't fit within the model rich described (ie every 10 equals double in technology). Lets assume that we start it at Lvl 0.1. which can produce enough food to feed 1 person per year.At level 10, it would be it would be enough to feed 2 people, 20 could feed 4...at level 100 its enough to feed 1024 people which is alot, but with genetic engineering and a lot of other new techniques this is no where near what 1 acre can now feed per year. |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 13, 2001 19:21
  |
 |
 |  |
OK, here is a revision of parts of my post above after some thought. Where this post and the one above disagree, take this one's answer.LGJ: I don't think your criticisms apply, because I am not using the Raw effectiveness. Because of the way I am combining things, I don't think there are any serious problems. I will now follow what Richard would want to do, and start both "level 3" techs at 50 in the Stone Age so that when they reach 100 in modern times the effectiveness will only have increased by a factor of 32. Essentially this just means that the initial effectiveness of 1 increases by a factor of 2 every 20 levels. I have also changed the farm tools number for longevity to make it a little more important. Level 3 Crop Plants E = 1 Level 3 Crop Rotation E = 1 Level 4 Farm Tools E = 1, L = 6 Level 4 Farm Machinery E = 10, L = 13 Level 4 Fertilizers and Pesticides E = 1, L = 10 Level 4 Irrigation E = 1, L = 5 I'll now give raw numbers for effectiveness as of these technologies for 4 historical periods. These are Stone Age (s) classical antiquity (A) and the two dates shown. Some of these numbers are just approximate, since some things are difficult to specify at this point. code:
S A 1870 2000 Technology/application 1 1.4 5.6 32 Crop Plants 1 1.4 5.6 32 Crop Rotation 1 1.6 10.5 110 Farm Tools 0 0 25 1000 Farm Machinery 1 2 32 1000 Fertilizers and Pesticides 1 1.4 5.6 32 Irrigation
So here is my new formula for agricultural effectiveness. Agricultural effectiveness = 0.7 + Crop Plants + Crop Rotation + Farm Tools + 0.8 * Farm Machinery + 0.3 * Fertilizers and Pesticides + Irrigation * (Irrigation appropriateness of square/ land) code:
Agricultural effectiveness by date under two scenarios (no irrigation/irrigation available)S A 1870 2000 (no irrigation available) 4 5.7 51.3 1474 S A 1870 2000 (irrigation available) 5 7.1 56.9 1506
I'm still not completely happy with this version, but I think it's a lot better than the previous one. The things I still don't like our that for classical antiquity I think the effectiveness may be a little bit too high, and for modern farming the effect of irrigation in a desert area will probably be too small. I need to think about the irrigation a little bit. It may be that irrigation should not only increase the tech level, but also increase the effective number of sites. That would solve my biggest problem here. The other part could be fixed by just tweaking the numbers, but I want to hear what others have to say before I bother fine-tuning this
[This message has been edited by Mark_Everson (edited April 13, 2001).] |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 13, 2001 22:03
  |
 |
 |  |
Radical idea brought on by the messing around with level 3 skills in the examples above:Give every Tech a Longevity number. That way every tech can use a uniform scale for levels with 0 at 5000BC, 100 at y2k. The longevity does all the work when creating an effectiveness from the level for any tech. I guess you'd actually need a starting effectiveness number too for those techs that don't start at the beginning of the game. |
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 13, 2001 23:04
 |
 |
 |  |
Mark, my post that you quoted is so old it dates from before the concept of Civilization Activities. I thought that the new plan was to have these Activity objects translate the tech level into the other game effects. These Activity objects have the responsibility of fetching tech data and averaging it into constants to be output top the other models.Since the beginning, there had been a concept called 'knowledge' fit into the tech model. This is the linear scale of skill that doubles with a tech increase of 10. To summarize: k = MV((T - Ts)/GV) When the tech is first created, k = 1. Ten levels later, it is 2, then ten levels later it is 4, then 8, and so on. Each tech associated with a Civilization Activity will thus have a k value associated with it that determines the raw performance of the tech. They also have an ActivityEffect value that determines how important the tech is to that activity. The CivilizationActivity can then use a weighted sum to determine the T value. For each associated technology, k is multiplied by the ActivityEffect value. The sum of all of those values is T. For applications, the k value is replaced by the Application Effectiveness Factor, which can still have the same growth pattern, starting at 1. So at the start of the game, there will be several technologies with a k value of around 1. These would combined so as to provide the T value of 5. Later, the k values could get up to around 256, assuming that these techs started around level 20. The k values of these original techs, added to the smaller k values of new technologies, will add up to about 1250 if we choose the proper ActivityEffect values. Note that what I have derived here is very similar to what Mark came to. In fact, we can probably use those same numbers. The only real difference is that the weighted sum calculations are integrated with the ActivityEffect object. quote:
 Radical idea brought on by the messing around with level 3 skills in the examples above: Give every Tech a Longevity number. That way every tech can use a uniform scale for levels with 0 at 5000BC, 100 at y2k. The longevity does all the work when creating an effectiveness from the level for any tech. I guess you'd actually need a starting effectiveness number too for those techs that don't start at the beginning of the game.
 |
What you are talking about is already part of the Application programming. So if we need the functionality you describe, it seems like we can use applications instead of techs. Gary seems to be finished, and I'd hate to change the requirements now. Let's see what we can do with the current system before we change things. I think that all we have to do now is make the CivilizationActivity code, enter good guesses, playtest, and tweak. [This message has been edited by Richard Bruns (edited April 13, 2001).] |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 14, 2001 10:13
  |
 |
 |  |
quote:
 Originally posted by Richard Bruns on 04-13-2001 11:04 PM I thought that the new plan was to have these Activity objects translate the tech level into the other game effects. These Activity objects have the responsibility of fetching tech data and averaging it into constants to be output top the other models.
 |
Can you show me where this new plan is stated? All I can find in this thread is that what we used to call tags have been changed in name to Activities but still only have the traditional function of channeling RPs into different techs. Your idea is intriguing, but has several obvious issues. 1. The previous plan for tags had assumed for tractability a maximum number of something like 20. If you want to use Activities as you stated above, then there will be many more than 20 for the economy model alone. Many production types beyond the 4 major ones need to be supported. Not to mention all the different types of infrastructure, each of which needs its own effectiveness. Are you comfortable with that? What this will mean is we will need to reinstate something like the old 20-tags system for use by the AI and player. Here's an example why... There used to be a tag called Food. When there was a food shortage all the ruler would have to do was put resources into the Food tag. We will now have Activities like Agriculture, Fishing, and Herding that will get their effectiveness from vastly different technologies. The new Food tag would have the job the old one did -- allocating resources when the ruler of a modern economy says "invest this money to give me more food production, I don't care how" 2. Because of the different rates at which effectiveness increases for different technologies and applications, it may not be possible to use the same coefficients for RP allocation and also effectiveness determination. I'll use my Agriculture effectiveness formula as an example: Agricultural effectiveness = 0.7 + Crop Plants + Crop Rotation + Farm Tools + 0.8 * Farm Machinery + 0.3 * Fertilizers and Pesticides + Irrigation * (Irrigation appropriateness of square/ land) The effectiveness formula needs a coefficient of 1 or less in front of Farm Machinery or the modern effectiveness would become too large. But, when Farm Machinery "turns on" it pays off much more in effectiveness than the others because of the longevity number of 13. So from the perspective of allocating research points you want FM to have a coefficient higher than the other technologies (in this case 1) to do the right allocations. (And then the RPs would of course be passed on to the techs that go into FM.) It makes no sense in this context to use the effectiveness numbers to generate ActivityEffect values since then in modern times Crop Plants would come out as more important that Farm Machinery using the equation above. That is the Wrong answer! [All this assumes equal RPs produce equal level changes too. This assumption will clearly be false in many cases. That is another asymmetry between RP allocation, which should care about how expensive it is for RPs to produce a level change, and things like Agricultural effectiveness that don't include that effect in any way.] quote:
 Mark: Give every Tech a Longevity number. Richard: What you are talking about is already part of the Application programming.
 |
You are the one who previously said I shouldn't make up lots of applications for things that you consider to be civilization "skills" in the post that I referenced above in the Tech 5.1 thread. You previously maintained that there was a substantial difference between the old level 3 techs and applications, and that we should use the level 3 ones for things that are artifacts that are made. I'm glad to see you relaxing this distinction because I always thought it made life tough on people who had to figure out effectiveness. But remember that there is a lot of overhead involved in having many level 3 technologies being shadowed by Applications. One more try on scaling of tech levels... I think my proposed change to add longevities would require an additional something like 20 lines of code... Unfortunately everyone involved in this exercise seems to think a different way of handling tech levels is intuitive I think my "historical" approach (defined below) will be intuitive for most scenario designers who aren't math jocks. I find your system to be extremely cumbersome to deal with even for me who is mathematically literate. And now Gary has (I think ) a third proposal, where techs should always start at level 0. I think this third one is more straightforward than yours, but still causes problems when one needs to answer that question "what level should technology X be at in 1900?" So I'm going to go ahead and restate my opinion one more time before your idea gets locked into your data entry method. (In other words, once you put in the numbers, and tweak things, basically the decision is made Forever because of lock-in effects. Effectively it would be too much of a pain to go back and do it again a different way. This is why we now have the inefficient Qwerty keyboard on our computers. At one time typewriter manufacturers needed to slow down entry because keys got stuck. Now most of the world uses that keyboard on computers with vastly different technology from typerwriters because of lock-in effects. This is even though the original reason for the choice is long gone, and other keyboard layouts would be much better for present uses.) Based on previous conversations I'm sure I won't change your mind, but I think I have to say once more for the record that I am sure you are going to confuse a helluva lot of people designing scenarios over the years because of your approach. I still believe that a "uniform" scale (uniform historically, not by effectiveness) for technology levels would be vastly easier for scenario designers to use, and players to understand. I realize that you Can go foreword as things are now. My fear is that we will pay for the odd technology levels scale that is intuitive Only to you for the rest of the history of the game. I'm not saying that many people Can't work with your scheme, obviously anyone with a little mathematical sophistication can work backwards from your assumptions to find out what the tech level for a given age should be. But working with the effectiveness formula has made me even more certain that it makes much more sense to have a level scheme where all technologies are the same level +/- 10 or so for a given stage in history. For instance what I had to do with Crop Plants was to think "for 1870s technology, what the heck will the level be for something that starts at 50 at 5000 B.C. and is 100 for year 2000?, oh, probably 75 is right." In the way I would like it to be I could just say 1870s technology ~50 for everything, and just plug straight into the effectiveness formula that every Tech would have in my approach. Putting all this aside for the moment, are there any further comments on my basic formula for effectiveness? Does it seem reasonable? Does the tech system and the effectiveness numbers as outlined so far, allow us to do what we need to do?
Also, if we can't use Activites for getting effectivenesses in the way Richard suggests, then we'll need an object to handle Effectiveness for cases beyond simple Applications. Sound right Richard and Gary?
[This message has been edited by Mark_Everson (edited April 14, 2001).] |
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 14, 2001 22:50
  |
 |
 |  |
My one concern and it could be a big concern down the road, is to things, first the easier of the 2.1> What will be decided for the levels for things we have yet to put to any practical use but may soon such as cybernetics? 2> Since the beginning of the Idustrial Age and moreso since the dawn of the Information Age, Technology growth has been speeding up at a very rapid pace. Within the 60 or so years that computers have been around for practical use they have grown at an extrondiary technological rate which is unparrelled in our history. In fact it has come so far spped wise that if a computer is out on market, it is considered obsolete. The problem with this is that although it may easily fit within the year 2000 deal rich has proposed, by the year 2100 it could well be over 200, and shortly after 300. After a while these numbers become more and more meaningless.... "So I'm 450 and my main rival is 520? I can catch him in a few turns." |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 15, 2001 13:54
  |
 |
 |  |
Hi LGJ:On 1,do you mean level, or effectiveness? I don't really think your 2 is an issue... If things ever get to the point where you can rip through a large number of levels on average in a turn, it will also be true that because of the awesome technological level things in the world will move very fast. A difference of 70 levels like you are talking about still means an awesomely large difference in effectiveness. That difference is probably equivalent to the difference between contemporary and Renaissance technology. If the one with "only a few turns lead" doesn't like you, I suspect you will be history before you can close the gap. Anyway, if this turns out to be a problem, we can put a design patch on it, but I don't think it will be. |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 15, 2001 14:57
 |
 |
 |  |
I am having quite a bit of trouble finding out how the technology model works. Because there is no concise statement for the operation of the technology model, I have had to guess in some areas. I really do not have the time to be constantly combing back over hundreds of posts trying to extract what is current. ALL of the summaries are either so old as to be useless, or woefully incomplete. It really is time that the summary on the main web page should be brought up to date. In the notes below I have repeated the interface, because it has changed, however slightly (isActive and setActive have been added to technologies for a particular owner). This is one small step toward avoiding the necessity of constant back references to earlier posts.The coding for the technology model is complete, and the testing nearly so. The way it works is as follows: 1. Access to the technology system is through the interface. This is listed, in full, below. 2. The concept of technology owner is general. Each technology owner has a technology interface, with a complete list of technology levels for that owner. New technology owners can be assigned a new (base level) interface, or a copy of an existing interface. 3. Technology interfaces may be split and merged as described in the interface. 4. If a technology does not have helpers, it is assumed to be active from the beginning. If it has helpers it becomes active when all of the helpers reach the helper start level (see below). 5. Applications, in the present context, are the effect of technology on an application. They determine whether an application is buildable, and can calculate an effectiveness factor. They are buildable when all of the helpers reach the requirement start level (see below). Technologies may be set to active even before they would ordinarily achieve it. 6. Activities, in the present context, are used to assign research points among a variety of technologies. At present there is no provison (in the interface) to return any kind of activity effectiveness. 7. All three of these primitives have a list of technologies. The lists represent: (a) For technologies, the list of helper technologies (b) For applications, the list of required technologies (c) For activities, the list of recipient technologies (those that get the research points). The entities in these lists will be called, generically, helpers, which must be interpreted as meaning helpers, requirements, or recipients depending on context. 8. Each "helper" has the following fields: (a) Start level (not used for activities) (b) Level offset (not used for activities) (c) Effect 7. For technologies and applications, the helper effect is calculated by: helper effect = effect * (level - levelOffset) / helperWeight where helperWeight is the global value W. The 100 scaling for levels should be reflected in the value of helperWeight. 8. For technologies and applications, the start level is the required level before the technology or application becomes active (technologies) or buildable (application). 9. For activities the effect is used to assign research points among technologies. The RAW effect value is used, so the formula is: research points assigned to recipient technology = total research points for the activity * effect The reasoning here is that if the program scaled these effects to add to 1, a constraint is placed on the model. If the modeller wants them to add to 1, then make it so, rather than permanently hard coding it. 10. When a technology owner splits, both parts have the same technology interface. Any neighbour list is discarded. 11. When technology owners merge, the higher level of technology is assigned to each, and any neighbour list is discarded. 12. Diffusion is intended to represent the spread of technological innovation based on observing what one's neighbours do. In earlier times this was a very powerful means of technology spread. The model here is that the new technology level becomes: New level = old level + factor * (neighbour's level - old level) provided the neighbour's level is higher. This effect cannot be achieved by manipulating research points. Since it is not my job to write the specification for the model, I omit the formulae by which research points are transformed into technology levels. You will have to take my word for the fact that they represent the formulae specified in some ancient post or other. From Mark: quote:

Give every Tech a Longevity number. That way every tech can use a uniform scale for levels with 0 at 5000BC, 100 at y2k. The longevity does all the work when creating an effectiveness from the level for any tech. I guess you'd actually need a starting effectiveness number too for those techs that don't start at the beginning of the game.
 |
This is not well explained. I can "give" technologies anything you like, provided they don't do anything. I can't see how a number "does all the work when creating an effectiveness". Anyway, it is too late for D5, unless you are prepared to accept at least a weeks delay before I get on to the government stuff.The current (as at 16/4/01, 6am) interface is code:
package game.model.tech;/** * Title: TechnologyActivity * Description: Technology specific aspects of activities * Copyright 2001, the Clash of Civilizations Development Group * * @author Gary Thomas and Mark Everson * @version 0.1, Date: March 27, 2001 */ /** * The general interface for all connections to the technology model. * * The calls are grouped according to their context. *
* Definition: * owner or Technology owner: * any entity (civilization, province, map square, city, scientific genius * character - the Einstein effect) that has a technology level profile. * The system keeps a list of owners, and they can interact. *
* In addition to this interface there are three static calls: *
* Create a new Technology object for a new technology owner:
* TechnologyInterface Technology.newInstance(String owner) * * Find a Technology object for a technology owner:
* TechnologyInterface Technology.getInstance(String owner) * * Update the technology levels for all owners:
* void Technology.update() */ public interface TechnologyInterface { //---------------------- Affecting the interface itself ------------------- /** * Affecting the interface itself, remove this technology. * * This does not destroy the interface object, it just removes the owner * from the owner's list. To get rid of the object, set it to null. */ public void remove();
//---------------------------- Other Technology --------------------------- /** * Clone this technology (the owner has split into two parts). * * The new interface will be a copy of the old one, with all the same * levels * @param newOwner the owner's name for the new interface */ public TechnologyInterface copy(String newOwner);
/** * Merge this technology (two owners have merged) * * Note that this does not remove the (now) redundant owner. The technology * levels will, for each technology, be the larger of the two. * @param merging the name of the other owner */ public void merge(String merging);
//-------------------------- Technology levels ---------------------------- /** * Determine whether a technology is active * @param name name of the technology * @return active status */ public boolean isActive(String name) { TechnologyLevel level = (TechnologyLevel)get(name); return level.isActive(); } /** * Set a technology's active status * @param name name of the technology * @param value set the active status */ public void setActive(String name, boolean value) { TechnologyLevel level = (TechnologyLevel)get(name); level.setActive(value); } /** * Get the level of a particular technology for this civilization * @param name name of the technology * @return the current technology level for this technology */ public float getLevel(String name); /** * Set the level of a particular technology for this civilization * * @param name name of the technology * @param level the technology level to be set */ public void setLevel(String name, float level);
//----------------------------- Applications ------------------------------ /** * Application, method to determine whether an application is buildable * * @param name name of the application * @return true if the application can be built */ public boolean isBuildable(String name);
/** * Application, get the effect of an application from its name * @param name name of the application * @return the effect of technology on the application */ public float getEffect(String name); //-------------------------- Research effects ---------------------------- /** * Set the research effect related to an activity * * @param activityData the activity data */ public void addToResearch(String name, float value);
//--------------------------- Diffusion ----------------------------------- /** * Set diffusion from neighbour * @param neighbour name of neighbour * @param effect the effect (0.0 - 1.0) of the diffusion */ public void setDiffusionFrom(String neighbour, float effect); /** * Set diffusion from neighbour * @param neighbour TechnologyInterface of neighbour * @param effect the effect (0.0 - 1.0) of the diffusion */ public void setDiffusionFrom(TechnologyInterface neighbour, float level); }
[This message has been edited by Gary Thomas (edited April 15, 2001).] |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 15, 2001 15:45
 |
 |
 |  |
In the lack of an architecture thread, I will post these code architecture notes here. I intend to use the same architecture on the government and social models.The whole structure of the technology model revolves around named things - technologies, applications, activities (and owners, which I added later). Accordingly I created a NamedObject class. In order to generalize the concept, I created a NamedObjectInterface which the NamedObject class implements. All of these named objects exist in various lists. So, I created the NamedObjectList class. This is the guts of the system. A NamedObjectList implements: 1. NamedObjectInterface, so we can have named lists of named lists. 2. Cloneable, for copying. 3. The SortedMap interface, for searching. 4. To large extent, though not completely, the List interface. It was not possible to completely implement the List interface because it conflicts with the SortedMap interface (same method with different return types, for example). Where a conflict arose, the SortedMap interface was preferred. A named object list extends AbstractListModel, and implements the remaining parts of the ListModel interface, so that 1. It has the listener handling facilities provided by the AbstractListModel class. 2. For what it is worth, it is serializable. 3. It is an implementation of ListModel, and hence can be passed directly to JList or its derivatives. The effect of this last is that any changes to the list will be, automatically, reflected in the JList. (For non-coders, a JList is the Swing component that provides a list of selectable choices on the screen.) The tech model itself consists of four instances of NamedObjectList, held as static members in a class called Lists. The actual lists are: 1. the technologies list, a list of TechnologyData objects, each of which holds the reference (non-changing) data for a technology, including the parameters and helper list. 2. the applications list, a list of ApplicationData objects, each of which holds the reference (non-changing) data for the technology end of an application, including the parameters and requirements list. 3. the activities list, a list of ActivityData objects, each of which holds the reference (non-changing) data for the technology end of an application, there are no parameters, but there is a recipient list. 4. the owners lists, a list of TechnologyInterfaces, implemented as Technology objects, each of which contains a list of TechnologyLevels. Clearly, the contents of these four lists are all themselves lists (of helpers, requirements, recipients, or technology levels). Three of these sub-lists (technologies, appliactions and activities) contain named objects of a single class, the HelperTechnology class. The meaning of the parameters of a HelperTechnology objects varies according to the use of the main list. The owners sub-list contains TechnologyLevel objects which specify the current technology level, whether the technology is active, and the current accumulation of research points for a single technology for a single owner. The structure of the NamedObjectList makes accessing and manipulating these lists quite straightforward. It also extends very readily to Religions, EthnicGroups, Cities, Governments, whatever. The above architecture is supported by: 1. A GUI library of various convenient combinations of Swing components. 2. An XML library base on SAX and using the Apache xerces.jar library. It is my intention (as noted in other posts) to extract the needed (small) part of this required for our (and other) purposes, when I get the time. 3. A data editor which enables creation of an XML file containing the technologies, applications, and activities lists. It draws heavily on the JList features of the NamedObjectList class. The package structure is: game.model.tech game.model.tech.test dataeditor dataeditor.test libraries.general libraries.general.test libraries.gui libraries.gui.test libraries.xml libraries.xml.test all based on a root directory of clash/ClashD5 I have to admit the "tech" grates. Years of disasters with abbreviations have taught me to NEVER use them. At best you have to wonder "did I abbreviate this? or didn't I? and I wonder which abbreviation I used? Is it nr? no? num? nmbr?". See "Java Coding Style", a great, if tiny, book and a life-saver. I use JBuilder4 for my coding. Although I have the Enterprise edition, the Foundation edition does very well. The only real lack is the help files. If anyone wants to use JBuilder and feels this is a limitation, please contact me directly. My code, when tested and released (to Mark) will have test classes and JBuilder project files (.jpx files, which are in XML format). Cheers
|
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 15, 2001 17:40
  |
 |
 |  |
Hi Gary:Great job! Sorry you had to do significantly more digging for things than ideal with this job. And we really appreciate the effort. I skimmed everything, and the only thing that looked odd to me was item 7 in the first post. But just because I didn't understand it doesn't mean it's wrong... If you would like to start a generic architecture thread for stuff like NamedObjectList I think it's a great idea. Would "Architecture Tools" be a reasonable name for such a thread? The next time I refactor the economics model I will consider upgrading to use your stuff. quote:
 Originally posted by Mark_Everson on 04-13-2001 10:03 PM Radical idea brought on by the messing around with level 3 skills in the examples above:Give every Tech a Longevity number. That way every tech can use a uniform scale for levels with 0 at 5000BC, 100 at y2k. The longevity does all the work when creating an effectiveness from the level for any tech. I guess you'd actually need a starting effectiveness number too for those techs that don't start at the beginning of the game.
 |
I will try to summarize what I was trying to get at in the quote above... Currently other models have need for information from the technology model that gives the effectiveness of a particular part of the model, for instance agricultural productivity achievable at a given level of technology. In that case what I needed to do was create a function that combines an effectiveness from a variety of relevant applications and technologies. Right now, applications provide a way for a different model to get effectiveness information immediately on something like farm machinery by using getEffect. However, there is no supported way to get the effectiveness of a technology that isn't an application. (To see the case where you might need it, you can look at my first post from April 13) So the end-user has to put together an effectiveness for each technology based on parameters like the current technology level, the starting level, and the scaling laws that relate knowledge to change in technology level. This functionality should be in the technology model. That's the short version of what I was trying to say. But I was also trying to run with that thought further... The current scaling in the model assumes: 1. all tech levels are 100 in the year 2000 2. tech levels for other cases are based on a knowledge/effectiveness scale where losing a factor of 2 in the effectiveness is indicated by a reduction in level by 10 points. (The 2 and 10 in this sentence actually represent scaling parameters whose value we expect might be close to 2 and 10) These assumptions result in a system where one has to be intimately familiar with the technologies to answer a question like what would the level be in the Crop Rotation technology in 1650? This is the type of question I needed to consider when seeing if the formula for Agricultural effectiveness made sense. I believe questions like this will be an endless hassle for using technology information in the economy model, and probably others. The fix that I was suggesting was that we go to a scale where Every technology (if it existed at that time) was close to level 1 in 5000 B.C. or whenever, and close to level 100 in 2000. Under this scenario the question "what approximate level is x technology in 1650?" Is a no-brainer since Every technology will have approximately the same level in 1650, whatever that number may be. The objection raised when I had brought up this possibility before, was that all technologies do not move in lockstep increasing in effectiveness by a factor 1000 over this timespan. However, if we were to put an appropriate Longevity value on all technologies similar to what is done for applications, then we could use a uniform level scale with historical time, and still have the effectiveness change at whatever rate was historically appropriate for the given technology. So those are the two points I was trying to make with that cryptic bit written in "insider language". Hopefully I have to said enough here for you to see generally what I'm talking about. I now regret having not made a bigger deal of this overall issue before, but seeing as you are basically done with a model, I'll just drop it, and deal with the system as it is. Also, as Richard pointed out, one can just have an application "shadow" a given technology, and produce and effectiveness for the technology that way. This eliminates at least part of my problem with current functionality. We can see later if I'm being farsighted, or just a pain in the a** .
|
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 16, 2001 13:09
  |
 |
 |  |
quote:

On 1,do you mean level, or effectiveness?
 |
I'll give an example because I am unsure what you mean exactly.I know what and how to use cybernetics for some reason, but it is still in the development stage and therefore still not shown on the list for technologies. Once I can use it, it is shown. There are really several problems with this if the level starts out at anything other than some standard used by all technologies (whether it be 1 or 56) 1> If it starts at say 10, then if for some reason it dropped to what would be 9, I should no longer be able to use it because its below the minimum when it was needed to start. At the same time, I have people who know how to use it and even if i don't as a human player I will tweak the inputs so that I can atleast regain that 1 point of technology so I can use it again, even at a minimal level because its better than not at all. If I still can use it at level 9 then it defeats the original purpose of waiting till i reach level 10 because the player will try to achieve that level 10 and then slack off if he has more pressing matters because he now knows he's safe from loosing it. 2> I know that you Mark personally don't care too much for this, but for technologies that are possible further down the road it becomes increasingly difficult to assign numbers (based on the level 100=Dec.31,2000) because of what I listed about the increasing rapidicity of technological growth as well as the fact of unpredicatability do to changes in the mindset of a given populous (FE were we to make a game without any forknownledge of the impact of the Crusades on Europe, we would not forsee the sudden increase in the explosion of growth in technology). |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 16, 2001 13:48
  |
 |
 |  |
Hi LGJ:Dropping below the start level (your No. 1) is not a problem doing the progression of historical technology levels my way, since every technology will have a start level (it will be zero for lots of them). But I don't understand why having every technology start at 1 solves your issue. If the level drops below one, then you to get into the same scenario that you have here. If it will make you happy we could just define that once you achieve the technology you can't lose it (go below the start level). That's essentially what you are doing if you start every technology at level one and don't let the level ever fall below 1. But personally I think that's going a bit far. Assigning numerical levels for far-future technologies is the least of our problems IMO. By selecting prerequisite techs for when attributes turn on you are effectively picking a date when it starts anyway! It's just hidden in all these opaque numbers in the current system! Do you really think someone is going to fault you for having the plasma rifle technology start with a level typical of 2050 vs. 2200 vs. 2400? If that is the worst-case example for using a uniform historical scale for levels, it seems not much of a penalty at all to me. |
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 16, 2001 15:13
  |
 |
 |  |
The second point is minor and can probably be overlooked. It is really the first one that bothers me. Your idea can work somewhat although me and Rich i believe had assumed we would have a state at which the player could still maintain things created when it was able to be produced, but at decresing abilities.So say 20 was what you needed to start it, you could maintain the infrastructure back to 15, but it would deterorate in effeciancy slowly. You couldn't produce any more and say at level 17 you couldn't repair anything vital. How does that sound. That is my major concern is that i don't want it all or nothing nor do i want it to be considered safe once it has been achieved. |
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 16, 2001 15:15
  |
 |
 |  |
The second point is minor and can probably be overlooked. It is really the first one that bothers me. Your idea can work somewhat although me and Rich i believe had assumed we would have a state at which the player could still maintain things created when it was able to be produced, but at decresing abilities.So say 20 was what you needed to start it, you could maintain the infrastructure back to 15, but it would deterorate in effeciancy slowly. You couldn't produce any more and say at level 17 you couldn't repair anything vital. How does that sound. That is my major concern is that i don't want it all or nothing nor do i want it to be considered safe once it has been achieved. |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 16, 2001 17:57
 |
 |
 |  |
I do not believe that technology ever decays within the context of a sngle technology owner. Infrastructure may, but technological knowledge does not.What, then, is technology level supposed to represent? Knowledge? Infrastructure? Some undefined combination? Can anyone give an example of decaying technology that doesn't depend on either collapsing infrastructure, or change of ownership? Cheers
|
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 16, 2001 20:08
 |
 |
 |  |
Wow, lots of stuff to come back to after a vacation. I'll try to cover everything, but it might be a bit brief: quote:
 Originally posted by Mark_Everson on 04-14-2001 10:13 AM Can you show me where this new plan is stated?
 | http://www.apolyton.net/forums/Forum21/HTML/000246-2.html#69 quote:
 So the Civilization Activities have the following functionality:
- They determine RP production and feed those RP's to the technologies.
- They provide an easy way for the player and AI to deal with tech. They can simply say "Put effort into improving Infrastructire." This is what I mean by the interface. It is an intuitive way for the player to interact with the tech system. Of course, they can drill deeper if they wish, but this is an option so they don't have to get too involved if they don't want to.
- They help interpret the effects of technology and can alter other models based on technology growth. For example, the Health Civilization Activity would feed data on the overall health of the civ to the Disease model.
 |
quote:
 All I can find in this thread is that what we used to call tags have been changed in name to Activities but still only have the traditional function of channeling RPs into different techs.
 |
This isn't a new plan. Tags have always been designed to do more than the simple channeling of RP's. From the start, they did a lot. quote:
 1. The previous plan for tags had assumed for tractability a maximum number of something like 20.
 |
As far as I know, that hasn't changed. This is the current draft of the list of Activities:Agriculture Disaster Prevention and Ecology Education Cash Flow and Economics Exploration/Movement (includes mobile communication) Government and Politics Happiness and Social Control Health Infrastructure (includes fixed communication systems) Military Production Prospecting and Extraction Pure Science Religion and Philosophy Standard of Living quote:
 If you want to use Activities as you stated above, then there will be many more than 20 for the economy model alone.
 |
But Activity is just a new name. Nothing in the tech model has changed from the old plan. Did you make a lot of new infraclasses? quote:
 Many production types beyond the 4 major ones need to be supported. Not to mention all the different types of infrastructure, each of which needs its own effectiveness. Are you comfortable with that?
 |
That was always the plan. There would be a 1:1 correlation between Infraclasses and tech tags/Activities. quote:
 What this will mean is we will need to reinstate something like the old 20-tags system for use by the AI and player.
 |
Reinstate? I dodn't know it went away  quote:
 There used to be a tag called Food. When there was a food shortage all the ruler would have to do was put resources into the Food tag.
 |
This has always been the case, to my knowledge. Nothing has changed except the name. I used the word "Agriculture" to designate all forms of food production. quote:
 We will now have Activities like Agriculture, Fishing, and Herding
 |
What? When was this decided? Are you making infraclasses for all of those? If not, they will not be Activities. quote:
 The new Food tag would have the job the old one did -- allocating resources when the ruler of a modern economy says "invest this money to give me more food production, I don't care how"
 |
This hasn't changed. I must have caused confusion by using "Agriculture" in place of "Food." quote:
 It makes no sense in this context to use the effectiveness numbers to generate ActivityEffect values since then in modern times Crop Plants would come out as more important that Farm Machinery using the equation above. That is the Wrong answer!
 |
The numbers for RP input certainly do not have to be the same numbers for effect output. We would keep the existing number to determine where RP's go, and then we would move your effectiveness output constants into the Activity object. The numbers are not changed at all; this is just a way to organize things by functionality. The system you outlined hasn't really been changed at all. quote:
 You previously maintained that there was a substantial difference between the old level 3 techs and applications,
 |
My mistake. Please consider that ancient discussion void. That was before I learned about good OO design practices. Now I believe that Applications and Techs, as programmed, are both derived from the same object, with certain bevaviors turned on or off. So we might be able to blur the boundaries between them if we need to. Level 3 techs could certainly have application functionality. quote:
 I think my proposed change to add longevities would require an additional something like 20 lines of code...
 |
Again, my mistake. I wasn't thinking straight. By all means, feel freee to blur the boudaries between level 3 and 4, adding functionality as you wish. Level 3 can be thought of as "half application/half technology."Nothing prevents scenario designers from using Mark's 'historical' method. They could use it or any variation of it they wanted. They could design a system so that all techs start the scenario with the same value and grow from there. They could decide to make a new scale for WW2, where techs are set to 100 in 1940, and then grow to 200 by 1945. Or there could be a sci-fi scenario where all current techs are set to 10 and then grow to 200 as the player makes a galactic empire. But for the default world history scenario, I don't think it would work too well. In addition to the math difficulties, here is a question of what historical standard to use. Is 'level 40' supposed to be set to the Roman Empire's techs, the Chinese tech level, the Celtic tribes' knowledge, or possibly some average of all of those? How do we deal with the fact that certain techs were worse in 1000AD than they were a milennium earlier? How can the model make any sense if level 50 is set to be the 'historical' water systems tech in 1000 AD and level 40 is set to be the Roman aqueduct system? Different cultures have had vastly different tech levels. At a certain time period, each group may have had vastly different knowledge levels. Does that make one group better or worse than another? no, they are just developing differently. But Mark's plan seems to imply that everybody should be the same at any given point, that all civilizations should develop the same way and at the same rate. That would work fine for a WW2 scenario, but for the main game it just doesn't seem right. Most people tend to think of history in terms of our current world. Textbooks are full of things like "The Roman plumbing systems were almost as good as the ones we have today." or "These peasants could only grow 1/50'th as much food per acre as a modern farmer." The system I use simply puts those common comparisons into numbers. quote:
 Originally posted by Lord God Jinnai on 04-14-2001 10:50 PM 1> What will be decided for the levels for things we have yet to put to any practical use but may soon such as cybernetics?
 |
They already have some cybernetics, like the new artificial heart they are getting ready to test. They say it may add a year to a person's life. If that is level 100, a heart that extends the patient's lifespan two years is level 110. Level 200 would be when a person can be made to live about 2000 years with cybernetics. Kidney dialysis machines would also count as cybernetics, so we do have a reasonable baseline to go by. quote:
 2> Since the beginning of the Idustrial Age and moreso since the dawn of the Information Age, Technology growth has been speeding up at a very rapid pace. Within the 60 or so years that computers have been around for practical use they have grown at an extrondiary technological rate which is unparrelled in our history. In fact it has come so far spped wise that if a computer is out on market, it is considered obsolete.
 |
I said before that the flops per second is not what we are measuring. We are tracking what you can do with the technology. That measn that we look at the kind of scientific and engineering uses of computers, not raw numbers. The doubling of problem solving skill is a lot slower than the doubling of processor speed and hard drive space. quote:
 Since it is not my job to write the specification for the model, I omit the formulae by which research points are transformed into technology levels. You will have to take my word for the fact that they represent the formulae specified in some ancient post or other.
 |
They are specified in the spreadsheet and its instructions, which is assumed to be the final guide to number-crunching. Everything else you describe looks really good. We attempted to do some object oriented design a while ago, but I managed to sabotage that somehow and nothing seemed to come of it. Good work! Mark, number 7 looks right to me. That was basically what I listed earlier in teh tree of objects used. Ok, I see now what you wanted to do with historical effects and longevity. Yes, that certainly could work mathematically. But the problem is that the players would no longer care about the tech level. Why should they care, if the tech level does not mean anything? It would essentially be meaningless, since level 60 agriculture might have an effectiveness that is very different from level 60 architecture. The longevity is what determines effectiveness, so they would care about the longevity, not the level. So we would have a nice syatem where all tech levels are the same in a certain year. But now the player doesn't care about the tech levels at all, since a difference of five tech levels in computers is astronomical and a difference of five tech levels in architecture is miniscule. They want to know their effectiveness, and how it compares to a rival's effectiveness. So we are right back to the starting problem, where the numbers are very confusing. The player would want to know what the "longevity" means and how it determines what they can do. How would we explain longevity and its effect on things? Player: "Why is the level even in there, if it has almost nothing to do with effectiveness?" Help File: "You should be at a level of 60 in 1650 AD. Player: "Um, ok. I am at level 55. So how do I compare to my neighbors?" Help File: "Longevity 12 and level 60 means an effec | |