 |
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
F_Smith:
You are making a serious mistake, and that is your ridiculous habit of referring to "programmer" in the plural As far as I can tell, we only have three programmers for the whole project. Each model only has one programmer, if that.
Thus the problem with the bazaar model: we don't have the programmers. LGJ and I knew that, so we thought we were doing everyone a favor by making a detailed design doc ourselves. We assumed that if our system was coherent, functional, and well documented then it would be easy to program. Obviously that was a mistake.
I understand your views on "owners" supressing innovation, but you have to believe me when I say that the model leads usually have a good idea of what can fit in and what will not. Sometimes those innovations would have the effect of destroying the entire system and forcing everyone to go back to square one. If someone changes the foundation of the model, they can easily destroy the entire thing and force the thing to be rebuilt form scratch. This would waste time and could ultimately prevent the project from going anywhere. Some things just have to be set in stone, for better or for worse.
I have started reading "Thinking in Java" and now have a rudimentary understanding of the program structure. I will try to design object oriented models from now on; I have been designing blindly for too long now and that has to change.
From what I have read so far, it seems like technology as we have defined it is a perfectly valid object class. Each technology is a discrete object that stores data about itself and operates on itself and other things. You can add and subtract them from the system more or less at will and they all use the same handles. The basic tech structure is a Base Class, and the Tiers and specialized techs are Derived Classes.
The techs work with the rest of the game using the Technology Tag class of objects. The tech objects operate on the tech tag objects, and the tech tag objects operate on the objects in the other game models. I can see how there could be a bit of trouble defining some of the equations as object interactions, but we should be able to get it to work.
Our five year old computer is not capable of running the java compiler, but I will be able to program on the computer I am getting for college. Hopefully I will be able to program some of the models I have been working on.
|
|
|  |
 |
|
Mark_Everson
|
 |
Canton, MI
Jan 1970 time: 00:13
|
|
Gentlemen:
First to Richard, I don't think you did anything wrong, quite to the contrary. You've worked very hard on Clash and lots of people appreciate it! The issue with the lack of technology coding was not our methodology, it simply because Garth had several real-life events that shut down his coding completely. F. Smith, you are exactly right that it is a relatively small programming job to do the technology builder. It is only because Garth had previously done significant amounts of work in rearranging the existing code, and kept assuring me that he would return to programming relatively shortly, that things happened in the way they did. If anyone screwed up there, it was me, who made a poor judgment call.
I second Richard's statement. In the Absence of programmers, I believe they made serious progress! Y. M. M. V. And at least to my level of understanding of programming, I also agree with Richard that his model is completely suitable to object oriented programming. Will it have been designed perfectly? Probably not. I'm sure we'll find defects when it's coded up. As it goes for all the models.
F. Smith:
When you offered to do the code design for several models, it did not come attached to an offer to actually code them. Therefore, you were in effect just trying to draw up yet another design document that some other coder would have had to cope with when they actually did the work! That is why I wasn't particularly interested in hearing what you had to say about it. I'm not saying that in retrospect I did the right thing, only that those were my motivations at the time. As an example , let's take the tech model. You made suggestions, but at that point I was firmly convinced that Garth, who had done probably 40 or 50 hours of coding over the previous two months for the project, was going to program the whole model shortly. I thought it was Garth's call to make the decisions on how to properly assign classes in the model.
So anyway, please forgive me for the unintentional slights I have delivered to you over the past two years. I am just trying to coordinate this project in the best way I can. And please believe me that I would Never turn away an offer for someone to code!
|
|
|  |
 |
|
F_Smith
|
|
Austin, Tx 78728
May 1999 time: 05:13
|
|
Richard:
I would also like to repeat what Mark said -- you have done nothing wrong. I would only suggest a modernization of methodology.
Actually, I remember at least three other programmers over the last year and a half showing up and asking about 'architecture'. They were not answered at all, and left quietly. I tried to get one fellow from work involved a few weeks ago, and he read thru some of these discussions and decided I was nuts for pushing ya'll into OO -- he felt ya'll were so dead set against it there was no point in any OO programmer like him getting involved.
I, unfortunately, love to be out there on the bleeding edge.
Mark:
Perhaps this is partly a miscommunication problem -- when programmers like myself offer to work on architecture, and when other programmers ask about architecture, we're actually talking about the first stage of programming the game. That is not a 'design doc', that is actual code.
Ya'll have consistently disregarded talk about architecture and OO design in favor of 'design doc' and 'model' talk. Most programmers who have experience with design docs will consider those nothing but management overhead that will bear little resemblance to the final product we code.
So ignoring object design and architecture talk/requests is turning down coding help.
Ya'll:
Yes, a 'tech' object is a good start. Ya'll actually told me 'no' on that, once upon a time.
This is the beginning of a 'tech' system object design. It has to start there.
But only the bare beginnings. Next, imagine all types of 'tech' subclasses you might need, and file them into a 'hierarchy'.
|
|
|  |
 |
|
Mark_Everson
|
 |
Canton, MI
Jan 1970 time: 00:13
|
|
F_Smith:
Well, live and learn. (Its much better than the alternative )
These three coders that we ignored... can you point them out to me when you come across them? I searched under 'architecture' and didn't find anyone that isn't currently on the project.
Diminishing Returns...
First of all, IMO diminishing returns may not even be needed in the RP model. Once we include all the other factors like: authoritarian rule, heavy taxes destroying innovation, corruption at all levels of society, suppression of innovation by powerful interests, and some others, I think the large despotisms that we are most worried about will be rather insignificant in terms of generating innovation. If it turns out that we still need a serious amount of diminishing returns to RP generation, we can IMO apply diminishing returns directly to the RP totals in each area.
[This message has been edited by Mark_Everson (edited August 10, 2000).]
|
|
|  |
 |
|
Lord God Jinnai
|
 |
St. Louis
Sep 1999 time: 23:13
|
|
F_Smith:
Well I guess the mood was unfriendly so sorry, though i don't regret what i did...i never regret anything.
Anyway as far as a 'tree' structure you say, not really....a 'tree' refers to branches that come out of one main stem and continue into smaller ones. That's not what the tech model is....basic technologies yes (with a few crossovers maybe), but the application techs aren't like that. They have requirements, but these requirements don't nes limit similar application techs that seem more advanced such as bronze working and iron working. You need certain metals and without them, you can't do reasearch on one type, but it doesn't stop you from the other, but might hinder it.
Also there are some things that we have that still need to be in there for balancing issues and other stuff....how its done doesn't matter, if the user sees the same thing using one coding method as another that's okay. And if some things need to be changed, yea that's fine too, but the fundimental building blocks are there because they need to be in order for the system to function properly. You say you're familar with the tech model so you should know what most of those are.
Mark:
There is still a need for diminishing returns. Small countries like Japan with similar society to the US, economics, etc (well society is slightly differnt, but neglible for RP production) would have a vastly differnt result in the fact that the US would outproduce Japan a lot because it was such a small country and even with its superior technolopy economy and differnt cultural attributes that might help in rp production it wouldn't be able to even compete at all with the US and would soon be lost behind the times unless it expanded.
|
|
|  |
 |
|
F_Smith
|
|
Austin, Tx 78728
May 1999 time: 05:13
|
|
Lordy:
I wouldn't say 'unfriendly'. I'd just say receptive. I always felt like ya'll were being very polite and friendly.
Mark:
I will look for their posts. We might be able to woo them into this, now that we can show them the design stuff. I seem to remember the name 'Stephan Deadelus' or something like that, too -- I can't remember why/where he went, but he was another one of those coders that we might be able to get back.
All:
Let's see. We have a base 'tech' object. Then it seems like the 'application' tech needs to be a seperate object, agreed?
Should 'ApplicationTech' extend 'Technology'? I assume so . . . any thoughts?
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
F_Smith: I vaguely remember you talking about tech objects, but at the time it seemed like another push for the old style prerquisite based "rat nest" tech system like civ 2 used.
I will attempt to do OO modeling for the tech system, but I would like to practice on something smaller first. Can we do OO for my new population model so I can get a better understanding of all the terminology and ideas? I have read the first two chapters of Thinking in Java, but have no practical experience in doing OO. I am the kind of person who learns best by doing something small and then working my way up to more complex things.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
Just saw Mark's post. . .I don't know exactly what "extends" means. I'll do some more reading and then work on the population model OO design. I don't want to rush into major tech decisions before I have more experience with OO design.
|
|
|  |
 |
|
roquijad
|
|
Santiago
Nov 1999 time: 05:13
|
|
Richard: I didn't understand your post. Now I see it. We're back on track. Anyway, now that I read again my post, I guess I over-reacted to your words, so sorry for being a little rude... probably it was a bad day 
I'm reproducing here a short talk between LGJ and I via e-mail regarding ideologies in the tech system. Just for the record.
LGJ:"Can you explain what you mean by government types in the tech model? Also a better explanation of ideologies would be nice."
roquijad:"Ideologies and govt types are essentially the same thing. A description of how the govt should be. [...] The tech level of an ideology should represent popular knowledge about it. Know it and understand it. If the tech level is low (10%, FE) we'd say it's only a vague idea a few philosophers have. When it's like 60% then we say some people know it very good and know how to implement it, but still there's a lot of people who don't know it well or don't know it at all. At levels of 90% we'd say it's well known by population. To know an ideology of course doesn't mean to like it. It doesn't either mean how effective its implementation would be. I believe all govt forms implemented for the first time in a country are less effective than they could be. This is a nice effect I didn't consider in my model and now I'd like to add, but I don't want this feature to be managed by the tech level, but by actual usage by the civ (i.e. in the govt model)."
It's not ness for you to discuss the above. Only if you feel there's something very wrong, of course. I'm just putting it so you and LGJ have the same info.
One question I have is how "standard" is RP production. Are all techs fed equally based, FE, on econ model's variables? Is it possible to design a specific RP production equation for ideologies?
Now, on a totally different topic, I didn't know about the diminishing returns for RP's. I never knew about such discussion and I'm probably saying something that has already been said, but if it's not yet settled, I'd prefer no dim. returns. I can't help giving arguments against dim. returns, so excuse me if I'm resurrecting a dead discussion...
IMO the dim. returns approach assumes creativity depends a lot in local govt's administration capacity. If I expand a province geographically, what only happens is the local govt now has to administrate more land. The govt can indeed be less efficient/effective because of this, but the question is why creativity would be affected too. This would only happen if the local govt has a big role in producing innovation. Of course the govt has a big role in terms of defining the degree of liberties and the economic system used, but that's irrelevant in this analysis because geographic expansion doesn't imply changes in policies. Geographic expansion only affects the govt's administration capacity, like being able to manage the sewer systems of the new towns added, FE. If, within this administration, we consider things like handling public funds for scientific research, then we can consider RP production affected by a less effective local govt given by the geographic expansion. So, IMO, RP production should not work with diminishing returns, but with constant returns. If the govt spends money for sci research (money converted to RP's directly somehow), we can penalize that according to local govt's effectiveness. This effectiveness should IMO be an input from the econ/govt models.
IMO scale is very important in RP production. One is tempted to penalize great empires in their creativity because that's we've seen IRL, but I believe those cases are better explained because of things like lack of freedom.
Scale is important. A country like the US produces a lot of techs not only because of its regime, but becuase it's huge compared to the average country. If one assumes the probability of a single person to create a tech breakthrough as being X, then the more people you have, the more probable it'll be developed.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
Ideologies:
As I feared, there might be some problems with your approach to the government techs. The tech system is not designed to handle "popular knowledge"; IMO that is something that is better handled by the social model. Our ideas of RP production and tech levels and implementation assume that high tech levels mean something is getting more effective.
But I think we can resolve this. For a while now we have been thinking of creating a different system for social techs. The plan for the ideology tech confirms this need. The social tech system would use a new type of RP produced mainly by the social model rather than the economic model.
A new social tech plan based on popular knowledge and/or approval could be a valuable addition to the game. There are many social technologies that would use exactly the same system.
Actually, the ideologies could have two tech levels. The social tech level describes knowledge and popularity as you desctibed, while the normal tech level describes the actual efficiency and effectiveness of the government type. So, you could have a popular ideology that doesn't manage the country well or vice versa.
We have to decide who will be developing this system. We agreed earlier that I would do military and LGJ would do the social stuff, but if you want me to do some of this that would be okay. Of course, we would have to work closely with someone working on the social model. Rodrigo is the obvious choice here. LGJ and Rodrigo, would you two like to work on the new system?
Diminishing Returns:
These are designed to represent duplicated effort. RP's represent new ideas or improvements to current practices. But what happens if the ideas are the same? If two farmers might generate RP's representing new ideas but their ideas are the same, the civ should not get twice as many RP's. The idea only happened once, so the extra RP's are duplicated effort and are therefore lost.
The idea was to implement diminishing returns based on the communication within the civ. If there is not much communication, there is a bigger chance of duplicated effort and RP wasting. If there is not much communication, then the people in the 20th province are not likely to have many ideas that the people in the first through 19th provinces have not already had. This means that their ideas are redundant and their RP contribution would be very low.
We can no longer use provinces for these diminishing returns, so we have to figure out how to implement a similar thing for square based RP production. It doesn't necessarily have to be diminishing returns, but it should have the effect of negating redundant RP production.
GDP:
I have been saying for months that RP production would be based mainly on economic activity. A big airplane manufacturing company will generate a lot of improvements to airplane design. (However, the sixth factory will not generate as many ideas, thus the need for diminishing returns.)
|
|
|  |
 |
|
roquijad
|
|
Santiago
Nov 1999 time: 05:13
|
|
About ideologies, I know the current interpretation for the tech level is a level of effectiveness, but I wonder if the interpretation can be different depending on the tech. After all, it's just a matter of what meaning we give to a certain number if I'm understanding correctly... If so, then I wouldn't worry about my attempt to re-interpret ideologies tech levels. Anyway, if you prefer me to keep the popular knowledge concept within the govt model (as in fact it is currently), I can do it. In that way the govt model handles popular knowledge and the tech model handles ideologies effectiveness.
What I think is valuable is having different systems for RP production depending on the particular techs. I support the idea of taking inputs for RP's equations from the econ model for the majority of techs, but I think other techs would be better modeled if RP's they receive come from other calculations. Military techs might receive RP's from the number of battles in a game turn, FE. Having a special RP production system for ideologies would be nice in this line of thought.
As for diminishing returns, you have a very good point when you talk about duplicated effort. I didn't see that. However, I feel the best way to introduce dup-eff is at the civ level instead of province level. If, FE, I have a civ with a single province and the level of dup-eff is X and then I decide to split my province into two, then I'd expect the total dup-eff level in the civ to stay being X. It's the same people and with the same communication techs as before, so if something was being developed simultneously in two towns, it will remain that way with new political division. My suggestion would be to take RP's produced in all provinces (without diminishing returns at that level) and then penalize the total to introduce the effect of dup-eff.
Doing it that way it's also more complete and consistent, because using diminishing returns only at the province level assumes no duplication happens between provinces, which is not true. Any penalty at the province level should IMO depend only on tech development carried on by the local govt and so depending on govt effectiveness as in Mark's examples.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
Mark: It is not just ideas that are duplicated. I was referring to the entire tech development process; I'm sorry I didn't make that clear.
Small innovations and improvements can also be duplicated. If farmer X does something that makes his plow harness go 10% faster and farmer Y on the other edge of the civ does exactly the same thing independently, then their effort is duplicated and some RP is lost. They couldn't communicate, so their work was redundant. If there was a good communication system, then they could work together and make the plow 20% faster. For this reason, we should include the option of a diminishing rteturns system based on communication.
roquijad: There is still a need for a social tech system. Would you like to work on that? It would give you a chance to make a social tech system that fits your needs.
You are right; we cannot do the tech system at the province level. I will see what I can do about an optional diminishing returns system at the civ level.
[This message has been edited by Richard Bruns (edited August 12, 2000).]
|
|
|  |
 |
|
Lord God Jinnai
|
 |
St. Louis
Sep 1999 time: 23:13
|
|
quote:

Originally posted by roquijad on 08-12-2000 03:21 PM
About ideologies, I know the current interpretation for the tech level is a level of effectiveness, but I wonder if the interpretation can be different depending on the tech. After all, it's just a matter of what meaning we give to a certain number if I'm understanding correctly... If so, then I wouldn't worry about my attempt to re-interpret ideologies tech levels. Anyway, if you prefer me to keep the popular knowledge concept within the govt model (as in fact it is currently), I can do it. In that way the govt model handles popular knowledge and the tech model handles ideologies effectiveness.
 |
I like that idea...though you need to flesh out your idealogies before we can do our part,
quote:

Originally posted by roquijad on 08-12-2000 03:21 PM
What I think is valuable is having different systems for RP production depending on the particular techs. I support the idea of taking inputs for RP's equations from the econ model for the majority of techs, but I think other techs would be better modeled if RP's they receive come from other calculations. Military techs might receive RP's from the number of battles in a game turn, FE. Having a special RP production system for ideologies would be nice in this line of thought.
 |
Well as I see it there are 4 basic ways rp are produced: Economic climate, military climiate, social climate and pure scientific climate. Each of these can be subdivided like farming from Economic climate, but each has differnt ways of producing them. Economic climate has been well documented how it will handle RP production. Your ideas for military rp production, plus the actual manufacting of the items will increase RP production, etc. Social climate severes a different purpose; it changes the levels of RP required to go to the next level, the same as would helper technologies, though not always for the better. (I would also like to point out at this time there should be anti-helper technologies that stifle innovation in a few areas). Finally pure scientific climate is for discoveries that have no immediate or short term benifit to the introduction of the knowledge, but are discovered for the sake of scientific progress. These aren't influenced very much by economics or military. Social factors do affect them, though in differnt ways. There is not net gain beyond higher levels technology in the short term and somtimes medium term future of the game for discovering these technologies so that's why they must act differently to the other ones.
quote:

Originally posted by roquijad on 08-12-2000 03:21 PM
As for diminishing returns, you have a very good point when you talk about duplicated effort. I didn't see that. However, I feel the best way to introduce dup-eff is at the civ level instead of province level. If, FE, I have a civ with a single province and the level of dup-eff is X and then I decide to split my province into two, then I'd expect the total dup-eff level in the civ to stay being X. It's the same people and with the same communication techs as before, so if something was being developed simultneously in two towns, it will remain that way with new political division. My suggestion would be to take RP's produced in all provinces (without diminishing returns at that level) and then penalize the total to introduce the effect of dup-eff.
 |
Your forgetting one key thing....Your assuming that these 2 new provinces will have policies exactly the same as each other.
quote:

Originally posted by roquijad on 08-12-2000 03:21 PM
Doing it that way it's also more complete and consistent, because using diminishing returns only at the province level assumes no duplication happens between provinces, which is not true. Any penalty at the province level should IMO depend only on tech development carried on by the local govt and so depending on govt effectiveness as in Mark's examples.
 |
Well this also depends on how F_Smith wants to handle what is put in each square relating to tech info.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
Implementing anti-helper techs is trivial. Just make a coeffecialt with a negative value. That is a good idea; it could lead to some hard choices, and that is IMO a way to make the game a lot better and give more replay value.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
We have been thinking about building a social tech system for months. It was one of those things that kept being put on the back burner. Basically, there is a need for the social tech levels, which mean something different. You pointed out that need when you described your plans for ideology techs, but there are many others, like Chivalry and Literacy. Social techs are based on support and popularity rather than knowledge and efficiency.
While normal science and engineering stuff is designed to keep advancing, social techs can bounce up and down. A certain social tech can be high in a bronze age society and very low in a modern society.
It is entirely possible that these should be handled by the social model. We assumed we would do them because they are part of the "tech tree" in other civ games, but other civ games don't have a good social model like we do. When we first started working, Clash didn't have the social model it does now, so our earlier assumptions may not be valid now. Some things we were calling techs might be batter handled as social characteristics.
But then there are the hybrids like Literacy. It depends on social conditions and educational infrastructure and it affects both technology growth and the society. It is a social condition and an important part of the tech system. We need a good way of dealing with such things. LGJ, can you work with Rodrigo on this topic. I have my hands full with the Object Oriented model development.
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
I have been working on learning Java. I am already familiar with the basic stuff and can understand stuff other people write, but I haven't yet learned to write code myself. Just give me some time. . .
|
|
|  |
 |
|
Richard Bruns
|
|
NC, USA
Nov 1999 time: 06:13
|
|
Outline for Tech System Implementation with OO modeling:
This outlines the entire tech system procedure, starting and ending with object parameters for the other game models. This is mainly a definition of the objects and their interactions; the equations will come later.
The system is run at the end of the turn. It uses data about events and attributes from that turn and the results are implemented at the beginning of the next turn.
This system can be run at the civ, province, or even the square level. The default would be the civ level, but if you wanted different provinces or squares to have different tech levels you could run these methods at that level.
1) Data about RP generating activity in the area (civ, province, or square) is collected. I would assume that this would be a matter of inputing object parameters (trade, construction, etc.) from the other game models.
2) Tagged RP's are generated from this data. Each tech tag has a Tagged RP object that calculates itself based on the data gathered in step 1.
3) Social effects and other external multiplicative effects are applied to RP generation by tag. The object parameters from the other models again cause the Tagged RP objects to recalculate themselves. (Note that this allows society to have different impacts on different fields of study. Philosophy innovation might be frowned upon while Agriculture innovation might be supported.)
4) Tagged RP's are distributed among the technologies. Each technology has an associated Tech RP object that calculates itself based on data from the Tagged RP objects and the level of the associated tech.
5) THL (Total Helper Level) values are calculated. Each tech has an associated THL object that recalculates itself based on data about the helper and vital techs.
6) Each tech level is recalculated. Each tech object recalculates itself based on data from the associated RP object, THL object, tech attributes, and its own tech level. (This is the step that is detailed in the spreadsheet.)
7) Tech diffusion is calculated. The tech objects recalculate themselves based on data from surrounding areas and the internal conditions of the area. (Note that this is in addition to the effects of trade. Trade generates RP's that must be turned into technology by the civ or province. This gives completed technology directly to the area. So, your society not provide a good evvironment for the development of something, but they would use it once it is completed.)
8) Application levels are calculated. Each application object recalculates its level based on the tech objects and its own attributes.
9) The effects of application levels are implemented. The objects in the other models recalculate themselves based on the parameters of the application objects. These effects will take place before the start of the next turn.
So the basic outline is:
Other model objects (previous turn) -> Tagged RP objects -> Tech RP objects -> Tech objects -> Application objects -> Other model objects (next turn)
|
|
|  |
 |
|
F_Smith
|
|
Austin, Tx 78728
May 1999 time: 05:13
|
|
Hi:
I'm sorry, I've been working my brains out the last couple of nights. I haven't been able to fully digest the steps yet, but at first glance it looks right.
This is good stuff, Richard.
If you have a chance, would you write a specific list of what you see the objects necesary to be? If you do, I can code this up, if you'd like. After I finish dealing with this tricky 'ideology' turn logic, that is.
|
|
|  |
All times are GMT. The time now is 05:13. Apolyton Time is 00:13. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|