Announcement

Collapse
No announcement yet.

The Ages Of Man

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

  • The main problem with this solution is that you have to repeat it every time a new version of AOM is released . I really don't want to do that, unless it can be automated somehow.

    The missing strings reports are a dead giveaway that something is incompatible. You may not be able to observe it immediately, though. It is more likely the lack of special events that is going to be the problem.

    Like a missing treaty expiry message: some hardcoded new constants in Diplomat.cpp, combined with TREATY_TO_EXPIRE having been moved from cut_str.txt to info_str.txt. AOM uses AOM_info_str.txt (based on the original info_str.txt), and does not expect TREATY_TO_EXPIRY in this file.

    Each change in itself was really harmless. You have reorganised strings a little, to group related strings together, causing just a slight incompatibility. This is unlikely to be a problem, unless you have a mod changing (only) one of the 2 files. And actually, you only moved a couple of strings that were almost never used.
    Someone else had a nice idea for a code change: let's make these eternal treaties expire after some turns. Just a slight incompatibility. No problem, because care was taken to notify the player a couple of turns in advance when treaties were going to expire.

    Unfortunately, the notification message string happened to be one of the missing moved strings. I wasted a couple of days to find out what had happened to my treaties when I was trying to test some suspect withdrawal code that never seemed to fire properly . I had never noticed the treaty expiry code modification change, because it had been buried in a pile of other changes.

    For maximum compatibility, just avoid moving things around, always append new items at the end of existing lists, and treat missing string reports as compiler warnings.

    Comment


    • Originally posted by Fromafar
      The main problem with this solution is that you have to repeat it every time a new version of AOM is released . I really don't want to do that, unless it can be automated somehow.
      If Stan would include it in the next update it wouldn't be a problem. However I could do it the other way around and put all the new and moved strings into junk_str.txt, and remove it from the source code imports, would a be a little bit more work.

      Originally posted by Fromafar
      For maximum compatibility, just avoid moving things around, always append new items at the end of existing lists, and treat missing string reports as compiler warnings.
      You can't garantee maximum compatibility, the slic engine saves the strings as integers, instead of using the names of the string IDs. If I want to continue a game from a Demo game for instance I have to reload slic, because of this and because of the fact that the strings in the different language versions aren't in the same order. In fact some of the strings are in different files.

      In fact the AOM_info.txt is such an example of this, it is based on a version for CityMod2 and at that time I was unaware that the strings I found in the German version of info_str.txt could be find in add_str.txt, so I added them from the German version in translation, interestingly they were never used until I added them to AOM_NewStrings.txt. So I removed them and added a new version to my last post.

      And another thing is that you have to test the slic engine as well for the MP database sync check, and with different string databases it would fail.

      -Martin
      Civ2 military advisor: "No complaints, Sir!"

      Comment


      • This is an announcement to let people know I am working on the "Icing on the Cake" of AOM.

        The diplomacy update meant that once you achieved diplomatic relations with ai (the more aggressive ones were harder, but eventually came across), you were in control of the game, a little too early IMHO.

        The problem here was that AI rarely break their treaties against a more powerful player. But AI vs AI war would continue.

        So I am working on an update that does 2 main things.
        1) Causes the AI to possibly cancel treaties if your aggression level is too high. As part of this, you may be forced at time to give PW aid to an ai or suffer an aggression increase for being heartless. More aggressive AI personalities will cancel their treaties earlier than passive AI.
        2) In AI vs AI wars where the AI are close to the human, I am attempting to get those AI to make peace with each other and sign a peace treaty.

        Some other things include:
        a) making the AI attack a little better against the human,
        b) a palace coup option in case you are facing sucession problems (which can happen if you find a King in a ruin),
        c) multiple victory options (Science and diplomacy),
        d) more ways for frenzy to go up and down, and
        e) a small variation for which turn certain historical events occur (the current turn being the earliest now and they may ocur up to 10 turns after that).

        I will also be looking at the across water invasion issue.

        Work will then commence to transfer AOM to ACS.

        Comment


        • b) a palace coup option in case you are facing sucession problems (which can happen if you find a King in a ruin),
          btw is it normal to have a king live 200+ turns?
          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


          • btw is it normal to have a king live 200+ turns?
            No, he is supposed to live a maximum of 80 turns. However, I have had an odd occassion where he has not died (very rarely).

            Slic is not absolutely 100% reliable.

            It has been suggested in an AOM thread that you may need a suicide mission for a 2nd King every now and then (get rid of that palace rival) to restore things to the status quo.

            Comment


            • One thing which I may have not made onvious, and may explain things, .cannot do a reloadslic in AOM . It empties all the slic arrays and basically stuffs that game. you have to start again. However, what I am pleased about with AOM, is I can and have won games right to the end (turn 600+) without a fatal CTD. So have at least 3-5 others AFAIK. I have so many arrays in AOM, eg, age counters for wonder units, kings and heroes, that a reloadslic is not an option, it kills that game. But I have not had a game this year where I have HAD to do a reloadslic.

              I have made some progress in the cross water invasions code.

              After some initial success (being able to get the ai to sail to the human and even drop of an army), I ran into the bigger picture problem of loading. The issue is that there appeared to be no way to tell if a navy had a cargo or not.

              I have done some initial experiments and now believe it is possible. I have about 35% of the code working no question.

              I have now written test code to prove that I can monitor loading and unloading by ai navies. Now the thing (which I have never done) but is entirely feasible, is to create arrays to record the names of AI navies, 2 sets, one of assualt navies (which have loaded troops) and one for transport navies( which have unloaded). Frenzy already contains arrays which name armies so I am copying those.

              Hopefully within a week, I will be ready to test the whole code. It is very slow as I need to be sure each stage is working before proceeding, so I am using extensive checkers inserted into the game to monitor events, replaying things in cheat mode on numerous occassions to see what my code is doing.

              Comment


              • I have installed AoM over the playtest patch and so far hadn't had any big problems. I had a couple of crashes but was able to restart from the auto-save and start playing again. I was also using my tiles so they work. Of course of only just now researched Dynasty so its still early in the game. I'll report any problems but Unfortunately I forgot to do the crash log so next time I start a game I'll do it.

                So far then I'd say the playtest is compatible with AoM. and since the playtest adds a lot of features I think you might want to incorporate some of them into a later AoM (ahem like my NeedsCityGood code, CultureOnly, CityStyleOnly...)
                Formerly known as "E" on Apolyton

                See me at Civfanatics.com

                Comment


                • Actually crash text was enabled (I think its dated from when I played the game)...


                  Code:
                    0x007afc7b  [Normalize + 0x85]
                    0x00749b96  [?InitCommonLdl@WatchListItem@@IAE?AW4AUI_ERRCODE@@PAD@Z + 0x106]
                    0x007498ca  [??0WatchListItem@@QAE@PAW4AUI_ERRCODE@@JPAD1@Z + 0xea]
                    0x0074c351  [$E48 + 0x1]
                    0x0040623d  [?main_filehelper_GetOS@@YGHXZ + 0x2d]
                    0x0040ebae  [?CalcPosition@ActorPath@@QAEXJJJPAUtagPOINT@@@Z + 0x8e]
                    0x0040efe1  [?ParseFromTokens@Anim@@QAEJPAVToken@@@Z + 0x211]
                    0x00407ddb  [?InitializeAppDB@CivApp@@QAEJAAVCivArchive@@@Z + 0x10b]
                    0x00407852  [?New@?$tech_Memory@ULink@?$tech_WLList@PAD@@@@QAEPAULink@?$tech_WLList@PAD@@XZ + 0x62]
                    0x008af69c  [?g_const_token_data@@3PAUTokenData@@A + 0x54d2c]
                    0x7c816d4f  [__onexitbegin + 0x7bcf4ef7]
                  Formerly known as "E" on Apolyton

                  See me at Civfanatics.com

                  Comment


                  • I have written the invasion code and in tests, the AI has collected navies and troops, loaded, sailed to the human, unloaded and attacked. The transports then sail home to get more troops.

                    The key is going to be to get the triggers right. I can see a situation where ai who do not have water access to the human, or have a land empire with a city or 2 next to lakes, may build ships, load them then not do anything with them. But if they have water access to the human, tests have shown they will invade.

                    Comment


                    • Originally posted by stankarp
                      I have written the invasion code and in tests, the AI has collected navies and troops, loaded, sailed to the human, unloaded and attacked. The transports then sail home to get more troops.
                      REALLY looking forward to an update with this feature. This may be an historic "first" - a civ-type game featuring an AI that can develop and sustain cross water invasions!
                      To La Fayette, as fine a gentleman as ever trod the Halls of Apolyton

                      From what I understand of that Civ game of yours, it's all about launching one's own spaceship before the others do. So this is no big news after all: my father just beat you all to the stars once more. - Philippe Baise

                      Comment


                      • The tests done in a constructed situation in cheat mode worked as they were programmed to. Turn 20, set up the situation and in the next 20 turns, the code executed with no problems.

                        However, in a real game situation we may have a problem, the game seems to just stop some time after turn 100. The funny thing is though in both games the invasion triggers had not been met yet so theoretically, it should not be the invasion code causing it.

                        I am currently removing some other bits I wrote in and re testing to see if that helps. What is more confusing is that 2 other test games did not produce problems, but had not progressed far enough to see if the invasion code had kicked in.

                        Comment


                        • cool. how many are testing it?
                          Formerly known as "E" on Apolyton

                          See me at Civfanatics.com

                          Comment


                          • Three others apart from me, 2 more received it but are a little busy right now.

                            Comment


                            • I have sent the revised code out to the testers. If all goes well, the final will be released in about a week.

                              I had major problems for nearly 2 weeks, the game just stopped executing during an AI turn after turn 120 odd in a full game situation.

                              I had to remove several functions and replaced them with a simpe one that killed and created ships rather than try to move them from cities.

                              Comment


                              • were you trying with the latest playtest, maybe we fixed it later on...
                                Formerly known as "E" on Apolyton

                                See me at Civfanatics.com

                                Comment

                                Working...
                                X