Announcement

Collapse
No announcement yet.

Technology Model 7

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

  • #46
    I think that it would be good policy to always model tech advance as RP input rather than direct knowledge adjustment.
    Would that work when enabling a new tech? What was its start knowledge before being enables so it becomes one after receiving RPs? Was it 0 or was it 1 and marked disabled?
    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


    • #47
      Originally posted by LDiCesare

      I think that it would be good policy to always model tech advance as RP input rather than direct knowledge adjustment.


      Would that work when enabling a new tech? What was its start knowledge before being enables so it becomes one after receiving RPs? Was it 0 or was it 1 and marked disabled?
      You know, its probably easiest to allow both ways, arbitrary knowledge setting, and RP bonuses. That way if a scenario designer doesn't really much care, and doesn't want to reverse-engineer to find out what the avg. RP bonus should be, they can just set k = 1. And the richer but more complicated option would also be open to them.
      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


      • #48
        I have coded the new knowledge update equations (helpers included).
        Mark, do you know if a technology update cycle is run at the beginning (or before) the first turn? It should in order to have active techs with helpers to become active.
        I realize there are a number of variables which are no longer needed, or have no effect on the game mechanisms.
        I got rid of most of them.
        I have a question: Does tier have any effect on the equations? Right now it looks like it is just a classifying tool with no effect on the game.
        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


        • #49
          Hi Laurent:

          Originally posted by LDiCesare
          I have coded the new knowledge update equations (helpers included).
          Sounds great! When do I need to update the econ tech stuff?

          Mark, do you know if a technology update cycle is run at the beginning (or before) the first turn? It should in order to have active techs with helpers to become active.
          AFAIK there is no initial tech turn. I did some looking and also could find no evidence of one. Rather than a whole initial tech turn can you just do a sweep to make sure everything that is active is set that way?

          I have a question: Does tier have any effect on the equations? Right now it looks like it is just a classifying tool with no effect on the game.
          So far just a classifying tool. But we should be using it in any new tech interface. Even updating the current tech button popup to organize by tier would be a good idea IMO. Thoughts?
          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


          • #50
            Sounds great! When do I need to update the econ tech stuff?
            There seems to be only an impact on SectorInfo.java Since it returned the techLevel, I guess that SectorInfo needs some reworking. Making use of xml files looks like a good idea, as it would allow to check whether the application stuff works fine for non military areas, however it can still be hard coded.
            I commented the line away, you should replace the .add thing by a multiplier. Most classes didn't change, although I removed a lot of now unused variables.

            The point is that the tech knowledge is a multiplier, whereas you had an addition of 1 per techlevel. I think that only impacts farming, but I may be wrong.

            Also, we have to decide what knowledge values are used in the various scenarios. I suppose 1 in Dawn and Jericho is OK, but what values would be "realistic" for Delenda and Attila?
            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


            • #51
              As far as I remember, I didn´t suggest the type-element tag, it was in the xml file that I inherited from Gary. That Charger xml I have been using came directly from something he posted a while ago.

              Splitting all applications up into different files and keeping everything in those files sounds very good. I´ll have to download the most recent demo and have a look in the files so I know how to deal with them. I´m not promising anything, but I may be able to make web-based editors for all types of applications so we don´t have to make them by hand. What applications do we have in the code that are not military units, and how should the tech data be inserted into those files?

              The method I prefer for activating tech is to keep knowledge at zero until the tech is activated, at which time the player puts RP´s into it until it hits knowledge of one. But simply setting knowledge to one when it is discovered shouldn´t hurt anything. It may lead to a somewhat sudden jump in the things that tech helps, however, so we need to see if that is a problem.

              The tier of a tech only really affects the interface. Later on, we will probably have to add other things that affect the interface, like descriptions or pictures, or the thing that the advisor says when teh tech is discovered or reaches a certain level.
              I would set all of the knowledge values to 4 for the scenarios that involve Romans.

              Comment


              • #52
                Thanks Laurent, those changes should be simple to make.

                Although it does bring up an Agriculture issue I am wrestling with. From what I have read agriculture roughly plateaued in productivity for much of classical antiquity. The bigger population gains came from farming on additional types of soil, and with somewhat improved crops. So agricultural productivity (Farming tech mostly) should probably change only from 1 to like 1.5 or at most 2 by the later scenarios. Any greater change than that would result in food becoming plentiful, and agriculture getting beyond subsistence level, which didn't happen in general until the modern era c1500 or so AFAIK. So we'll need to structure Farming so that it is hard to get it very high. I guess that means very high Upkeep in the model.

                Any thoughts on ramifications that this would have on the rest of the system? Seems it should work ok.

                Otherwise something like 3-5 for general knowledge levels for the Roman scenarios as Richard suggests sounds good.

                As a crude test, we should be able to take the Dawn scenario, shut off the victory conditions and barbs, and expand like mad. In several hundred turns one should crudely get up to those Roman knowledge levels.
                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


                • #53
                  I have downloaded demo 7_2, extracted the technology.xml and military.xml files, and updated both of them to the new knowledge based system. They are posted on my website.

                  No changes have been made to the structure of either, so the game should run almost the same as before, with the exception that some numbers will be slightly different due to the conversion from levels to knowledge.

                  Technology Details:

                  All technologies have an upkeep equal to their helper effect value. Techs with no helpers have no upkeep. All helper effetcs are 0.5

                  Activity Details:

                  Nothing changed, but they are now in a seperate xml file.

                  Element Details:

                  Warrior and, presumably, all elements that have it as a default, have Attack and Defense improved by Military Tactics, with a baseknowledge of 1 and a knowledgeeffect of 0.2 This means that basically every unit in the game will have these stats multiplied by the same number, since they all defailt to Warrior. I see no problem with this.

                  Legionary has a Military Tactics knowledge requirement of 3

                  Charger has a horses requirement of 1, and the baseknowledge of everything horses improves is 1. horses improves Attack with a knowledgeeffect of 0.1 and Mobility with a knowledgeeffect of 0.3

                  Catapult has Breach improved by Military Tactics, with a baseknowledge of 1 and a knowledgeeffect of 0.1

                  Archer has a Military Tactics knowledge requirement of 1.5

                  Unit Details:

                  Siege Weapons changes pictures at Military Tactics knowledge 2 and 4

                  Bowmen changes pictures at Military Tactics knowledge 2



                  I suggest testing the game with these new files to make sure the structure works properly. Then I can start making changes. To start with, I recommend the following alterations:

                  Production and Metallurgy should do something. Currently they seem to be worthless. Chariots, Triremes and Catapults should require a certain level of Production to be produced, and have their stats helped by this tech. The more advanced foot soldiers should require Metallurgy and be improved by it.

                  Archers should require and be improved by a Ranged Weapons technology which would depend on Production the the same way Metallurgy does. Ranged Weapons would also improve Catapults and Triremes.

                  Walls should be improved by an Architecture technology, which also depends on Production.

                  The elements that make up the Phalanx should require Military Tactics 2, and the elements that go into a Legion should require Military Tactics 4.

                  it seems to me that CavalrySkirmisher should default to Charger, not Skirmisher. Currently neither this element nor HorseArcher seems to be improved by horses technology. In fact, I cannot see from the xml file how the game knows they should not be activated until horses are discovered, since they default to a foot unit that does not need horses.



                  I looked for examples of applications in other xml files, but found none. Road cost and effectiveness, for example, should be improved by technology.

                  The economy.xml file is full of tags like lowtechcostf and hightechcostp. What are these and how to they relate to the tech model?

                  Comment


                  • #54
                    Originally posted by Richard Bruns
                    I looked for examples of applications in other xml files, but found none. Road cost and effectiveness, for example, should be improved by technology.

                    The economy.xml file is full of tags like lowtechcostf and hightechcostp. What are these and how to they relate to the tech model?
                    Hi Richard, thanks for all the changes and suggestions. They seem basically good to me. I need to run really soon, so just a quickie answer. Agree on the Roads, but I don't know how complicated it would be to fix it up right now. IMO we've got bigger fish to fry if its not trivially easy.

                    Economy.xml does nothing now. I am just working on the xml input for all the econ stuff. lowtechcostp is how much production (mfg goods) a point of whatever sector costs when tech is low (knowledge =1 for most basic techs) The high tech version is for when tech level = 100, need to figure how to use it in the knowledge system. The idea is FE in the farming sector at the start improving farms is very labor intensive, but as tech gets higher it becomes more machine-intensive. Hope that helps.
                    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


                    • #55
                      Tech level 100 means knowledge of 512, assuming the techs start at level 10, which most basic techs probably would. Since knowledge is linear, it should just be a matter of taking the hightech number, subracting the lowtech number, dividing that difference by 500 (no need to be too precise), and adding that back to the lowtech number. Doing that for each cost should give a nice sliding scale, if you mean what I think you do.

                      Of course, I would prefer to use Applications wherever possible. This kind of thing reminds me of the hard coding of tech effects that foiled Civ scenario designers. This may be a situation where Applications don´t easily do what you want them to do, but I have an idea. One possibility is to have a series of "Improve Farm" applications that render each other obsolete. Let me make something up to serve as a crude example:

                      Code:
                      <Production Order>
                        <Name>Improve Farm I</Name> 
                        <category>infrastructure</category> 
                        <requirement>
                          <name>Farming</name> 
                          <knowledge>2</knowledge> 
                        </requirement>
                        </obsolete> Improve Farm II</obsolete>
                        <Effect>
                          <value>20</value> 
                          <technology>
                            <name>Farming</name> 
                            <baseknowledge>2</baseknowledge> 
                            <knowledgeeffect>0.2</knowledgeeffect> 
                          </technology>
                        </Effect> 
                        <Cost>
                          <Production>0.1</Production> 
                          <Services>2.0</Services>  
                        </Cost>
                      </Production Order>
                      
                      <Production Order>
                        <Name>Improve Farm II</Name> 
                        <category>infrastructure</category> 
                        <requirement>
                          <name>Farming</name> 
                          <knowledge>8</knowledge> 
                        </requirement>
                        <requirement>
                          <name>Production</name> 
                          <knowledge>4</knowledge> 
                        </requirement>
                        </obsolete> Improve Farm III</obsolete>
                          <Effect>
                          <value>80</value> 
                          <technology>
                            <name>Farming</name> 
                            <baseknowledge>8</baseknowledge> 
                            <knowledgeeffect>0.1</knowledgeeffect> 
                          </technology>
                          <technology>
                            <name>Production</name> 
                            <baseknowledge>4</baseknowledge> 
                            <knowledgeeffect>0.1</knowledgeeffect> 
                          </technology>
                        </Effect> 
                        <Cost>
                          <Production>2.0</Production> 
                          <Services>2.0</Services>  
                        </Cost>
                      </Production Order>
                      
                      <Production Order>
                        <Name>Improve Farm III</Name> 
                        <category>infrastructure</category> 
                        <requirement>
                          <name>Farming</name> 
                          <knowledge>32</knowledge> 
                        </requirement>
                        <requirement>
                          <name>Production</name> 
                          <knowledge>16</knowledge> 
                        </requirement>
                        </obsolete> Improve Farm IV</obsolete>
                        <Effect>
                          <value>320</value> 
                          <technology>
                            <name>Farming</name> 
                            <baseknowledge>32</baseknowledge> 
                            <knowledgeeffect>0.05</knowledgeeffect> 
                          </technology>
                          <technology>
                            <name>Production</name> 
                            <baseknowledge>16</baseknowledge> 
                            <knowledgeeffect>0.05</knowledgeeffect> 
                          </technology>
                        </Effect> 
                        <Cost>
                          <Production>6.0</Production> 
                          <Services>2.0</Services>  
                        </Cost>
                      </Production Order>
                      As you can see, these act like normal applications, giving more effect when tech improves. And when tech advances to a certain point, they can do more, but with a different cost structure. I think that fits in to the system better, and allows more flexibility.

                      I know you´ll be gone for a few days, so I don´t expect a response soon; this is a long-term idea anyway. I just wanted to post it now before I forget what I was going to say.



                      I mentioned in my last post how, in the current file, all military units seem to have their Attack and Defense multiplied by the same number, the one that comes from Military Tactics baseknowledge of 1 and a knowledgeeffect of 0.2 I investigated this more fully and found that it produces some interesting behavior.

                      In my earlier examples, higher tech units had a higher baseknowledge and a lower knowledgeeffect. This meant that they improved at the same rate as lower units. The phalanx that had a power of 0.9 plus the Warrior´s power at discovery always had a power of 0.9 greater than the warrior´s. At higher tech levels, the difference is almost negligable.

                      But when they all use the same multiplier, the difference between earlier and later units is multiplicative, not additive. If the Legionary has twice the power of a Heavy Spear when it is dscovered, it will always have twice the power, no matter what the tech level. This method means that the units power will already be multiplied at the moment when it is doscovered, and the designer will have to take this into account. If a Legionary is discovered at Tactics 4 and is has a Tactics baseknowledge of 1 and knowledgeeffect of 0.2, it will start with a power equal to 1.6 times the power listed in the military.xml file.

                      It is possible to make a good case for both systems, and I am honestly not sure which is more realistic or which will be more fun. The latter system will cause old units to become obsolete much more quickly and newer units to rise in power much faster. I recommend that we test each method to see which one we like more.

                      I also think it is very nice that the system can be so flexible in its effects while only using two variables. This project has taught me a lot about good modeling practice.

                      Comment


                      • #56
                        Originally posted by Richard Bruns
                        Tech level 100 means knowledge of 512, assuming the techs start at level 10, which most basic techs probably would. Since knowledge is linear, it should just be a matter of taking the hightech number, subracting the lowtech number, dividing that difference by 500 (no need to be too precise), and adding that back to the lowtech number. Doing that for each cost should give a nice sliding scale, if you mean what I think you do.
                        Good idea!

                        Of course, I would prefer to use Applications wherever possible. This kind of thing reminds me of the hard coding of tech effects that foiled Civ scenario designers. This may be a situation where Applications don´t easily do what you want them to do, but I have an idea. One possibility is to have a series of "Improve Farm" applications that render each other obsolete.
                        Sounds reasonable to me. So long as we can make it so that the orders automatically upgrade from one type to another as the baton is passed, and other MM can be avoided, I've got no beef with it. And as you say, it'd be much more flexible for scenario design purposes. I will need to cogitate upon the details. . .
                        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


                        • #57
                          Richard, I download your xml files to play with them and adjust the scenarios accordingly.
                          The default stuff in the military is essentially to avoid lazy people to repeat the same stuff over and over again: I hate CtP2 units file because it is so big.
                          You can always override a default, like replacing a requirement of a knowledge of 1 by one of 2. I will have to test it, particularly with the new tech implementation, but it should work so we can change everything with the current file by adding more tech requirements if needed (we would have to tye them anyway without the default).

                          Chargers and cavalry can default to whatever but add a horse requirement. The defaulting I did was planned on the number of lines I wouldn't have to write if I defaulted to something. I can change it to add horses as a prerequisite for cavalry. That doesn't sound weird.
                          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


                          • #58
                            I undertstand what you did with the defaults and I certainly approve. This will make unit creation and scenario design a lot easier.

                            I would like to be able to do some of this altering and testing myself, but the problem is that while I can use free and easily downloaded software to unpack the .jar file and see the .xml files, I don't know how to repack the .jar so the game plays with the new files. Is there some way to do this that does not involve downloading an immense Java IDE?

                            Comment


                            • #59
                              The best IDE to manage jars is winzip.
                              You just open it with winzip (rename it .zip if it complains), change it, update the archive with winzip once you have changed the files (I am almost certain you can even edit the file from winzip without having to extract them), then save the jar and make sure:
                              1) it is still named .jar
                              2) you didn't lose the manifest.mf file in the process (just don't touch that file)
                              3) you didn't change any of the .class
                              The best way is probably to copy the .jar and make changes in the copy. If anything goes wrong you can compare it with the original (winzip again), or send me the bad jar (through mail or via your web).
                              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


                              • #60
                                Thanks. I´ll try that when the next demo with the changed tech system comes out.

                                Come to think of it, why don´t we release the game with the technology changes now and call it Demo 7.2.2? It sounds like you have already made the required changes. I have two weeks of mostly free time approaching, so it would be a perfect time for me to do some serious playtesting and fine-tuning.

                                If I add new units, activities, and technologies, will the econ GUI update automatically so that money can be put into them? Even if it doesn´t update automatically, is there a way I can make the new stuff show up by altering only an xml file? If so, then we will already be halfway to a fairly user-friendly scenario design, since new unit pictures can be easily added to the game folder.

                                Comment

                                Working...
                                X