Announcement

Collapse
No announcement yet.

Technology Model 7

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Richard Bruns
    Yes, there can be a boost in new technologies at first. But if they did pump enough cash into Gunpowder to send it to a Knowledge of 6 instead of 2, then the helper term would still multiply RP's by 2 but the Upkeep term would divide them by 4 (6*0.5 + 1), so all future research would only be half as effective.
    Yes, at least there is diminshing returns, but still I think there will be problems with disproportionate returns for research in new technologies this way.

    If it does end up as a problem, we can design the system so that later technologies are supposed to jump at first, so for example they wouldn't get a decent gunpowder unit until Knowledge of 5.
    I would rather just arbitrarily increase the upkeep of breakthrough techs as required for playbalance. If Gunpowder has a large upkeep value, then the problem can go away. I think this will be needed, but am willing to wait until playtesting of the new model to worry about it.

    One issue with the new upkeep approach is that techs can no longer backslide. I don't think that is a big loss. It could be patched by events that put negative RPs into the tech model, or arbitrarily change the knowledge directly if we need it.
    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


    • #17
      Originally posted by Mark_Everson
      One issue with the new upkeep approach is that techs can no longer backslide. I don't think that is a big loss. It could be patched by events that put negative RPs into the tech model, or arbitrarily change the knowledge directly if we need it.
      This IMO is a major issue, but not a priorital issue. There are too many instances of technology backsliding and completely disappearing not to have it put into there.
      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


      • #18
        One issue with the new upkeep approach is that techs can no longer backslide. I don't think that is a big loss. It could be patched by events that put negative RPs into the tech model, or arbitrarily change the knowledge directly if we need it.
        If needed, adding an upkeep threshold whcih says the x first RPs are used to prevent sliding as per the old formula, then the next RPs are for >0 growth, should not be too somplicated.
        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


        • #19
          If we need to, we can add the old upkeep back to the system. But I have come to agree with Gary: historically, tech only really goes backwards if an entire civilization, like the Romans, collapses. Besides, I really like the new simplicity of the system.

          Compare my new spreadsheet to the old one to see what I mean. As I mentioned earlier, I have once again created an iterative spreadsheet where the tech system is modeled as a single tech that serves as a helper for itself. I uploaded it to my website, which you can get to by clicking on the www link on any of my posts.

          Plus, lack of backsliding makes for fewer worries about what happens when techs fall below the required values for applications and helped techs.

          So now what we need to do is agree on the final xml spec so I can update my online tech editor and start coding the tech tree.

          Comment


          • #20
            Originally posted by Richard Bruns If we need to, we can add the old upkeep back to the system. But I have come to agree with Gary: historically, tech only really goes backwards if an entire civilization, like the Romans, collapses. Besides, I really like the new simplicity of the system.
            Well generally that is, but not always.

            After Zheng He's 5th voyage, when China turned inward, it destroyed all the knowledge they had gained from his voyage, including new ideas and technologies. The dynasty didn't fall or wasn't in the instability to fall for almost a century afterwords.

            But mostly, backwards sliding is more appropriate with reguards to specific applications, not overall technology outside the above circumstance, but as it stands now, even that won't happen. This is true even as later as the twentieth century.
            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


            • #21
              Originally posted by Richard Bruns
              So now what we need to do is agree on the final xml spec so I can update my online tech editor and start coding the tech tree.
              Agree completely, pushing the tech system out to span more of human activity, and getting it to at least the end of classical antiquity would make a dawn-like scenario a real game all in itself.

              I didn't get a chance to check out the new spreadsheet yet, but based on its description I have one further thought. I think it would be good to test a slightly larger system before we finalize the spec.

              I picture something like three techs, A and B are both basic and available from the begining. A helps both A and B, and B helps both also. C turns on when A = 10 and B = 20 or some such, with A and B as helpers. And C helps at least one of the techs. If you just run the economic generation of RPs as you specified before you should see the effect that C turning on has on growth in A and B, and see how C grows. This will test a little better that your current solution works, and that the xml spec can be determined using your current model. It seems to me everything will be ok, but it might be illuminating if we're overlooking 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


              • #22
                Done and uploaded. The system tested is as follows:

                Math has no helpers
                Chemistry is helped by Math and Physics
                Physics is helped by Math and Gunpowder
                Gunpowder turns on when Chemistry is at 20, and is helped by Chemistry.

                Things seem to be going properly, with tech growth at the expected rate when intelligent upkeep numbers are chosen. By the end, the knowledge numbers were as follows:

                Math 262
                Chemistry 245
                Physics 193
                Gunpowder 18.2

                The spreadsheet isn´t very user-friendly, but you can play with it if you want. Helper equations have to be entered manually, and tech breakthrough involves some messy spreadsheet logic, also manually entered. What I did was to keep RP and knowledge at zero for techs that come later, and when the requirement is met, the spreadsheet gives the tech one RP, which then grows at the listed rate.

                An interesting property of this method is that the new tech spends several turns between knowledge of zero and one. I think that this is perfectly reasonable, since it represents an amount of knowledge that has no practical purpose yet but is still being developed.

                In response to Mark´s question about unequal growth, I increased the amount that Gunpowder gets when it is discovered. At that point, the other techs were all getting about 11 RP´s, and I bumped up the initial RP allowance of Gunpowder to 4. Note that the "proper" RP number for Gunpowder at this point would be 1/20th of the others, or 0.5, so it was already getting a bigger slice of the pie than it deserved. Then, the ending numbers were:

                Math 262
                Chemistry 247
                Physics 201
                Gunpowder 40.8

                So quadrupling the number gives 2.4 times the previous tech level. I think that is balanced, and shows that upkeep is doing its job.

                Comment


                • #23
                  Thanks Richard, that was informative. I checked out the spreadsheet and was also able to do a test of my own quickly with it.

                  My issue with what you did is that Gunpowder turns out to be a completely negligible helper of Physics. Since its knowledge will always be an order of magnitude below Math, giving it the same weight as math guaratees that Gunpowder will never have a substantial effect. So I arbitrarily multiplied the weight of Gunpowder as a helper to Physics by a factor 20 relative to what you had. (Since Math is ~20 when Gunpowder is discovered)

                  The behavior is still good and smooth with the Physics knowledge curve passing from under Chem and Math to over as Gunpowder gains in knowledge. The new final value of Physics is 277.

                  I expect most techs that lag in being discovered will need to get a boost as helpers in the system when its in use. This seems to give the kind of results we'd expect.

                  The new take on tech seems to work great! Changing over shouldn't require too many changes in the coded tech model. Do you want to propose some new names for the xml spec? And we need to figure out a coder to make the changes given Gary's absence. I can do it, although I think Laurent now has a bit more experience with the model.

                  Laurent, are you game to make the tech model changes, or would you prefer I do it?
                  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
                    Laurent, are you game to make the tech model changes, or would you prefer I do it?
                    OK. I'll start coding it next week.
                    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


                    • #25
                      Originally posted by LDiCesare

                      OK. I'll start coding it next week.
                      Thanks Laurent! I think Richard's new scheme will work great

                      Of course, we'll need to tweak it, but I think with the heavy involvement of military in tech I bet you'll spot any issues first!

                      Cya,

                      Mark
                      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


                      • #26
                        Originally posted by Mark_Everson
                        My issue with what you did is that Gunpowder turns out to be a completely negligible helper of Physics. Since its knowledge will always be an order of magnitude below Math, giving it the same weight as math guaratees that Gunpowder will never have a substantial effect.
                        Excellent point. I completely missed that.

                        So I arbitrarily multiplied the weight of Gunpowder as a helper to Physics by a factor 20 relative to what you had.


                        That is not arbitrary at all. It is the proper adjustment.

                        The behavior is still good and smooth with the Physics knowledge curve passing from under Chem and Math to over as Gunpowder gains in knowledge. The new final value of Physics is 277.


                        This worries me a little, as it indicates that the helpers are outrunning the upkeep. The Math tech shows what happens when helpers equal upkeep, and although it probably isn´t really necessary I´d like to keep helpers at or below below upkeep. In the adjusted case, the helpers should exactly equal the upkeep of 2.0, but they don´t because Gunpowder is rising at a faster rate than the rest of the technologies. When I changed the Gunpowder RP input to 0.5 so it rose at the same rate as the others, Physics started to rise at about the same rate as Math. Since new techs will probably rise at a faster rate in the game, the upwards adjustment to their helping should be less. Keeping Gunpowder RP at 1 and changing its HelperTechEffect to 1 works well, duplicating the 0.5 and 2 numbers.

                        So we have the following design guidelines:

                        For techs that start at the same time, Upkeep should be equal to or slightly greater than the sum of the HelperTech Effect numbers. For other techs, adjust as follows:

                        The helpers of new techs should have their HelperTechEffect numbers divided by their knowledge when the new tech is discovered.

                        New techs that help old techs should have their HelperTechEffect number multiplied by half the knowledge of the old tech when the new tech was discovered.

                        And my shot at adjusting the xml. I don´t see the designers ever using diminishing returns, so I vote for ditching them, but we still need a global value for overall system adjustment. Note, however, that since both helper techs and upkeep now depend on knowledge, having a global for each is redundant, since multiplying one is exactly the same as dividing another.

                        This file duplicates the spreadsheet tech system after multiplying Gunpowder´s effect by 10:
                        Code:
                        <xml>
                        
                          <globals>
                            <growthrate>0.1</growthrate>
                            <upkeep>1</upkeep>
                          </globals>
                        
                          <technology>
                            <name>Math</name>
                            <tier>0</tier>
                            <growthrate>1</growthrate>
                            <upkeep>0</upkeep>
                          </technology>
                        
                          <technology>
                            <name>Chemistry</name>
                            <tier>1</tier>
                            <growthrate>1</growthrate>
                            <upkeep>0.25</upkeep>
                            <helper>
                              <name>Math</name>
                              <requirement>0</requirement>
                              <effect>0.1</effect>
                            </helper>
                            <helper>
                              <name>Physics</name>
                              <requirement>0</requirement>
                              <effect>0.1</effect>
                            </helper>
                          </technology>
                        
                          <technology>
                            <name>Physics</name>
                            <tier>1</tier>
                            <growthrate>1</growthrate>
                            <upkeep>0.2</upkeep>
                            <helper>
                              <name>Math</name>
                              <requirement>0</requirement>
                              <effect>0.1</effect>
                            </helper>
                            <helper>
                              <name>Gunpowder</name>
                              <requirement>0</requirement>
                              <effect>1</effect>
                            </helper>
                          </technology>
                        
                          <technology>
                            <name>Gunpowder</name>
                            <tier>2</tier>
                            <growthrate>1</growthrate>
                            <upkeep>0.2</upkeep>
                            <helper>
                              <name>Math</name>
                              <requirement>20</requirement>
                              <effect>0.01</effect>
                            </helper>
                          </technology>
                        
                        </xml>
                        Edit: HTML error
                        Last edited by Richard Bruns; January 13, 2003, 16:50.

                        Comment


                        • #27
                          I'm in reasonable agreement with everything you said, Richard. Your rules of thumb sound generally right, and are close enough to use for a first pass at it. We can tweak later. On diminshing returns, I'll leave it up to Laurent as to whether he wants to update the code for it, or just make the code involving diminishing returns inactive ('commented out' in programmer jargon). We certainly won't use it in the near future.

                          RP generation

                          I think we do need to redo the military RP generation from combat sometime soon. The current method essentially reduces to a bigger civ getting more RPs. In my readings from history the most innovation comes:

                          1. when the state is severely threatened
                          2. when you Lose battles where you have higher manpower committed
                          3. when the military is not overly-fond of their traditional methods (Mamelukes were great in their day, but when they went up against serious gunpowder armies they got slaughtered)
                          4. when state funds are put into military research, but this is mostly true only after classical antiquity, I think.

                          I've put these up to help us start on what themes we can agree on for military RPs. It shouldn't start that complicated since some of the other program attributes that would relate aren't in yet.

                          I have similar thoughts about the economic RPs depending upon political freedom, free markets, tax rates, etc. But those will best wait until the govt model is functional.
                          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


                          • #28
                            There is one possible quick fix for the battle RP generation: give each civ involved in the battle a number of RP´s proportional to the total cost of troops and fortifications on both sides. The civ that loses the batle gets double the RP´s of the civ that wins.

                            I think we need to consider issues regarding tech activation. We have not defined exactly what has heppened when a tech is inactive or active. My vote is that an active tech is simply one that the civ is capable of feeding RP´s into, so a tech could be inactive but still have a nonzero knowledge level. I believe something was mentioned earlier about techs such as Woodworking stopping at a certain point. I see no problem with turning them off at a certain knowledge level, so that they still act as helpers as normal but don´t eat any more RP´s.

                            I think there is a need to make a system for handling techs like Horses or Iron-Working that only become available once the civ has access to a special, either by discovery or trade. I know you already handled Horses in the code somehow, and I know that the tech model wasn´t involved. Can we add special activation to the tech xml spec?

                            Code:
                              <technology>
                                <name>Horses</name>
                                <required>Special</required>
                                <tier>2</tier>
                                <growthrate>1</growthrate>
                                <upkeep>0.2</upkeep>
                                <helper>
                                  <name>Biology</name>
                                  <requirement>0</requirement>
                                  <effect>0.2</effect>
                                </helper>
                              </technology>
                            Other types of things could go in the <required> tag, for example diplomacy related techs that are not activated until contact is made with anouther civ.

                            Edit: I can never get those escape sequences right the first time.
                            Last edited by Richard Bruns; January 14, 2003, 05:06.

                            Comment


                            • #29
                              I agree with pretty much everything you said, Richard.

                              Originally posted by Richard Bruns
                              There is one possible quick fix for the battle RP generation: give each civ involved in the battle a number of RP´s proportional to the total cost of troops and fortifications on both sides. The civ that loses the batle gets double the RP´s of the civ that wins.
                              Sounds reasonable for a start. I need to think a little bit on whether its going to motivate the player to do silly things like suciding single units against big strong positions just for the RP benefit. I think there is a danger in that with this proposal, but with a few tweaks it might protect against them. A fix of figuring it as you said, but limiting the RP gain for a given civ to be proportional to 5x the cost of units and forts thrown into the battle on that civ's side might do it.
                              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


                              • #30
                                On diminshing returns, I'll leave it up to Laurent as to whether he wants to update the code for it, or just make the code involving diminishing returns inactive ('commented out' in programmer jargon). We certainly won't use it in the near future.
                                I will leave them there for now, since not putting a figure doesn't change anything. I'll just update the upkeep formula.

                                For battle RP generation, I can have anything as complicated as you like:
                                I'd tend to have things like:
                                (own units in battle cost + own units lost cost) * factor,where factor is the lower of:
                                1 or (cost of own troops/cost of enemy troops).
                                That prevents players from sending kamikaze, but gives a bonus to lost battles, particularly against "weaker" armies. Addresses Mark's point 2, and kamikaze behaviour.

                                This could be increased if in own territory (+50%), even more if in a province capital (+50%, total +100%), and even more in the civ capital (total +200%). Addresses Mark's point 1.

                                Military tech provides RPs already so point 4 is taken care of.

                                The third point I have no idea how to take into account, unless we add some social stuff to the RP generation, but let's not code that soon...
                                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