|
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 effectiveness of 456" Help File: "Longevity 12 and level 55 means an effectiveness of 362" This results in a system where one has to be intimately familiar with the technologies to answer a question like, "What would the effectiveness be in the Crop Rotation technology in 1650? *Does Research* Ok, an effectiveness of 466 looks right. We know that the level is 60, so what longevity should I program to make the effectiveness be 456 in at level 60?" LGJ, a tech can be used the instant it is listed. The starting level is a minimal level of usefulness (k=1). Think of it as a breakthrough, like the Wright brothers. Once made, the tech or idea will never go away. It is certainly possible to build an airplane worse then theirs, but the idea of airplanes will never die once discovered (Unless the whole civilization falls and nobody else has the tech at all.) If it falls below the strating level, k will go into fractions. I've tested this, and the model doesn't break down or anything. It works fine. So we can have a tech fall below the starting level and it will have an effect, but a very small one. I say once it is discovered, we let it stay around with that tiny effect. The breakthrough has already been made and people know about it, but most practical knowledge is lost. [This message has been edited by Richard Bruns (edited April 16, 2001).] |
LDiCesare Chieftain La Ferté sous Jouarre France Jan 2001
|
 |
posted April 17, 2001 07:29
 |
 |
 |  |
quote:
 Originally posted by Gary Thomas on 04-16-2001 05:57 PM 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
 |
What about the fact that we no longer know how to build bricks as solid as the Romans? The Eastern Roman Empire survived long enough and still lost that knowledge. Another example: Greek alphabet: Nobody knew how to read linear B (I may have the name wrong, might be linear A) after all the scholar caste was struck down (must have been a plague if I remember well but I'm not good in history). |
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 17, 2001 08:27
 |
 |
 |  |
Sorry, I didn't notice this before. quote:
 Originally posted by Gary Thomas on 04-16-2001 05:57 PM What, then, is technology level supposed to represent? Knowledge? Infrastructure? Some undefined combination?
 |
The tech level represents knowledge. In most cases it is not raw academic knowledge, but the ability to apply knowledge to the problems of the civilization. The upkeep required is the amount of effort needed to teack the next generation the skills of teh civilization. It might be considered a tangible asset in the form of human capital. The tech level also represents your pool of skilled workers, the perople who can make things or develop new items or techniques. quote:
 Can anyone give an example of decaying technology that doesn't depend on either collapsing infrastructure, or change of ownership?
 |
The USSR and many former Societ Bloc countries are currently losing knowledge and skills. Scientists, technicians, and engineers are leaving the country and very few new ones are being ecucated. A fall in infrastructure and a fall in tech level are two symptoms of teh same thing, so they usually occur together. When the economy and/or government and/or society no longer functions properly, many aspects of the civ will start to fail due to lack of maintenence. |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 17, 2001 12:41
  |
 |
 |  |
Hmm, I'll respond to some important issues one at at time, and hopefully will get what I want to say out before I run out of lunch hour...Activities used for both RP allocation and effectiveness determination: This is a good idea and we should do it IMO. It would only require a small amount of extra coding work. Richard, I saw that third bullet you cited on using Activites for effectiveness. It didn't say "for effectiveness" to me, but anyway what I interpreted it to mean isn't relevant. My apologies that I thought you meant using the Same coefficients for RP allocation and effectiveness. That was silly. So in terms of the code changes needed I'd say CivilizationActivity "has a" RP_Allocator and "has an" Effectiveness or whatever names suit. Sound ok Gary? Number of Activites needed: The short answer is we probably need more than 20. I frankly hadn't thought much about tech activites per se when coding the econ model in a more compartmentalized format... . What the new architecture really does is handle each economic special (fishing, wine making) on its own. (As a unique sector of the economy just like Agriculture.) These specials should very probably have their own effectiveness, now requiring their own Activity. I think this is a good object model, and we can simplify the Activites the player sees if needed. A similar issue is that with the tag 'Food' (or Agriculture) used only for RP allocation (where I thought we were...) I had in mind that we could just send the Food RPs split between Agriculture, Fishing and Herding using an estimator for how much food each activity generated. But if we're going to use activities for effectiveness this is no longer acceptable. ("Sire, we have discovered a new type of Field Rotation that has vastly improved our fishing capabilities" ) We don't absolutely Have to be realistic in these areas, but lets do it the right way for the first take, and we can thrift later if needed. BTW, I think you (Richard) got the wrong list of tags from the archive  Here is a post on tags from my notes on tags in a text file. It is the updated list I'd like to work from. I propose we accept as current spec the qoted list in the quote. It includes the Food tag we'd decided on previously. Then we can start adding to the top one as necessary. The post has some other useful stuff in it, so I'll quote it all. quote:

Richard Bruns Prince NC, USA Nov 1999 posted September 18, 2000 20:46 This is a copy of what I posted in the infrastructure thread: --- Idea: All infraclasses should be tech tags. Since the technology is designed to reflect what people do, I can fix the tech model so that there is a tech tag for every infraclass this model has. This way, the tech model can generate exactly what the econ model wants. Each infraclass will then have an ideal tech level T and an actual tech level A. The connection helps the tech model as well. Investment in a certain infraclass would generate tagged RP's for that tech tag. These RP's are then distributed among the techs. This should be a relatively painless way to connect RP production to economic activity.I'll post this to the tech model as well. Or if you all would prefer, I could start a new thread devoted to tech-econ interactions. I'm confident that relating infraclasses to tech tags will be a good way to connect the models. --- So the current list of tech tags would be: Infraclasses: Food (All Agricultural research)* Consumed goods (Standard of Living?) Welfare (Standard of Living?) Education Research (Pure Science) Religion (and Philosophy) Housing Durable Goods (?) Health Care Water & Sewage Power & Heating Communications & Media Transportation Recreation & Luxuries Administration (Government and Politics) Financial Infrastructure (Cash Flow and Economics?) Nature Preservation (Disaster Prevention and Ecological Studies?) Military Infrastructure Military Units Kapital Investment (Production Technologies) *The names in parentheses are the previous names for the tech tags. In some cases I had to extend the infraclass definition a little to get them to match. A question mark means I'm not sure what the infraclass means or I'm not sure if the match is good, so please give feedback on this. Others: Exploration/Movement Diplomacy and Propaganda Prospecting and Extraction Something I'm Forgetting? I still thinking about the EG tech modeling situation. But to try to clear up confusion, I will describe tech diffusion: Tech diffusion occurs due to contact, not movement. That is an important distinction. The amount of tech diffusion that takes place will depend on the tech levels involved and the amount of contact between the source and recipient. So if you are far away and have a few trade routes, tech will diffuse slowly. If you are adjacent to each other there will be more tech diffusion because more contact will occur. And if you conquer a province, you get the most tech diffusion because you can take apart and analyze everything. The amount of tech diffusion in a conquered province will be based on the actual province infraclass tech factor A. The conqueror gets tagged RP's based on the various infraclasses. For example, if someone takes a province with a very high Power & Heating tech factor, that person will get a lot of RP's with the Power & Heating tag. So it is not an all or nothing situation like Beör described in 1.2.1 and 1.2.2. The conqueror gets very real gains, but they do not get everything instantaneously. It is a balance. So there would not be a big problem with modeling tech by civ alone. But modeling by EG could provide some benefits. I'm still not sure if the complication is worth it, however. I still need to consider the ramifications.
 |
Proposed action items:
1. Reinstate more complete Activities list (starts with Food). Actually Merging the two would be best, since the mining one doesn't show up on the 'Food' one. I will then add anything further I need for demo 5 soon, and we keep the list current as new functionality is added. Only immediate changes for new Activities list is Food should be changed to Agriculture (Fishing and Herding will come later, or can be added now for completeness). Also we need to add a Services Sector Activity (as in productivity of services sector) and also a Gold Mining Activity (This could be handled with the more generic Mining just fine). 2. Code in Activity Effectiveness. For now this should simply be a weighted sum of effectiveness from the list of techs and applications for the Activity. So I think we need as a ripple effect to also implement effectiveness for all techs. Lets discuss this one first, but it seems to me the right thing to do. What do people think?
I think I've addressed this one topic in sufficient detail. I'll have to return to talk about the Great Level Debate in another post.
|
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 17, 2001 15:29
 |
 |
 |  |
quote:

My apologies that I thought you meant using the Same coefficients for RP allocation and effectiveness. That was silly. So in terms of the code changes needed I'd say CivilizationActivity "has a" RP_Allocator and "has an" Effectiveness or whatever names suit. Sound ok Gary?
 |
I cheated a bit. The technology interface method getEffect(String name) will actually work if given an Application name, an Activity name, or a Technology name. The search order (in case there are things with the same name) is: Technology names, then Activity names then Application names. So, all you have to do is design an activity to do what you want, and then never assign research points to it, just use the getEffect. From a programming point of view these entities (Technology, Application, Activity) hardly differ in behaviour. Personally, I would have preferred to design the system so they did not differ at all, but it is a bit late now. I actually cheated a bit more. The isBuldable(String name) also works on technologies, applications, and activies (in that search order). So if you want to have an activity that merely checks to see that a certain level is reached in each of a specified list of technologies (a different level for each technology) and only then have Einstein appear (or some other elevant event), then you can do it. I made one other invisible change. Activities now have a multiplier parameter. The total effect is multiplied by that factor before returning. It defaults to 1.0. The idea was that for research point assignment it could be set to 1/(Sum of recipient factors) to make them add up to 1, without hard coding it, or requiring the person entering the data to make sure they add to 1. I am glad I did not hard code the adding to 1, the effect on the effect would have been that an activity effect would always be 1. Why is there an obsession with only 20 activities? The real world has billions. Is there some good design reason for this limitation? Cheers [This message has been edited by Gary Thomas (edited April 17, 2001).] [This message has been edited by Gary Thomas (edited April 17, 2001).] |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 17, 2001 16:26
  |
 |
 |  |
Historical levels vs current standard... My perspective quote:

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?
 | What I think is correct is to use whatever the leading-edge technology in the world at that time was/is to establish the level. That assumption is I believe implicitly used in the current system. Technologies aren't by any means uniform today, even with our awesome level of communications technology. Level-100 tech includes nuclear weapons capabilities because the leading-edge countries have them. It is irrelevant that Yanomami tribesmen still mostly have stone age technology in 2000... quote:

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?
 |
Leading-edge techs I believe don't show that behavior. While perhaps some techs did decline in the European middle ages, there was simultaneously at least maintenence of Roman technology in the Byzantine empire, and surpassing of that in China. If you are technologically behind you have a level in at least some techs that's below the leading-edge countries. So the historical model has no problem modeling a civ that regresses or stagnates as others move on. Is growth always absolutely uniform even for leading-edge civs' techs? Of course not, but its a reasonable abstraction to hold in a game. And cultural acceptance of technologies and player actions should make each civ's tech unique. I am confident that levels will not move forward in lock-step unless the player has a goal to make them do so. quote:

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.
 |
Sorry, that's just because of my lack of presentation skills... There can be very large variations in tech levels from the 'target' level for a given age. There's of course Lots of room to fall behind, since the spec is a best-in-class measure. And effectiveness will vary as greatly from civ to civ as they would under the current model. All the historical scale is supposed to do is allow a player to quickly gauge some aspects of their civ's technological progress. 1. How good am I on average, and how does it compare to the other guy? 2. Where am I relatively good, and where deficient? Can I accept that, or must I take action? 3. How close am I to achieving that critical application like Muskets? I think these three things are most directly tied into player Fun, and that's why I'm being so abnoxious about this... I feel that the current system fails in each of these three areas. First a little more on fun. I think the most fun thing in the tech model for the player is in being able to reach that critical Application that allows them to do something great! FE getting Muskets just as the Mongols are about to roll over your civ. I'll use #3 as an example, I think you can see why the current system fails in #1 and #2 from this example also. The current model has Muskets of course. But lets look at what happens when I the player needs to find out whether they might get Muskets in time (say 5 years as they plow through my neighbor)? [just making up numbers] Current system: (Muskets require Chemistry 40, Mechanisms 2, Metalworking 28) I assume here that Mechanisms grow by more than a factor of 1000 in effectiveness over the game and start at something like -30 because of that. So the current system means the player needs to look it up every time for a while because the numbers are so screwy. Then you need to do an item-by-item comparison to see how close you are. Historical system: (Muskets require Chemistry 40, Mechanisms 43, Metalworking 38) In this system we will frequently have numbers bunched closely together because the critical requisites come from the same general period in history. The player may well already know correct historical period for muskets, and that the 'level' for that period is 40. If the player's overall level is 30, and they aren't superlative in any of the cited areas, there's no reason to look further. Look to other deus ex machinae. Of course we can put in an aid for the players to figure out whether Muskets are attainable. But the thing I really dislike about the current system is the level numbers are all over the place and you need interface help for even a trivial thing like figuring whether Muskets are achievable or not. There are a bunch of disjointed techs each with its own level, and there is no way to get an overall sense for how you're doing. Now for the historical system, there's still a learning curve for what level corresponds to what basic year or package of technologies. But the player can know that when things get near 40 they are close to the package of techs that consist of Muskets, Rifled Cannon, Naval Chronometers, Microscopes and Telescopes etc. (I'm not sure that all these rigoruosly go together, just making up a quick example) quote:

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.
 |
I simply don't believe that evaluating effectiveness is a fundamental and fun activity for the player! It will be done, but the breakthrough applications are the most important fun aspect in the tech model I strongly believe. And gauging when they happen will be IMO Much better with the historical system. If figuring out 10-20% effectiveness differences were the main fun area for the player (God help us ) I would agree that the current system is better. It is certainly rigorous, at least if we can ever get the factors right. Even in this area though I don't think the historical levels are too far behind the current system. Players will fairly quickly pick up the effectiveness change rates for the main technologies. If they want to look at longevities they will know that a 20-point difference in architecture is roughly equivalent to 10 points in agriculture or whatever. They don't need to use numbers, just have three mental bins for effectivenesses that are fast-changing, medium, and slow. Conclusion I am really certain that effectiveness evaluation is not the main fun factor in the tech model. Breakthrough Applications are where the fun is at... Therefore defining the system such that something that isn't fun is expedited at the expense of something that is, well, seems like the wrong direction to me. Since both the current system and the historical one will produce the same effectiveness numbers, many of the defects of each can clearly be addressed in the interface. So many of the points we have been going back and forth about may in the fullness of time become irrelevant. (I just realized that - doh!) Where I think the main difference remains between the models is in two areas: playtesting before all the bells and whistles are there, and also in Activity effectiveness designing by model leads that I've mentioned above. (The Agricultural Effectiveness discssion and aftermath.) I found and find the current model extremely unintuitive to work with for activity effectiveness design. It is very difficult to dock to history unless you know off the top of your head what fraction of modern effectiveness all the technologies required had at a certain date. I certainly don't and I'm very interested history and the history of technology. I think our playtesters before the final interface will wonder what drugs we were on if the current system is used. If we do stick with the current model I think the y2k=100 scale should be dropped. Just start every tech at 0 or 1 when its first available. Way back in the past when I proposed the y2k=100 level scale it was with approximately uniform tech progression in mind. Having a system where techs can start at negative levels, or start at 5000BC with a value of 50 is just too odd for me... What do others think? |
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 17, 2001 17:21
  |
 |
 |  |
Gary, shame on you for taking all those liberties with the code Good ones too, in anticipating where we want to go. But you're not out of a job yet I'm sure .The 20-Activity limit was imposed because we thought we'd like to get them all into a single window in the interface. But anyways, as I said above, we should just do the correct design with arbitrary number, and if its a problem, then cut it down in the interface somehow. On the tech decline issue, I'd phrase your questions another way... All: Is tech loss So important an effect that we should devote parameters and mental bandwidth to it in the model. If your civilization is collapsing your tech is at least going to stagnate anyway, and your infrastructure will crumble. I was originally a big proponent of tech loss, but whenever I think I have a firm case, it turns out to not quite be correct. FE I thought there were no aqueducts in post-Roman Europe for about 700 years. Turns out there were several constructed in different cities during that time period. So the tech wasn't lost, just barely anybody used it for social and practical reasons. So I'll echo what I think is Gary's question. Do we really need this in the model. Remember that we will get a benefit of somewhat easier tuning on average for every parameter we remove. That is not a negligible benefit, just hard to quantify. |
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 17, 2001 17:52
 |
 |
 |  |
Mark, I thought already agreed to a 'virtual' rescaling of the technology for interface purposes. The guts of the model say that the techs are 30, 70, and 50, but the top-level player interface says that they are 62, 58, and 60. The player sees these interface numbers, not the guts of the model.I'll go one step further. In the front-screen interface can leave out the concept of "Level" entirely. For the purpose of the interface, we could easily assign every tech level a year in our timeline. So "Computers level 10" is interpreted as "Computers 1950 AD (American)" and "Road Construction level 50" is listed in the player interface as "Roads 200 BC (Roman)" So the guts of the model purr along with the vital 2x=10 scaling rule intact, and the player sees a uniform scale like you want. I thought that we had already agreed to alter the player interface like that. I agree with you that the average player would like to see something like that. But I still maintain that the core math and scenario design is a lot easier if the hidden mathematical guts of the model follow that 2x=10 rule with the modern world as a solid reference point. "Tech loss" is already in the model and math. The current equations give tech loss behavior without any effort on our part. The level dips below the strat level, and the effectiveness shrinks to practically nothing but the tech doesn't disappear. So we don't need to do anything at all. |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 17, 2001 20:58
 |
 |
 |  |
I have to say that I would class all of the technology loss counter-examples that have been presented as actually examples of infrastructure decay or change of "owner".I remain unconvinced and unrepentant. Cheers
|
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 17, 2001 22:26
  |
 |
 |  |
Richard:When did we come to the 'virtual interface' agreement? Doesn't ring any bells If so I sincerely apologize for wasting lots of your (and my) time. Hopefully on the next go-around on the tech editor Gary can put in a way so I can mindlessly see historical numbers when doing the Activity tuning. Then I won't gripe anymore! Do we need a spec for that or is it obvious enough how to do it? quote:

"Tech loss" is already in the model and math. (snip) So we don't need to do anything at all.
 |
Just because its in the model and math doesn't mean you won't get trouble from it when tuning. Hopefully that won't be the case, but without a detailed mathematical stability analysis up front its hard to be sure... Gary, couldn't you repent just a little bit?  |
Lord God Jinnai Prince Arnold, Mo 63010 Sep 1999
|
 |
posted April 18, 2001 17:10
  |
 |
 |  |
Ok Gary here's the differance between just assuming infra loss as opposed to actual tech loss. If I loose the knowledge of how to build a factory after i build some because of various situations, I must relearn that. I haveto figure out how its done from scratch. Depending on how long its been I may not even ave that factory left intact and would not know what one was if someone told me. This was true of the Sewage and other sanition systems implimented during roman era. All but the very basic sanition was lost and anyone seeing an intact sewer system 500 years later could not reproduce it. Ifrastructure can be lost and easily regained when you have money, technology loss is much more permenant. |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 19, 2001 22:00
 |
 |
 |  |
quote:

This was true of the Sewage and other sanition systems implimented during roman era. All but the very basic sanition was lost and anyone seeing an intact sewer system 500 years later could not reproduce it.
 |
I did say that technology can be lost if the technology owner is destoyed. The case you cite is one in which the complete civilization was destroyed, together with its technology levels. This was not a case of gradually forgetting. The forgetting was complete and traumatic (and quick). My objection is to the idea of technology eroding within a continuing civilization. Still unconvinced etc. Cheers
|
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 19, 2001 22:15
 |
 |
 |  |
I do know of a single instance in which a technology was lost by a culture. The question of whether it could be considered to be within the same civilization owner is rather moot.In their spread across the Pacific, the Polynesians knew about pottery when they reached Samoa. When the reached Tonga, the next major centre, they had lost that knowledge. The apparent reason is that the small islands had no suitable clay. When they later colonized Rarotonga, Hawaii, Easter Island and New Zealand, all of which have suitable clay, the knowledge had been forgotten. However, in this case, sections of a similar culture had no substantive contact for centuries - I cannot consider them the same technology owners. Cheers.
[This message has been edited by Gary Thomas (edited April 20, 2001).] |
Gary Thomas Chieftain New Zealand Mar 2001
|
 |
posted April 20, 2001 07:59
 |
 |
 |  |
What is the greatest number of posts we can have in a thread before starting a new one?Cheers
|
Mark_Everson Clash of Civilizations Project Lead Canton, MI, USA b.02-15-99
|
 |
posted April 20, 2001 09:55
  |
 |
 |  |
You just passed it  Richard, could you start us up a new tech thread? When you get the time, its probably a good point for a complete revision of the writeup on the web page etc. as has been noted before. We should probably also get a web page going with the documentation for the tech editor also... but that can probably wait a bit. |
Richard Bruns King NC, USA Nov 1999
|
 |
posted April 20, 2001 11:55
 |
 |
 |  |
So ends the detour from the earlier tech thread. I have bumped the Technology System Version 5.3 thread, which is officially the current tech discussion thread. I will soon put up a new thread, but until then we can continue discussion fromthis post. | |