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

Beyond the play - Community MOD

Discussion in 'Civ4 - Modpacks' started by P&nny, Aug 15, 2019.

  1. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    AMEN friend:)!
    All mods should use, there should law :)))
     
    devolution likes this.
  2. Zeta Nexus

    Zeta Nexus Deity

    Joined:
    Jan 23, 2014
    Messages:
    4,384
    Gender:
    Male
    Location:
    In a constant brainstorm...
    Yes, I live in Hungary. Austria-Hungary would be fine in a RFC scenario in a particular time period but not in a general mod.
    That's better. But if I may add a little more to this:
    Jurta (pronounce 'yurta', Hungarian for Yurt) fits only a very narrow time period: When the nomadic Hungarian tribes arrived to the Karpats and settled there.
    As a UB I'd rather suggest Végvár (literally 'end-castle' or 'edge-castle'). They were used especially on the borders throughout the middle ages.
    Huszár is fine.

    In AND Mega Pack you can find 100+ civs with at least 2 leaders for each, and some more leader heads for vanilla civs. It's an add-on for AND2 and Chronicles of Mankind.
    Maybe you want to use something from it :)
     
  3. Roamty

    Roamty BTS

    Joined:
    Nov 30, 2005
    Messages:
    538
    Gender:
    Male
    Location:
    South Park
    New screens no game change just to show more information. You can just copy and paste or use WinMerge to see what I change.
     

    Attached Files:

  4. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    O waw !
    I'm glad enough people show interest and download the MOD... let along they produce code for it !

    I like it, super easy to include, will do in 2.11 whenever that is...
    Very similarly I thought about including this from platyping (Unique text for Civ in DOM screen - https://forums.civfanatics.com/threads/platys-peculiar-pleasant-posh-python.497337/page-2)...but I just don't have that much interesting stuff to say ?!

    On a general note, am quite happy were things stand as a whole, and initially I though 6 extra Civ to round up to 40 of them sounded quite nice, and would cover all traits combos -I also though 2.10 sounded like enough version to get things right... guess they'll be some more-

    But I'll clean that up eventually, separating those 2 would be a natural way to expand :)

    Started reading the topic on Advanced Civ more,
    I'll be honest I think order of priorities was/is
    MP Balance / Strategy / Depth > MP capacities > Cleaness / Professional Look / Clarity > Thematic > Solo Gameplay
    ...but it doesn't mean I'm dismissing it ! Quite the opposite, it's quite interesting !

    I did think about starting with the BUG MOD, I didn't, possibly by lack of skills at the beginning (I've improved through time, especially Python) and I believe too late to come back on that.
    I see advanced Civ is built on BUG + source of K-MOD
    I also Advanced Civ has balanced component etc.

    What would you think is the best source to take assets that improve AI gameplay (only) and put them in ?
    I'd be okay to do that. I'm presuming it be all SDK and located in the file I less commonly touch like CvCityAI etc. so relatively easy to merge.
    Also call me obsessed but I want to keep every fundamental change as an option so that's the way I'd present it




    Other

    The other major component I wanted to look at is this :
    https://forums.civfanatics.com/threads/sdk-modcomp-unit-fuel-mod-includes-global-fuel.269430/
    ... is there interest ?

    I have a clear vision of how to do it but it would be some work...(I would refine the principle)
    I haven't so far because finding the right balance for fuel consumption would be difficult, it require tons of playing to get a right balance for all types of map size, game (did you start ancient age or Modern...? Teamer or Solo?). Could be a lot of games where your tank doesn't move ! :O
     
  5. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    advciv,
    without a doubt.

    adv has it, perfected for mp play.

    thats a good number,
    more civs can make the gameload slower.

    that modder did some wonderful stuff.
    i used to use a lot of his work.

    thats one of the better mod ideas that was made,
    only issue that the ai wouldnt use it right. im against adding only human mods...
    also - its a really game changer game mod, need to balance and test for many games as you said, not sure worth the effort these days, since not many play good old civ4.

    keep at it. until there will be a true successor to civ4, if ever, it will take...long.
    only downfall of civ4 is the 32bit memory issue.
     
    devolution likes this.
  6. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Hello Fanatics !
    Big update (2.16) this week so I updated all the topic again (I usually only update the download link)
    This is progressing well and seeing more and more plays, last couple of updates were mostly to fix bugs in fact it's all extremely stable now and I don't know of any bugs left:)

    Just need to spread the word more now !
     
  7. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    Well done!!!
     
  8. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Hello everyone, new update for this ! 2.18 is around now and we have more and more interest and (multi)players on it ! Great !

    For next step I've been asked to make the MOD (much) smaller and also a "simple" MOD rather than a full-fledge game installation.
    I'm looking actively at this and will probably make a concurrent "light" and "full" version before eventually switching full to the light/normal MOD version.

    I do struggle to do this part though (which I thought would be easy) so anyone with the skills to do that would be welcome to look here... :
    https://forums.civfanatics.com/thre...mod-to-subdirectory-one.665034/#post-15969115
    https://forums.civfanatics.com/thre...d-full-dump-on-virtual-address-access.665032/


    Otherwise please do let your feedback here or elsewhere on this new update :hug:
     
  9. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    i actually think this is a cool feature and unique in the mod scene.
    keep at it i think.
    splitting mod into other mods will start splitting your attention, making stuff aligned and such, trust me, i know.

    keep doing what you are doing.
     
  10. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Hello, as some may have seen, I've added version updates etc. we're at 2.21 :)
    More people have played this in multiplayer recently with this version so am really glad !

    However there is an issue with XML loading, for some people (I confess I've seen it for myself too before),
    Which is super easily solved, but still annoying.

    Anyone know how to fix "Permanently" ?



    To fix around, as I updated in the first post, you have to do this :


     
  11. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    huh,
    i was just thinking about you this morning , wondering if we'll get an update from you :)
    funny.

    for your xml issue:
    you can clean the cache folders:
    C:\Users\[YOUR USER]\AppData\Local\My Games\Beyond the Sword\Profiles

    i encountered many things, this may help you.
     
  12. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Ah thanks ! (for continuous support and your thoughts !)

    I note well what you say but not sure it will solve it, weirdly have had report of people installing a fresh install of the game on a new PC and still getting the issue.
    We don't know of any way to "force" the value to be 1 at all times do we... ?
    Am thinking either of those:
    - Force "1" at creation of files (would work since in next version they'll be a dedicated ini file
    - C++ doesn't read the value and always assume it's 1 (I'd be super happy to force the "long" load on people
    - Change in the .ini the value afterwards.
     
  13. f1rpo

    f1rpo plastics

    Joined:
    May 22, 2014
    Messages:
    1,001
    Location:
    Germany
    This post by @Nightinggale describes how to disable the XML cache through the DLL. As far as I can tell, the XML cache isn't used for (BtS) mods anyway, but, since you deploy your mod standalone, I guess it isn't loaded as a mod. So this might actually solve your problem.

    There's still the file cache, which probably deals with the catalog*.dat files in the cache folder. Those files get written even when DisableFileCaching or DisableCaching is set, but perhaps the INI settings prevent the EXE from reading the file cache. I don't see any difference in loading times with and without file caching.

    The DLL can change INI settings too (example), but, in the case of the file cache, it seems that the EXE reads the INI file and writes (reads?) the file cache without calling any DLL function in between. INI settings changed by the DLL get saved in the .ini on disk (at least that's what happened in a test I did, iirc), so, if you disable file caching through the DLL, it'll at least be disabled on subsequent starts. (The flipside is that the cache will remain disabled when players load other mods. But, then, the file cache doesn't seem to have any benefit, so players shouldn't mind.) Well, I doubt that the file cache interferes with XML loading anyway.

    If you'll distribute an INI file along with the mod, then, sure, you could just disable the caches there. However, making settings like UserProfile, Alias and screen dimensions for the players sounds inconvenient for them. I guess you could copy those settings from the CivilizationIV.ini under My Games, if you have an install script that can locate that file. :undecide:
     
  14. Nightinggale

    Nightinggale Deity

    Joined:
    Feb 2, 2009
    Messages:
    4,920
    I highly recommend not using the xml cache for any mod meaning disabling it for all mods is a bonus, not an issue.

    The xml cache saves the loaded xml files as bytestreams meaning it will not have to load xml and intrepid them. Sounds good on paper, but my guess is that the time saved on the computers we use today is less than a second. The cache is however problematic, both because updated xml files won't apply and because modders will have to maintain the read/write functions in CvInfos.cpp, something which you can't assume will be done. It's a detail, which is so easy to overlook when adding a new tag to an xml file and if overlooked once, the cache won't work as intended.

    The cache is used in CvXMLLoadUtilitySet.cpp. Search for gDLL->cacheRead and gDLL->cacheWrite. In theory you can change the code to remove all calls, but it's way easier to mod CvXMLLoadUtility::LoadPlayerOptions and force the config file as you would like it.
    PHP:
    gDLL->ChangeINIKeyValue("CONFIG""HidePythonExceptions""0");
    gDLL->ChangeINIKeyValue("CONFIG""DisableFileCaching""1");
    gDLL->ChangeINIKeyValue("CONFIG""DisableCaching""1");
    Unrelated but still worth mentioning: I always force python exceptions to be enabled. Not only will it make bug reports more useful, the game engine has a nasty habit of restoring this to the default 1, hence hiding python exceptions for yourself. The main reason I decided for force it to be always on in WTP is because I overlooked a bug because the game had decided to hide exceptions while I remembered having set it to display them.
     
    keldath likes this.
  15. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Well I certainly am very very glad I dared ask this one, because the answers have been beyond expected... Thanks a ton !
    Those 2 lines I've added extremely easily yesterday and I could also test-proof that it works speedily, much much appreciated :thumbsup:
    I did have a look to the XML tag of my civic that provides electricity, and to all new tags in CvInfo in the part of Civics, but I don't see any read/write that is erroneous; strange. There must be a root case though, but I haven't observed a OOS for this part when players rejoin; so I did not think there would be a mistake.

    I'm clearly not the most knowledgeable on the cache but I can only agree and don't see why Firaxis built it like this. Even at the time it must have saved 3 seconds to load max.
     
    Last edited: Apr 16, 2021
  16. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    Talking about performance, and seeing such insightful feedback... :

    What do you think would be the performance impact of increase the MAX_CIV_PLAYERS to (my) amount of Civs (so probably 40/41) ?

    Technical implementation is easy even though I realize I'll need to look at almost all mapscripts to be able to handle more than 18 starting spots (and I'll probably do a new WorldSize for it, which needs handling in the maps as well; although I'll mainly would do this for this map : https://forums.civfanatics.com/threads/earth-evolution-v4-for-btg-and-historical-versions.669255/)

    It will probably be useful for 1% of the games so I don't want to hinder the performances too much by putting this; there is lot lot calls to MAX_CIV_PLAYERS so am worried the additional times in the loop will be noticeable.
    Depending on feedback I guess my alternative is to make a separate DLL and put it in a MOD folder of my BTG version (having built it a standalone offers this possibility; but I think it gets messy and confusing to have "sub-MODs")
     
  17. Zeta Nexus

    Zeta Nexus Deity

    Joined:
    Jan 23, 2014
    Messages:
    4,384
    Gender:
    Male
    Location:
    In a constant brainstorm...
    I'm not an expert but I can tell how it is in AND2: We have 2 dll files, a 50 and 100 civs limit.
    I have played quite some time with the 100civs dll and turn times were okay (for me at least). I also have to add that even though it was 100civs limit I had more than 30-35 civs alive at any given time.
     
  18. keldath

    keldath LivE LonG AnD PrOsPeR

    Joined:
    Dec 20, 2005
    Messages:
    6,926
    Location:
    israel
    The more civs,
    Tge bigger the map slower turn time...

    But i guess its not that tough
     
  19. P&nny

    P&nny Warlord

    Joined:
    Sep 1, 2007
    Messages:
    144
    I read you well, and it's valuable feedback but I will rephrase it for a sub-question which is more important to me :

    What kind of impact using a DLL which allow say 41 civs will have on games with 6 or 8 Civilizations

     
  20. f1rpo

    f1rpo plastics

    Joined:
    May 22, 2014
    Messages:
    1,001
    Location:
    Germany
    A few years ago, I've tested that (through a single game on AI Auto Play) for 16/18 vs. 48 civs, and found that the higher limit added about 50% to AI turn times: link to post
    That seems like a lot in retrospect and may have been specific to my mod, or rather its state at the time. More recently, after a lot of optimizations, the difference is down to 8% with 18 vs. 31 civs (again, tested only through a single sample game). Which would be acceptable to me, but, now that I've been using 18-civ and 48-civ DLLs for years, I don't want to break everyone's savegames. For scenarios, I've changed the WBDesc parser so that e.g. a 48-civ DLL can parse 18-civ scenarios – so long as the scenario has fewer civs than the DLL allows, it's fine.

    Perhaps you could do your own test through AI Auto Play (or, if that's unavailable, game.aiplay on the Python console) to get an impression of the performance penalty in your specific case.

    On a side note, my intuition is that the memory allocated for arrays of size MAX_PLAYERS and MAX_TEAMS (i.e. cache performance) is a bigger issue than the loops over dead players and teams.
     

Share This Page