Announcement

Collapse
No announcement yet.

Final (5.3) Tech Dynamics

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Since the tech model will soon be coded (I said that a year ago, but hopefully it's true this time) it is time to bump and update this thread. The following additions and modifications have been made to the system since the last post in this thread:

    RP generation:

    quote:


    Let’s consider a sample ancient civ to give context to this RP production. Suppose that the small Snurb Empire has ten simple agricultural provinces. RP’s are generated by each of those provinces, and also by trade within my empire and contact with the neighboring tribes. In addition to this, my capitol has a library, university, theatre, and forum. I am working on building some roads and fortifications as well as maintaining an army to defend myself.

    Note that these numbers are just meant to be examples. Exact values will have to be determined by playtesting.

    It is reasonable that my provinces would generate a base average of 400 RP each and split most of it among the techs relating to basic activities of that province. Any techs relating to farming, daily living, and simple crafts are thus supported, as well as social techs and arts. The advanced capitol city makes 1000 extra RP’s that give extra support all the basic sciences and arts. My trading activity generates 700 RP’s and supports transportation, economics, and some production techs. The basic operation of my government and centralized religion makes 500 RP’s for techs related to government and management, literacy, social technologies, and arts. The building of the roads and forts generates another 500 for engineering, masonry, and construction techs. And the maintenance of my army gives me 300 RP for military techs. So I have 7000 RP’s. . .

    As I continue to develop my civ, the RP production will naturally grow. Those roads and forts will make travel and trading easier and safer, so there will be more RP generation in that area. As the provinces become more developed, they will generate more RP’s. My government will have to get bigger and do more, so I get more RP’s from that. And as I expand my territory, I come in contact with new people and use my military and diplomacy more. My tech should grow at a healthy rate.

    Note that most of the RP’s are used for specific things. The player would only have control over a small portion of the province RP generation and a larger proportion of the RP’s generated by the advanced cities. Everything else counts as RP’s that come from building or doing something, so they are assigned automatically.

    -----

    The only major change I would make is the implementation of a diminishing returns plan for all of the agricultural provinces. However, I would recommend that these diminishing returns be based on communication and transportation technologies, rather than a fixed scale. So the Snurb Empire would have pretty severe diminishing returns before the roads were improved, and the roads would lessen the effect.

    I'll assign new numbers to the provinces to better show how I think the diminishing returns should work. To keep the numbers the same so RP generation is proportional, I will multiply all province RP generation by five before applying diminishing returns. This may seem like a lot, but at this point the peasants would be supporting almost half the technologies.

    For reasons I will explain later, I am assuming that the most productive provinces are the ones closest to the capital.

    Old system RP generation:
    500, 450, 425, 410, 400, 400, 390, 375, 350, and 300.
    Total: 4000

    New system "True" RP generation:
    2500, 2250, 2125, 2050, 2000, 2000, 1950, 1875, 1750, 1500.
    Total: 20,000

    New system returns before roads:
    2500, 750, 200, 75, 25, 8, 3, 0, 0, and 0.
    Total: 3561

    New system returns after roads:
    2500, 1250, 625, 300, 150, 75, 40, 20, 10, and 5.
    Total: 4975

    Note that under this system, the provinces of a large empire with bad roads would produce less RP's than the provinces of a small empire with good roads. Thus good management is rewarded and ruthless expansionism is not.

    I have a preliminary idea for calculating these diminishing returns:

    1) The base RP generation for each province is calculated. RP gain from bordering a neighboring civ is added to the province in this step.

    2) This number is modified by a factor that measures the ability of ideas to go from that province to the capital. This represents the ability of people to put their work into the general pool of knowledge. This will have the effect of increasing RP production of provinces close to the capital.

    3) The provinces are listed in descending order of RP production.

    4) Final RP production is based on the following equation:

    RPf = RPi * C ^(L-1)

    where L is the position in the list and C is a communication factor based on the ability to share information among provinces. In the Snurb Empire, the road building changed C from about 1/3 to about 1/2.

    I think C should be averaged over the entire civ. If it was calculated by province, the player could concentrate on building up only the best provinces and leave the rest in the stone age.



    Tech Tags:

    quote:


    To help the AI and serve as a way to navigate the tech tree, we had planned for each tech to be assigned one or more interface tags. Each tag would be the name of the civ activity that the tech helps, and a number representing how much that tech helps. For example, a tech might be tagged with Agriculture:7 and Mining:2, meaning that it helps agricultural production a lot and mining production a little. The AI and the players can sort technologies by their tags, investing research in what is needed most. For example, a player would click on the Agriculture button in the tech interface, and all techs with an agriculture tag would be listed in descending order of the tag number.

    Rather than simply being a description, the interface tags can also have a direct impact on production using this new econ model. The ideal tech value T for some economic field can simply be a weighted average of the knowledge levels of all techs with that tag.
    ---

    The basic system hasn't changed much I posted it in the 5.1 thread, but some of the minor points have changed as the various models have evolved. To make sure we all know and agree on the system, I'll detail it here.

    Tags are the description of the tech's purpose and a number telling how important the tech is for that purpose. This number, known as the Z value, goes from one to ten, with one meaning minimally useful and ten meaning vital. If a tech is useless for something, it simply isn't tagged for that thing. Tags are used for the following purposes:

    They are the AI's primary method of dealing with tech growth. Other civs, you governers, and the people in a free society will use tags to decide what to research. Once the AI determines what areas needs to be researched, the tags are an easy way of telling it what specific techs to research. For example, if the computer is having chronic problems with rebellious provinces it invests in Happiness and Control technologies.

    Tags determine the fate of RP's generated by particular activities. These RP's are called Tagged RP's and are automatically spent on the techs relating to the activity that generated them.

    They provide the user interface for the technologies. The first layer of the interface is the tag, and the second layer is the name of the technology. It makes sense that to access a tech, players click on the tech's function. Note that one tech can be found in many places using this system. Alternately, a player that didn't want to get too involved with technology could just give RP's to the first layer if interface, and the RP's would be split among all the techs with that tag.

    In all of the previous three uses, the amount of RP's given to the technologies would be weighted by the tag number. A preliminary idea for distribution or RP’s would be to give each tech a percentage of the total RP spent as follows:

    For every tech, raise 2 to the power of Z/2 and then subtract one. Call this the Y value.

    Add up all of these values to find the X value.

    Each tech gets a percentage of the total RP’s spent equal to Y / X.

    When splitting RP's among tagged techs, some preference should be given to techs that are lagging behind. Not only will these techs be easier to gain and keep up, but they are also the techs that are probably holding things back.

    So there should be a temporary adjustment of the Z term for techs that are behind. It should be multiplied by some factor for every five tech levels that the tech is behind the average tech level of your techs with that tag.


    Tags are the main way that technology influences the other models. The economy model already has a way to make tagged techs impact the production outputs of a province. Other models can also use the weighted average of tech levels with the proper tag to influence things. I still think there is a need for an Alter Variable command to allow techs to fine-tune some specific part of another model, but the tags will be used for the changes in the big picture.

    Currently we have the following tags:

    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



    Helper Tech Changes: These were already been put into the spreadsheet.

    quote:


    The assumption in the current system is that a low level of a helper technology will hurt the tech growth of a tech. I recently realized that this is not a good assumption. Consider computers. Even when compuer technology was very primitive, say tech level 30, it was able to help research in much more established disciplines with a tech level of around 70. The presence of computers, even simple ones, is a lot better than the absence of computers. Yet the current RHL and H formulas would severely penalize tech growth as soon as early computers were added to the RHL formula.

    In fact, the current RHL and H formulae do not work whenever the helper technology and the technology being helped are not the same level. If the scaling rules are obeyed, technologies will rarely be at the same levels. I don't know why I dodn't catch this earlier.

    ....

    In earlier discussion, we agreed that the difference between helper and vital techs would simply be the magnitude of the h constant for that tech. But we have seen that that is not possible. For any h value, a system of techs that help each other has the possibility to rise without bound. So I propose that the formulas for helper and vital techs be differentiated. Vital techs would retain the formulas described above so that their benefits outweigh their upkeep, and helper techs will use a formula that eliminates the possibility of an infinite tech rise. Taking the square root of knowledge will work well, and it would be reasonable. We can assume that helper techs can only help so much, and at a higher knowledge level they cannot provide as much benefit. So:

    THL = h1(T1-Ts1+O1) + . . . hn(Tn-Tsn+On)
    where T1 through Tn are helper technologies
    H = MV^(THL/2W)

    TVL = h1(T1-Ts1+O1) + . . . hn(Tn-Tsn+On)
    where T1 through Tn are vital technologies
    V = MV^(TVL/W)

    H and V will multiply the excess RP's like H did before. Because these values will result in a larger V2 than before, I will have to change the numbers. c will have to be larger and m a bit smaller. The h1 through hn values will be smaller. W will have to be about 1.5 times the MV.



    For the full derivation of these equations, see this post.

    quote:


    While building the spreadsheet, I found a couple things that need to be changed. Previously, H and I only affected the excess RP's, the ones not needed for tech upkeep. I found that this can create problems. The marginal tech gain per RP will change a lot at the point where the tech change is zero. This creates instability, so I changed the equations so H and I affect all RP's produced. Tech growth is a lot more smooth now.

    Also, I needed to introduce a change in the naming system. Previously there were two things that were called Levels. The most common use referred to the tech level that changed based on RP input. However, a tech's place in the 3-layer tech hierarchy was also called its level, as in "Level 2 Technology." To avoid confucion, the tech's place in the hierarchy will now be called Tier, as in "Tier 2 Technology."


    This brings us up to the point where OO coding and design was introduced by F_Smith. That whole episode is nothing more than a dreamlike blur in my memory, and I get the definite impression that I did something horribly wrong and/or disruptive in my attempt to understand that syetem. So I'll leave the tech model at that and refer the coder to my spreadsheet, which as far as I know is still the working system for turning RP's into tech levels.

    Out of curiosity, has anyone else played with those spreadsheets? I went over them, but I might have missed something.

    On a side note, I think that the week I spent making the spreadsheet resulted in more advencement and correction of the tech dynemics than anything else I have done. While they may not be useful for a coding standpoint, they were a good way to help detect several important bugs in the model. Would it help if I made a Visual Basic program for the tech model? I might be able to come up with something decent, but would it be useful as a guide for Java coding?

    Comment


    • #17
      Though it's up to who will code the tech model to answer that, I think a VB program can't hurt. Though java is not much harder than VB, why don't you try to do it in java? The dynamics you present are basically formulas that will have to be coded almost the same in any programming language.
      Clash of Civilization team member
      (a civ-like game whose goal is low micromanagement and good AI)
      web site http://clash.apolyton.net/frame/index.shtml and forum here on apolyton)

      Comment


      • #18
        The reason for Java is cuz Mark wants this program to be cross-platform compatible as possible. VB is mainly a windows oriented program. Have problems, talk with him.
        Which Love Hina Girl Are You?
        Mitsumi Otohime
        Oh dear! Are you even sure you answered the questions correctly?) Underneath your confused exterior, you hold fast to your certainties and seek to find the truth about the things you don't know. While you may not be brimming with confidence and energy, you are content with who you are and accepting of both your faults and the faults of others. But while those around you love you deep down, they may find your nonchalance somewhat infuriating. Try to put a bit more thought into what you are doing, and be more aware of your surroundings.

        Comment


        • #19
          The problem is that I don't know Java, despite numberous efforts to learn the language.

          I know that the VB program won't be used in the actual game. It would be like the spreadsheet; a testing tool.

          Comment


          • #20
            Hi All:

            Thanks for the recap Richard! That will be useful. BTW I still really don't like the by-province diminishing returns idea. I think the general diminishing returns idea is sound but... The theme I'm trying to stick with is that changes in provincial configuration should have only very small game effects, and your model violates that. Could you try and consider something that just applies diminishing returns on the total RP generation without considering how RPs are bundled into provinces? Anyway, in trying to keep with my code more / discuss less philosophy I will leave it there.

            I have not checked out your spreadsheet at any length. I would happily do it, but think I should stay focused on coding. If we don't turn up a team member that's happy to do it, perhaps you could put an advertisement thread up and see if a lurker is interested. If no one else gives it a good going-over I will try to do so before I start the coding.

            By the way, I made a suggestion for reconstructing Axi's visitor thread, it's now about three posts from the end of that thread. If anyone is interested in starting a new visitor's thread (my suggestion is discussed in more detail there) I think it's a good idea.

            Your VB idea is intriguing! I think such an exercise would definitely be of value. Just as an estimate off the top of my head, I think if you did the whole thing (say taking a month) it would save me at least a week of the month it would take me to do it. That's is in addition to what ever improvements come out of the model from having the testbed available. However, I think Laurent's point about trying it in Java merits just a bit more discussion... if you were to take a stab at it in Java, it would make my progress when I start much faster. Allow me to suggest that you were too easily shot down by F. Smith's notions of the way things Must be done. If we were to work on the tech model interactively together in Java, it probably still wouldn't meet those specs of his, but it would Work, and allow fairly rapid testing of the Tech model. Just let me know which way you're inclined to go and I'll give you my thoughts on the best way we can collaborate whichever way you choose.

            Project Lead for The Clash of Civilizations
            A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
            Check it out at the Clash Web Site and Forum right here at Apolyton!

            Comment


            • #21
              I've re-thought what I really need to do on the Econ side, and provided nothing blows up in work or real life, I might be able to start as early as this weekend . So lets forget the possibility of VB and stuff like that...

              Richard, can you go over your spreadsheet one more time, with almost-fresh eyes since you haven't probably looked at it in a while? It might be worthwhile to update the spreadsheet with the final versions of the equations (if its not already) so the global variables MV and GV are used etc. That way I could just use the spreadsheet as a guide, and compare my numbers to its numbers as a check for bugs. (I'm assuming you can do turns and RP use in some fashion.) I built the econ model that way, using my econ spreadsheet as a sanity test, and it was quite useful in the early going.

              And please give me some ideas for small bits we can test individually. One idea for something fairly contained is to just do the basic web first so we only get the tech growth itself. There would be nothing other than the level of the tech. So we could shoot in arbitrary numbers of RPs and see how things grow in level with time. At least that's the best first step I could come up with...
              Project Lead for The Clash of Civilizations
              A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
              Check it out at the Clash Web Site and Forum right here at Apolyton!

              Comment


              • #22
                The spreadsheet does have the final equations. All the haggling in the past several months has been over RP production, which the spreadsheet couldn't care less about. I already looked over it a little yesterday, and it seemed okay. I can give it a more thorough going-over this week.

                Right now it has ten techs that can be linked in any way via helper and vital techs, privided the user knows how to edit a couple equations. It would be trivial to copy-paste more techs in.

                The smallest bit I can think of is a program that duplicates the functionality of the spreadsheet.

                RP idea:

                It ocurred to me last night as I was planning the VB project that RP should be based on labor input, not product output. If it was based on output, the system could easily reinforce itself too much and spiral out of control, as higher tech level led to more output, ad infinitum. Besides, it is logical to base it on labor input, sonce that is the amount of thought that perople will put in to the technology, so it wouls be distinctly related to the amount of ideas generated.

                So we measure the amount of labor that the civ puts into acivities that are labeles with each tech tag. We can then run the diminishing returns based on that; raising it to a simple exponent will do for now.

                Comment


                • #23
                  Hi Richard:

                  Duplicating the spreadsheet for a first step sounds fine. BTW, could you email it to me, just to make sure I have the current version...?

                  It would be good if you could simulate Tech growth from a given number of RPs in the spreadsheet. But if its too much work, don't bother.

                  On labor as producer of RPs... While what you say makes some sense the scaling law that the whole system is built around assumes RPs are proportional to GDP not labor. I think it should work fine using the previous plan without the change to a labor footing. Think about it, and if you don't buy it, I can give several other reasons, but I don't have time to comment at length since I'm at work. In any case it shouldn't be pure labor, but labor with an education multiplier or something.
                  Project Lead for The Clash of Civilizations
                  A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                  Check it out at the Clash Web Site and Forum right here at Apolyton!

                  Comment


                  • #24
                    Hi Richard:

                    I haven't actually done any coding yet, but I am thinking about this stuff. I have a few questions, and to make life easier on myself I will just quote where they come from...

                    quote:

                    Originally posted by Richard Bruns on 02-29-2000 05:14 PM
                    I would like the tech tree utility to do the following things. If anything here is not feasible, please let me know.

                    1. Set default values for m, c, W, and DR.

                    2. For every technology, input:
                    a. Technology name and text description.
                    b. The level of the technology.
                    c. Technology requirements and Ts.
                    d. Values for m, c, and DR. It would be a big help if these were defined in terms of the defaults (default c times some value). This way, we can change the default values and not have to redo individual values; they would keep the same ratio.
                    e. Helper technologies with O and h for each helper tech, as well as a W value defined in terms of the default value.

                    It would be nice if parts a through e were in different sections. Also, space should be left for the the Alter Variable section and sections dealing with E and I.

                    3. For every application, input:
                    a. Application name and text description.
                    b. The L value of the application.
                    c. Technology requirements with an h value for each requirement.

                    Later, the application editor should have much more functionality, but that is all we need for now.

                    With this editor, we should be able to define a technology like:

                    a. Farm Machinery and Equipment
                    b. Level 3
                    c. Requires: Agriculture 10% Ts: 10
                    d. c=default*.7 m=default DR=default
                    e. Helpers: W=default
                    Agriculture h=3 O=0
                    Mechanical Engineering h=2 O=2
                    f. (later) E=default
                    g. (later) I=default
                    h. (later) Alter Variable commands (more food, etc.)

                    [This message has been edited by Richard Bruns (edited February 29, 2000).]


                    On the tech builder, unfortunately I think I can do it quicker by starting from scratch than by using what Garth has, and figuring out everything he is doing. You say just after section 2 in the quote above "It would be nice if parts a through e were in different sections." If that is really the way you want it, I can try and do it that way. But it seems to me it would be much more functional to have everything for a single tech laid out on one editing screen so to edit the tech you don't need to push a zillion buttons and click OK as many times just to enter an exit all the different fields. What I have in mind is to put everything on one big editing console with something like three slots each for helper and vital technologies. (Maybe better would be to give five or six total slots and just have each one have a check box for whether it's a helper or vital, since the parameters are the same in either case.) So basically let me know if you are comfortable with the way I'd prefer to do it. I know I personally hate opening and closing lots of little things when a simple screen can give you all the information.

                    Also, in reef familiarizing myself with the model, I find out I still don't understand exactly what you are doing in the distinction between helper and vital tech's. Here's what you have:

                    quote:


                    THL = h1(T1-Ts1+O1) + . . . hn(Tn-Tsn+On)
                    where T1 through Tn are helper technologies
                    H = MV^(THL/2W)
                    TVL = h1(T1-Ts1+O1) + . . . hn(Tn-Tsn+On)
                    where T1 through Tn are vital technologies
                    V = MV^(TVL/W)

                    H and V will multiply the excess RP's like H did before (snip)



                    The final effect comes from multiplying H and V. So HV = MV^(THL/2W) * MV^(TVL/W) = MV^( (THL/2 +TVL)/W)
                    So all you appear to be doing is rescaling the already arbitrary h1...hn in the THL formula by dividing them by 2! So as far as I can tell the distinction between helper techs and vital ones is arbitrary, and we should just use differences in the weighting factors as before . What have I forgotten that invalidates this argument?

                    One more thing... Can we just weight tags by %? Agriculture 40% / Production 60% seems a lot easier to me than juggling your formula to get the values one is after.
                    Project Lead for The Clash of Civilizations
                    A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                    Check it out at the Clash Web Site and Forum right here at Apolyton!

                    Comment


                    • #25
                      Why don't we use text files (or xml) rahter than build a UI to customize the techs? It is not as pretty as a dedicated UI but it is more flexible and the same code could be used to parse tech files, military unit files, and whatever else needs customizing.
                      Clash of Civilization team member
                      (a civ-like game whose goal is low micromanagement and good AI)
                      web site http://clash.apolyton.net/frame/index.shtml and forum here on apolyton)

                      Comment


                      • #26
                        Parsing text is ok by me... But we need to see what Richard, who will probably be entering literally hundreds of techs, thinks of the idea!

                        Richard, what do you say? It would save me a lot of time, but I think cost you alot also!
                        Project Lead for The Clash of Civilizations
                        A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                        Check it out at the Clash Web Site and Forum right here at Apolyton!

                        Comment


                        • #27
                          By "section" I meant a frame, not a form. I wanted them all on one form, but with divider lines or something to keep the different sections seperated, so it wasn't just a confusing sea of text boxes. I did want them all on one page (form), if possible. But that's not really important, especially if there won't be an editor. What is xml and how does it work? If it is much more complex than the Civ 2 text files, it will be hard for people to design scenarios, and we would have failed in one of our goals.

                          ---

                          Mark's point about the helper and vital techs let me to do a large amount of math and testing in an attempt to learn about the nature of indefinite rises in technology. The point was quite simple and valid, but it led me to backtrack several assumptions, mess with a lot of equations, and run many tests. I won't go into details unless someone asks for them, but a small math error in my initial calculations has come back to haunt me. The distinction between helper and vital techs is in fact arbitrary, but the scenario designers must know several caveats about helper techs:

                          In certain situations is is definitely possible for the system to go "critical" and take off, with the same amount of RP input leading to an ever increasing rise in the knowledge level. This contradicts the assumption that higher tech levels should result in more upkeep costs and therefore lower tech growth. This effect is more likely to occur when large numbers of RP's are being put into the system; it is hardly noticeable at lower tech levels and low levels of RP input.

                          There are several things to do to prevent this:

                          The W multiplier must be at least 2 times as large as the sum of the h values. 3 times as large or more is preferable.

                          c*E must be approximately ten times as large as m*I.

                          Adding a diminishing returns effect to the base RP's is a powerful way to restrict this growth. (Note that this is different from any diminishing returns scheme in calculating RP production.)

                          Interestingly, the course of technology in the past 200 years is quite similar to the behavior in the model that occurs to this 'bug'. I wonder if we could take advantage this thing and aim for rapid tech growth once a certain point is reached. That would be risky, but if it works, it would be great.

                          ---

                          Mark, I don't understand what you meant about the tech tags.

                          Comment


                          • #28
                            Hi Richard:

                            OK, then we had similar ideas about the tech designer. If we make it . XML is like HTML, but the tags can be anything. I given example at the bottom of this of what things might look like both using simple text files, and XML. The ordinary text files just specify in a rigorous format what the name of the technology, and all its parameters and helpers etc. are. My real XML knowledge is basically nonexistent, so I'm kind of faking it in the example, but I think you can get the general idea. I had to use ' (' instead of ' < ' in the pseudo-XML because otherwise the BB software thinks it's HTML.

                            But the most important point is figuring out what to do to get this stuff going as efficiently as possible. You have to trade off your effort involved in cutting and pasting together a large text file with just entering values into the Tech builder. At a guess the tech builder will take me six to eight hours to put together. And we do need one eventually, so my take at this point is I should probably just buckle down and to do it. The software builder could also have useful features such as automatically figuring out a one-turn tech gain for the tech entered given a set of tagged RPs. You could even eventually add a feature to check for "criticality" of the existing system automatically.

                            [this para edited for clarity (said could when meant couldn't... 3/10/10]
                            Thanks for digging in and doing all the re-checking on the system. In addition to the rules of thumb you suggest to prevent criticality, I think there are possible "global" solutions. For instance we could put a limitation in the system that H couldn't have an effect larger than x2. Any larger effect would be simply treated as X2 Some limit like that could well kill the criticality for all likely sets of inputs and helper tech values.

                            Here is what I meant on tech tags...
                            quote:


                            For every tech, raise 2 to the power of Z/2 and then subtract one. Call this the Y value.

                            Add up all of these values to find the X value.

                            Each tech gets a percentage of the total RP’s spent equal to Y / X.

                            When splitting RP's among tagged techs, some preference should be given to techs that are lagging behind. Not only will these techs be easier to gain and keep up, but they are also the techs that are probably holding things back.

                            So there should be a temporary adjustment of the Z term for techs that are behind. It should be multiplied by some factor for every five tech levels that the tech is behind the average tech level of your techs with that tag.



                            Rather than having numbers like 7 in 2 for the tags respectively, you could just use percentages and skip your whole thing with Y. But in retrospect to given the other numbers in the system are mostly on a 0-10 scale, I've changed my mind in think we should just leave it the way you have that for the moment.

                            Examples referred to above for various types of input file:

                            Text file:

                            Tech: Farm Machinery and Equipment, Level 3
                            Requires: Agriculture 10%, Ts: 10
                            c=default*.7 m=default DR=default
                            Helpers: W=default
                            Agriculture h=3 O=0
                            Mechanical Engineering h=2 O=2
                            (later) E=default
                            (later) I=default
                            (later) Alter Variable commands (more food, etc.)

                            Tech: Small Animal Abuse, Level 3
                            Requires: None, Ts: 10
                            c=default*.7 m=default DR=default
                            Helpers: W=default
                            Agriculture h=3 O=0
                            Herding h=8 O=2
                            (later) E=default
                            (later) I=default
                            (later) Alter Variable commands (more food, etc.)

                            End text file

                            Pseudo XML:

                            (Tech)
                            Farm Machinery and Equipment
                            (Level) 3 (/Level)
                            (Ts) 10 (/Ts)
                            (Requires)
                            (Req) Agriculture (ReqLevel)10% (/ReqLevel) (/Req)
                            (/Requires)
                            (/Tech)

                            I only giving one example here because this is a real pain to write. But once you have a template that you can copy and paste in it wouldn't be quite as bad.

                            [This message has been edited by Mark_Everson (edited March 10, 2001).]
                            Project Lead for The Clash of Civilizations
                            A Unique civ-like game that will feature low micromanagement, great AI, and a Detailed Government model including internal power struggles. Demo 8 available Now! (go to D8 thread at top of forum).
                            Check it out at the Clash Web Site and Forum right here at Apolyton!

                            Comment


                            • #29
                              I'm pretty good at copy-pasting, so it might not take much longer than entering into an editor. When fiddling with Civ2, I always use the text files rather thna the Fantastic Worlds editors. Of course, our editors would be a lot better, but xml might be a reasonable alternative if it would save you time. We do need an editor eventually, but at this point in the development process we can afford to delay user-friendliness.

                              Perhaps we can go with the xml now, and then later we can generate an editor that writes the xml automatically. That way 'power users' would still have the option of using the xml directly, and others will have a friendly interface. But for now, it seems that I can certainly use xml without a problem.

                              ---

                              When dealing with the numbers like tech tags, remember that we are dealing primarily with the language the machine uses, and not the displays that the player sees. IIRC, one of your main worries about the current system was that it would be hard to read the tech levels and determine status if they were all different. You wanted to equalize all techs so that it would be easier for the player to see the tech status. If the player simply saw a big readout of tech levels, that would be a valid point. But the player will never actually see those numbers in teh normal course of gameplay. I think that, in order to make a more friendly game, we should avoid numnber-laden displays as much as possible. I'll bump the interface thread where I described the tech interface I imagined.

                              Comment


                              • #30
                                quote:

                                Originally posted by Mark_Everson on 03-09-2001 05:59 AM
                                Pseudo XML:

                                (Tech)
                                Farm Machinery and Equipment
                                (Level) 3 (/Level)
                                (Ts) 10 (/Ts)
                                (Requires)
                                (Req) Agriculture (ReqLevel)10% (/ReqLevel) (/Req)
                                (/Requires)
                                (/Tech)
                                [This message has been edited by Mark_Everson (edited March 09, 2001).]


                                Actaully, XML can be even simpler. The above is valid, but I show what it can be below.
                                I want to stress that the advantages of XML are:
                                -You can change the order of tags (attributes) the way you like
                                -You don't have to specify values which are all worth the default value.
                                (e.g. in civ2 armies usually have tags of special properties like: 00000000, which are repeated always every line - you can just omit them in XML)
                                -You can enrich the format without breaking all existing files.

                                Mark's example rewritten:
                                <Tech>
                                Farm Machinery and Equipment
                                <Level l="3" />
                                <Ts t="10" />
                                <Requires>
                                <Req> Agriculture <ReqLevel l="10%" /> </Req>
                                </Requires>
                                </Tech>

                                Please note that I don't want to push xml over text (I'm a vi-user, which means I like user interfaces that make other people sick), but I'd like a file-based system.
                                Mark, you can use & l t ; (without the spaces) to make a < (and gt for > ).
                                [This message has been edited by LDiCesare (edited March 09, 2001).]
                                [This message has been edited by LDiCesare (edited March 09, 2001).]
                                Clash of Civilization team member
                                (a civ-like game whose goal is low micromanagement and good AI)
                                web site http://clash.apolyton.net/frame/index.shtml and forum here on apolyton)

                                Comment

                                Working...
                                X