1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Dawn of Civilization General Discussion

Discussion in 'Rhye's and Fall - Dawn of Civilization' started by Leoreth, Nov 19, 2015.

  1. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    Not going to do that.
     
    1SDAN likes this.
  2. borhap88

    borhap88 Prince

    Joined:
    Feb 11, 2012
    Messages:
    536
    Location:
    Italy
    I'm concerned about too early discovery of the New World because I always play on marathon. In my games, in 16th century colonization is more advanced than in 1700 start. I hope it will be balanced with the new upcoming larger map.
     
  3. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    That's more to do with the generally unbalanced tech pace in Marathon compared to Normal speed.
     
    Imp. Knoedel, borhap88 and 1SDAN like this.
  4. h0spitall3rz

    h0spitall3rz Grand Vizier of Your Mind

    Joined:
    Aug 2, 2015
    Messages:
    412
    Gender:
    Male
    Location:
    Hanseong, Great Korean Empire
    I don't think so. They almost always prioritize Exploration. (By prioritize, I mean, like research it first.) That's why they get Cartography first, and this explains the very early conquests in Mesoamerica.
     
  5. Novicenoble

    Novicenoble Prince

    Joined:
    Jun 16, 2013
    Messages:
    545
    Location:
    East Asia
    Is it requires to have a registered email to get the git repository for the new map? I cannot pull it through the tortoiseGit, and it gives me following error message: "fatal: unable to auto-detect email address."
     
  6. Imp. Knoedel

    Imp. Knoedel Stalin and Starlight, Stalling a Stallion

    Joined:
    Nov 11, 2011
    Messages:
    8,560
    Location:
    The cooler Germany
    Woah, Microsoft works really fast when it comes to ruining things.
     
    ales_, trevor and h0spitall3rz like this.
  7. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    I don't think this observation contradicts my hypothesis? If they cannot research Firearms but can research Exploration (because only its prerequisites are met) the AI will choose Exploration even if Firearms has a higher weight. As far as I know high weight for a technology does not translate into high weights for its prereqs, meaning that the AI may avoid Blackpowder for some reason.

    You should not, but I don't know what may cause this error message. Do you have local changes in your mod that you made? I will try for myself later.

    Haha, true.
     
    h0spitall3rz likes this.
  8. h0spitall3rz

    h0spitall3rz Grand Vizier of Your Mind

    Joined:
    Aug 2, 2015
    Messages:
    412
    Gender:
    Male
    Location:
    Hanseong, Great Korean Empire
    Ah, I see. I may have misunderstood what you said. Would it matter if the AI is made to prioritize Gunpowder too?
     
  9. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    Yes, that's what I want to try. Alternatively I could try my hand on making the scripted technology weights on the whole a bit smarter, so that high weight for a tech automatically translates into higher weights for its prerequisites. Before the new tech tree was added this was less important because there were less techs and the requirements were looser, maybe that's why it wasn't much of a problem before.
     
    ales_, h0spitall3rz and borhap88 like this.
  10. Novicenoble

    Novicenoble Prince

    Joined:
    Jun 16, 2013
    Messages:
    545
    Location:
    East Asia
    Maybe I'm doing it somewhat wrong way.
    I tried to pull the Turks branch and it worked. I'm wondering now.
     
  11. Alexius08

    Alexius08 Emperor

    Joined:
    May 28, 2010
    Messages:
    1,104
    Do we have a relocation plan prepared in case Github somehow makes hosting the DoC repository unviable?
     
  12. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    Git is a general purpose (and open source) protocol, Github is only the most popular hosting site for git repositories. So you can use git without Github, for example on Gitlab or Bitbucket. Afaik Gitlab can already mirror an existing Github repo, but worst case I would need to push the whole history there and everyone might need to do a new clone. But while I'm concerned about some things Microsoft might do I don't think they will completely close down public repositories.
     
    Imp. Knoedel likes this.
  13. inthesomeday

    inthesomeday Immortan

    Joined:
    Dec 12, 2015
    Messages:
    2,798
    In the version I’m playing, at least, china is way too stable for 3000 BCE. They normally end up living the whole time and discovering all techs and building all wonders so quickly it ruins historical victories for other, later civs.
     
  14. merijn_v1

    merijn_v1 Black Belt

    Joined:
    Dec 29, 2008
    Messages:
    5,601
    Location:
    The city of the original vlaai
    I've been looking in the code and I have some remarks about it. (I hope I can make clear what I mean.)

    1. Take Renewable Energy as an example. I has Laser as the only OrPrereq tech and Tourism and Ecology as the AndPrereq techs. The game treats them all as AND requirements.
    Looking at the loop starting with "for i in range(4):", the first iteration will consider the first OrPrereq and AndPrereq, which are Laser and Tourism respectively. The last if-elif statements of that loop determine that favor value of only one of these techs will be changed. (Usually the OrPrereq) In the second iteration, their is no iOrPrereq but there is Ecology as AndPrereq. That means that always the value of Ecology will be changed. This means that not all prerequirement techs are treated equally. Also, some prerequired techs will not get an increase in favor value.

    2. Let a civ have tech A and B in their preferences. Tech A has a favor value of 10, and B of 50. B is a prerequired (iOrPrereq) tech of A. If I understand the code correctly, tech B would get a iPreqValue of 50. (The is no iAndPrereq) That value is lowered by the min() function to the value of tech A, so it will get a value of 10. So the code can lower the favor value of techs that are already in the preference list if they are a prerequisite of another tech in that list.

    (3. The continue statement could be replaced by a break statement IIRC)

    Spoiler Code for reference :
    Code:
    def getTechPreferences(iPlayer):
        dPreferences = {}
        iCivilization = gc.getPlayer(iPlayer).getCivilizationType()
       
        if iCivilization not in dTechPreferences:
            return dPreferences
           
        for iTech, iValue in dTechPreferences[iCivilization].items():
            dPreferences[iTech] = iValue
           
        for iTech, iValue in dTechPreferences[iCivilization].items():
            for i in range(4):
                iOrPrereq = gc.getTechInfo(iTech).getPrereqOrTechs(i)
                iAndPrereq = gc.getTechInfo(iTech).getPrereqAndTechs(i)
               
                if iOrPrereq < 0 and iAndPrereq < 0: continue
               
                iPrereqValue = getDictValue(dPreferences, iOrPrereq) + getDictValue(dPreferences, iAndPrereq)
               
                if iValue > 0 and iPrereqValue >= 0:
                    iPrereqValue = min(iValue, iPrereqValue + iValue / 2)
                   
                elif iValue < 0 and iPrereqValue <= 0:
                    iPrereqValue = max(iValue, iPrereqValue + iValue / 2)
                   
                if iOrPrereq >= 0: dPreferences[iOrPrereq] = iPrereqValue
                elif iAndPrereq >= 0: dPreferences[iAndPrereq] = iPrereqValue
       
        return dPreferences
     
    ales_ and need my speed like this.
  15. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    You're right, for some reason I assumed that a tech either only has OR or AND prereqs which is obviously not true. I will rewrite it later.
     
  16. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    How does that look?

    Code:
    def getTechPreferences(iPlayer):
       dPreferences = {}
       iCivilization = gc.getPlayer(iPlayer).getCivilizationType()
       
       if iCivilization not in dTechPreferences:
           return dPreferences
           
       for iTech, iValue in dTechPreferences[iCivilization].items():
           dPreferences[iTech] = iValue
           
       for iTech, iValue in dTechPreferences[iCivilization].items():
           for i in range(4):
               iOrPrereq = gc.getTechInfo(iTech).getPrereqOrTechs(i)
               iAndPrereq = gc.getTechInfo(iTech).getPrereqAndTechs(i)
               
               if iOrPrereq < 0 and iAndPrereq < 0: break
               
               updatePrereqPreference(dPreferences, iOrPrereq, iValue)
               updatePrereqPreference(dPreferences, iAndPrereq, iValue)
       
       return dPreferences
       
    def updatePrereqPreference(dPreferences, iPrereqTech, iValue):
       if iPrereqTech < 0: return
       
       iPrereqValue = getDictValue(dPreferences, iPrereqTech)
       
       if iValue > 0 and iPrereqValue >= 0:
           iPrereqValue = min(max(iPrereqValue, iValue), iPrereqValue + iValue / 2)
           
       elif iValue < 0 and iPrereqValue <= 0:
           iPrereqValue = max(min(iPrereqValue, iValue), iPrereqValue + iValue / 2)
           
       dPreferences[iPrereqTech] = iPrereqValue
    Thank you for the review.
     
  17. merijn_v1

    merijn_v1 Black Belt

    Joined:
    Dec 29, 2008
    Messages:
    5,601
    Location:
    The city of the original vlaai
    I think that will do the job.
     
    Leoreth likes this.
  18. h0spitall3rz

    h0spitall3rz Grand Vizier of Your Mind

    Joined:
    Aug 2, 2015
    Messages:
    412
    Gender:
    Male
    Location:
    Hanseong, Great Korean Empire
    Looked for the commit in the develop branch but wasn't able to find it~
     
  19. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,113
    Gender:
    Male
    Location:
    Leblanc
    I need a script or something that runs git push whenever I post in the Update Log thread. It's up now.
     
  20. JHLee

    JHLee Prince

    Joined:
    Aug 27, 2013
    Messages:
    454
    Two questions about the Turks, one for Leoreth and one for the crowd:

    1. How does their 2nd UP (Barb cavalry join you when at war) works?
    I've tested by DoWing China at the first turn then WBing horse archers and lancers all around my border.
    What happened was that they were enabled to come inside my borders and captured all my cities.
    Not a single one of them turned into my unit.

    2. How are they supposed to achieve their UHV?
    They start with literally no developed tiles (except for roads), a bunch of already outdated units, and terrible tech.
    The only area they can capture with their starting oghuz is India, which is foreign core.
    Both the Chinese and Arabians (especially with their UU's, which both directly counters oghuz) seem way beyond the Turks' ability to conquer.
    I am having trouble figuring out how to control 6% of the world (which is more than the Turks' initial territory plus China plus Persia) in 30 turns.
    Does anyone has any ideas?
     

Share This Page