Announcement

Collapse
No announcement yet.

Demo 6 Technology Model

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

  • Thanks for the detailed comments, Gary

    Originally posted by Gary Thomas
    What we really need is some kind of forum in which a coder can say things like "We want to mount our settlers on horses so they can colonize faster, what technology do they need? And what prerequisites are there for this?" or "I want to establish a new province with a viceroy. What technology structure do I need for this?"
    I'll have more comments on Gary's post later, but I think the request thread is a good idea to get this area moving again. I think I've cleared up most of the econ coding I need for D7 at the moment, so when I feel the urge to program I'll try to get back to the econ/tech hookups. All the econ info is hardcoded anyway, so a few name lookups won't perturb the system much more than it is already.

    Lets start a "grimble" thread "Tech Prototype Issues" or some such, and give prioritized lists of what we each need in terms of code, techs and whatever. I think that will help a bit because this thread has grown pretty big and has discussion of some substantial issues, and its easy to lose requests of one sort or another. I know a bunch of mine on various code aspects got lost that way
    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


    • Just to give an update from the mil point of view:
      The military xml file currently has 2 required techs, warhorses and military tactics. I used a batch once to test if it affected the combats, and it does, so, from this point of view, the code works fine.
      I wanted to add research points to the military tactics tech when a fight had occurred, but I can't. It looks like RP's are to be given to an application, and there is no such application in the technology file. If the "military tactics" is in, I can't dump points to it anyway.
      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


      • Research points are given to activities (not applications). At present the only activity is "food". This does not help a lot for your requirements. This is one of the reasons I have been asking for a more complete tech file.

        Cheers

        Comment


        • Thanks, Gary, for the substantial discussion of where you see things, and what the next steps should be. I promised a more-detailed reply earlier, and this is it!

          Originally posted by Gary Thomas
          In the first place the technologies available in the current data file do not relate to the the actual elements in the demos to date. They are not sufficiently realistic.
          The current one has what I need for the first simple test of the feedback in technology between farming efficiency and RPs going to Food. The last time I tried this, it didn't work because of issues in the code. However, that may have been with an out-of-date version, so my first step will be to try it again and see what happens. The results will either be jubilation, or requests in the other thread

          Secondly there is no tech gui, to allow assignment of research points.

          In fact, there is no provision for the production of research points.
          I will have the farming sector produce research points going into the Food activity in my test. The GUI I think is a post-demo 7 priority.

          It is my view that there should be a way to refer to technologies ONLY from data. No technology should be hard coded. Laurent has gone some way to implementing such an approach, with his requirements specifications. I do not think that the technologies in his military file exist in the tech file though.
          Agree completely. However, I will just be putting things in by hand for my first trivial tests.

          I am unclear on what kind of bugs are meant here. They cannot be programming bugs since the tech tree is simply data. If it can read one tech it can read them all. Refining the parameters is play-testing, not debugging.
          The problems that I had in trying to previously implement the Farming/Food interaction were issues of the model that had not gone into the code due to whatever vagaries of fate and/or documentation. They weren't parameter issues, and are what I at least think of as bugs. The fact that every detail of a very complicated model didn't go in on the first or even the second shot is not terribly surprising.

          Applications, as specified in the tech model, are coded.
          (snip)
          For these reasons I do not see applications as being a useful concept.
          Gary, are the Parameters you were pushing coded? I guess I can use either Applications or Parameters for the time being. In the economics area most of what I am planning to do fits the original single-dimension effectiveness design. And I guess that I can use raw techs for most of what I plan to do.

          The reason I am not in favor of scrapping Applications completely, even if their previous function is mostly superseded by Parameters and other objects defined with in models other than tech, is for the reason of the tech interface. Every tech-related "Thing" needs to be registered with the tech model IMO so that the model can say "you can have musketeers when your metallurgy is X better" or some such. An Application interface that military elements, and everything else that gives buildable things depending on tech, implements seems like the solution to this for me. Of course this would invalidate most of the existing Application code, but such is life. I also believe that even for incredibly multi-attribute military elements we must be able to give the player a Single effectiveness as a default so they can know how good their musketeers or whatever are. Most players will not care to look at a spreadsheet with 32 different characteristics for a military element to assess how good it is for them! My proposed Application interface would have a name, methods that can return what level of which techs are needed for the thing to be buildable, a statement of where RPs that are genereated go to, and a way to get an overall effectiveness. Perhaps a way to get each parameter and its effectiveness would be needed too. More on this in my post here of 26-02-2002 13:41.

          I think the multi-attribute effectiveness is a thing that can give good gameplay if used in moderation. I believe having more than a critical few types of effectiveness per Application (or whatever) is overkill in most circumstances, and will be a poor use of resources. YMMV.


          Laurent: I think it would be beneficial for you to focus on testing tech instead of either sieges or diplomacy like we talked about in the other thread. What do you think?
          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


          • Research points are given to activities (not applications). At present the only activity is "food". This does not help a lot for your requirements.
            Well, maybe if we consider foodfights...
            So what is the method I should call (I think I had found it once so I can probably find it again)? I should just put a "tactics" application affecting Military Tactics in the tech file or what? I feel a bit fuzzy as to what is what in the model right now.

            As for applications having a single effectiveness, it is okay as long as it is just about showing the player. I mean I will fake a "power" for units for use by player and AI (like I said somewhere, a combo of health, attack, defense...) and show it as an effectiveness. However, the way it is affected by tech depends on parameters. Thus if you get a high tech level in painkillers it might raise health of units and thus their effectiveness, but it is not the same thing as increasing firepower, in particular as some techs will affect all units whereas others will only affect musketeers.

            Also about obsoleteness. I think I want to say Units become obsolete when another Unit is available. Probably, I would actually check the obsolescing unit's effectiveness against the obsolete one before saying the old is obsolete, but you get the idea. That means applications that are buildable should check obsoleting applications effectiveness against their own. I'm not sure it's on-topic here but what do you think? It would be a clear way to show the player that tech does something: By preventing to build legions early, allowing them 3 turns later and then saying since our legions are much better than warriorbands in quality/price ratio, we no longer show the warriorband in the build orders -thus getting a better econ UI. That's it. It's the wrong thread. I should have been posting in GUI Econ thread!)

            I'd like to test the tech part, but I'd like the player to see something out of it. I might do something like having a military tactics level just below what's needed to build a new kind of unit and, after a fight, try to popup a message/event like "Our brilliant generals discovered that new tactics could lead to better organization of our armies, which will allow us to build XXX". Specifics about XXX would be nice, though. Maybe new roman legions or something like that (call them Scipio's legions or cohorts even though it was more reorganizing armies than building new ones)?
            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


            • Originally posted by LDiCesare
              Well, maybe if we consider foodfights...
              LOL

              Glad to hear that you see my point on a new version of Applications, now gotta see what Gary thinks

              I think your points on obsolescence are good. We will have to refine them over the long term depending on playtesting of course.

              [/QUOTE]I'd like to test the tech part, but I'd like the player to see something out of it. I might do something like having a military tactics level just below what's needed to build a new kind of unit and, after a fight, try to popup a message/event like "Our brilliant generals discovered that new tactics could lead to better organization of our armies, which will allow us to build XXX". Specifics about XXX would be nice, though. Maybe new roman legions or something like that (call them Scipio's legions or cohorts even though it was more reorganizing armies than building new ones)? [/QUOTE]

              Sounds good to me, a "tech teaser" if you will!
              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


              • Scale for RPs ?

                I think we also need to work out between us Some notion of what an RP is so we can figure RP inputs to activities with some rational basis. I propose a definition of one RP = the innovation created by 1000 people (modern highly-educated people) working on innovation full-time with use of about $50k of capital. The idea here is that then one can back off and cut it down due to lower education, investment level, instability etc. Just throwing out an idea for consistencies' sake, another scale would do, but we need some kind of scale IMO. With this definition at the start of the dawn scenario your 5k people might produce something like .0005 since they have little in the area of capital, or education, but at least might be supposed free to experiment economically and socially.

                This could be a problem with the upkeep requirement... In passing, I think upkeep should be a Fraction of knowledge or level, not just a fixed number. What do you think Richard?
                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


                • one RP = the innovation created by 1000 people (modern highly-educated people) working on innovation full-time with use of about $50k of capital
                  Okay, unless Richard has set up the things otherwise, but do you have any idea as to how many RP's a fight should give to Combat Tactics and such? Right now I have factor * (number of units at end of tick + 1) points per tick spent fighting. That means a little fight gives out (factor) * 100+ points. (I can probably tip this to a max number per fight if needed.)
                  I have no clue as how much time spent or kapital it is equivalent to. Any idea how many RPs should be generated by a fight, at most?
                  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


                  • Hi Laurent:

                    Based on limited work with Farming: below 5 RPs per turn gives no growth, and over 10 gives fairly fast tech growth. But the numbers for your techs may be completely different. As I said elsewhere I think we need to get rid of the upkeep number for now! I wouldn't spend too much time finetuning for now, since everything will change when the tech model gets rebalanced once we have some experience with it.

                    As to docking econ RPs to military ones, I think you can just use similar arguments to what I did to have a general scale. If it turns out your scale is not playbalanced with mine, we'll find out soon enough
                    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


                    • Originally posted by Gary Thomas
                      Finally, there has to be a semantic connection between actual operating elements in the game (units, social elements, economic infrastructure) and the named technologies. This does not presently exist. In some cases the name of a technology has been hard coded into the program. This is particularly true of the social mode. Unfortunately the technologies referred to do not exist in the data.
                      I made my tech tree based on the military units I saw in demo 5. I planned for the tech system to mainly affect the military units, thinking it would be a matter of: raise tech and get better units. I had no idea you wanted full hookups all over the system.

                      We just need more, and more relevant technologies. If each person who is going to use a technology could give you a list, perhaps you could organize them into a tree. If I, in coding road-building, require a technology, that is what I require. However, such a thing has antecedents, perhaps like masonry and engineering. While the road-building tech is not available, I can't do much about applying the tech model to road-building. So, at present, there is no restriction at all on the ability to build roads.

                      This sounds like a good plan. The new thread should serve nicely.

                      Comment


                      • Richard,
                        I attach a file for you to check if you would like.
                        It is the tech output of a few turns playing Carthage against Rome. I put a Combat activity which adds RPs to Military Tactics, RPs being earned at the end of each fight. Note the figures are huge, but, well, at least you can see the diminishing returns stuff without a calculator. It may be interesting to see if you find the information sufficient to "debug" the code/compare with your model.
                        The xml technology and military files I also attach in a zip.
                        Attached Files
                        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


                        • Originally posted by Gary Thomas
                          Research points are given to activities (not applications). At present the only activity is "food". This does not help a lot for your requirements. This is one of the reasons I have been asking for a more complete tech file.

                          Cheers
                          Simple_Tech_Test.xml has three activities defined: Food, Production, and Military. As far as I remember, it always has. You may have a file that got truncated somehow.

                          And I don't know what you were saying about descriptions. If a null value crashes the program, I can quickly add some descriptions. The description was mainly for a simple thing like "This tech helps you build up infrastructure". What else did you want in there?


                          This could be a problem with the upkeep requirement... In passing, I think upkeep should be a Fraction of knowledge or level, not just a fixed number. What do you think Richard?


                          This has always been the case. RP= "stuff" - c * k, where k is the knowledge level and c is the upkeep value determined in the text file. (about 0.02 for now) Upkeep is always a multiple of knowledge, about 1/50th of the knowledge value in this case. But I got rid of upkeep for the test as you requested. All you have to do is change the global value of Upkeep to zero, and then change it back again later.

                          However I cannot see how applications can possibly be part of the technology model - they are provided by the other models which use them. The application part of the model is coded and will work, in the limited sense that the tech model specifies. They will then be disregarded by the rest of the system because they are far too simplistic, for example, the main examples of applications are, at present (and probably forever), military elements. A military element has hugely more information that a single effectiveness value.

                          I've recognized that a single value for application effectiveness isn't going to be good. I wrote a lot about this issue some time ago, with a proposal for having the tech model change specific things like attack power or health. Let me drag some of it up:

                          posted 07-11-2001:

                          I realized that the tech editor and xml file have no provision for changing different attributes of an a unit. I wasn't planning ahead very well. Instead of a single number for the effects of the helper/required tech, we will want a few different options available for what the application's required techs will change.

                          It also occurs to me that out hard-coding of formulas for things like longtermgrowth and shorttermgrowth is horribly restrictive and unintuitive. Another archaic holdover from my initial bad modeling. Is there any way to allow the user to input any basic formula into the xml file, to be read by the game?

                          Something like this would be very good:

                          ....

                          This would replace the old longtermgrowth and shorttermgrowth values with something much more flexible and easier to use. Can it be done?


                          All that stuff is on the first page of this thread. As far as I know it didn't get into the code. I think it might fix the application problems Gary mentioned, since the proposal allows the tech xml file to directly change the attributes like attack and health that the program uses in its calculations.

                          LDiCesare, I couldn't download that zip file for some reason. I got a "page cannot be found" error.

                          Comment


                          • LDiCesare, I couldn't download that zip file for some reason. I got a "page cannot be found" error.
                            I managed to dowload it. I post some snippets here so you can check them:
                            From technology.xml:
                            <globals>
                            <growthrate>0.01</growthrate>
                            <upkeep>0.02</upkeep>
                            <diminishingreturns>1.0</diminishingreturns>
                            <helperweight>1.5</helperweight>
                            <multiplier>2.0</multiplier>
                            <growthfactor>10.0</growthfactor>
                            </globals>
                            <technology>
                            <name>Military Tactics</name>
                            <tier>1</tier>
                            <growthrate>1.0</growthrate>
                            <upkeep>1.0</upkeep>
                            <diminishingreturns>1.0</diminishingreturns>
                            <startlevel>0.0</startlevel>
                            </technology>
                            <activity>
                            <name>Combat</name>
                            <description>Training and fight allow discovery of new tactics allowing more efficient troops.</description>
                            <recipient>
                            <name>Military Tactics</name>
                            <proportion>1.0</proportion>
                            </recipient>
                            </activity>
                            This is used in military.xml:
                            <Element>
                            <Name>Warrior</Name>
                            <category>foot</category>
                            <Attack><value>20</value>
                            <technology>
                            <name>Military Tactics</name>
                            <startlevel>10.0</startlevel>
                            <add>1</add>
                            <multiply>0.03</multiply>
                            </technology>
                            </Attack>
                            (...)
                            And now some tech output:
                            Carthage, Military Tactics multiplier (MV) = 2.0
                            Carthage, Military Tactics growth (GV) = 10.0
                            Carthage, Military Tactics growthRate (m) = 0.01
                            Carthage, Military Tactics upkeep (c) = 0.02
                            Carthage, Military Tactics diminishingReturns (DR) = 1.0
                            Carthage, Military Tactics startLevel (Ts) = 0.0
                            Carthage, Military Tactics helperEffect (H) = 1.0
                            Carthage, Military Tactics levelValue = 0.0
                            Carthage, Military Tactics rps = 0.0
                            Carthage, Military Tactics k = MV^((Tn-Ts)/GV) = 1.0
                            Carthage, Military Tactics V = (RP^DR)*m*H*I - E*c*k = -0.02
                            Carthage, Military Tactics newLevel = -0.29146317

                            Note the newLevel lowered because of the lack of RPs. Any idea of a simple formula saying how many RPs must be spent to maintain the level? By reducing upkeep to 0 and keeping everything else equal, I had end levels of 15 instead of -3 in one test which lasted about 15 turns, with maybe 8 turns of fight which gave rps.

                            Then I add research points:
                            Carthage, Military Tactics research points incremented by 93.0 to 570.0
                            (...)
                            Carthage, Military Tactics levelValue = -0.8743899
                            Carthage, Military Tactics rps = 570.0
                            Carthage, Military Tactics k = MV^((Tn-Ts)/GV) = 0.94119203
                            Carthage, Military Tactics V = (RP^DR)*m*H*I - E*c*k = 5.681176
                            Carthage, Military Tactics newLevel = 27.273474

                            Last turn:
                            Carthage, Military Tactics levelValue = 37.408062
                            Carthage, Military Tactics rps = 546.0
                            Carthage, Military Tactics k = MV^((Tn-Ts)/GV) = 13.368875
                            Carthage, Military Tactics V = (RP^DR)*m*H*I - E*c*k = 5.1926227
                            Carthage, Military Tactics newLevel = 42.142414

                            I changed te amount of rps to see the difference in end level. Dividing the amount by 100 leads to negative tech level. Upkeep also changes a final value of -3 to a final value of 13. That is a big difference.
                            I want to have a start level of 10 instead of 0 and end level of maybe 15 at the end of the scenario. Tuning the values for that will be a bit touchy I believe. I am modifying only upkeep, that I'll set to 0 for simplicity, and the amount of RPs. Do you have a (simple?) approximation formula of how many RPs are needed to reach a certain level (inverse function)?
                            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


                            • Hi Richard:

                              I Said:
                              In passing, I think upkeep should be a Fraction of knowledge or level, not just a fixed number. What do you think Richard?

                              You Said:
                              This has always been the case. RP= "stuff" - c * k, where k is the knowledge level and c is the upkeep value determined in the text file. (about 0.02 for now) Upkeep is always a multiple of knowledge, about 1/50th of the knowledge value in this case. But I got rid of upkeep for the test as you requested. All you have to do is change the global value of Upkeep to zero, and then change it back again later.
                              Sorry, I should've looked at the formula. The first-turn result for V with no RPs was -0.02, so I assumed c was just subtracted even though it says clearly in the trace output what the formula is...

                              But almost any value for c has problems for low numbers of people as we have in Dawn. If you make it so extremely primitive tech doesn't backslide for a few-people civ, then it explodes for something with 100x the population. But as I said that's a discussion for the future.

                              BTW I believe the requirement for the description text is simply that it not say "null" because of the way the parser works. Obviously a short description for each tech is best, but "" would suffice if I understand Gary's comment correctly.
                              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


                              • Originally posted by LDiCesare

                                I managed to dowload it. I post some snippets here so you can check them:
                                From technology.xml:
                                ....
                                <activity>
                                <name>Combat</name>
                                <description>Training and fight allow discovery of new tactics allowing more efficient troops.</description>
                                <recipient>
                                <name>Military Tactics</name>
                                <proportion>1.0</proportion>
                                </recipient>
                                </activity>
                                The activity I have in the esisting tech tree is called "Military" and it gives tech to horses and metallurgy in addition to tactics. Do you intend to replace this activity or add a new one that only runs Rp from combat? It makes sense that combat itself only gives tactics tech, but I like the idea of an activity that the player can invest in to raise all techs that lead to and improve military units. So should we have a Military activity that the player invests spare RP in as well as a Combat activity that only uses RP from battle experience? That makes sense; I'll add it in.


                                This is used in military.xml:
                                <Element>
                                <Name>Warrior</Name>
                                <category>foot</category>
                                <Attack><value>20</value>
                                <technology>
                                <name>Military Tactics</name>
                                <startlevel>10.0</startlevel>
                                <add>1</add>
                                <multiply>0.03</multiply>
                                </technology>
                                </Attack>


                                I think I understand now. This is what I have been calling an Application. You have moved them out of the tech xml file and into the model specific xml file, where they fit better. So when I make a tech tree, I only need to define technologies and activities; the applications have or will be defined in the other model files.

                                If you would post a list of the applications you have, I will make sure that the technologies will support them.


                                Note the newLevel lowered because of the lack of RPs. Any idea of a simple formula saying how many RPs must be spent to maintain the level?

                                The upkeep was set to 0.02, or 1/50'th of the knowledge value. Since knowledge starts at 1 and eack RP gives 0.01 knowledge, the civ has to produce 2 RP's to remain constant in the technology. This should be easy for economic sectors, since a single square of primitive farms should probably be generating at least one RP for the Food sector. But since battles don't happen all the time, backsliding in tactics will probably occur unless the player feeds spare RP's into the tech. Currently we seem to have no GUI to do this.

                                By reducing upkeep to 0 and keeping everything else equal, I had end levels of 15 instead of -3 in one test which lasted about 15 turns, with maybe 8 turns of fight which gave rps.

                                Are you saying that after 8 battles with no upkeep, the tech level was 15? That sounds reasonable; a civ's knowledge of military matters would more than double with 8 major engagements. But were these big battles or small ones?

                                Then I add research points:
                                Carthage, Military Tactics research points incremented by 93.0 to 570.0

                                Woah. Where did all those RP's come from? A primitive civ shouldn't have that many to spare. 93 RP for all 8 battles sounds aout right, but those extra will of course push the value too high.
                                I want to have a start level of 10 instead of 0 and end level of maybe 15 at the end of the scenario. Tuning the values for that will be a bit touchy I believe. I am modifying only upkeep, that I'll set to 0 for simplicity, and the amount of RPs. Do you have a (simple?) approximation formula of how many RPs are needed to reach a certain level (inverse function)?
                                This can be derived from the equations. Since E and I don't currently do anything, DR is set to 1, and there are no helpers for this tech, we have:
                                V = RP*m - c*k
                                the temporarily elimination of upkeep (c=0) results in simply:
                                V = RP*m

                                V is the change in knowledge. Mark and I thought it would be a good idea to get rid of tech level temporarily and only deal with the values of k. It is much easier to see the equations that way, since new k is simply old k plus V. k starts at one, and if you wanted the tech level to rise by 5, that would mean that k would rise to about 1.4

                                So over the course of the scenario, all the V values will have to add up to 0.4. Since each RP increases V by 0.01 (the multiplier value), that means we have to generate 40 RP's for military tactics over the course of the demo. You know the number of battles and units in the scenario better than me, so you can figure out how many RP's we need per battle to get those 40 RP's. It seems that all you have to do is make the battles generate half the RP's they did in your test.

                                Comment

                                Working...
                                X