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

CIA3: Civ Intelligence Agency III

Discussion in 'Civ3 - Utility Programs' started by Puppeteer, Apr 8, 2020.

  1. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    Civ Intelligence Agency III (CIA3) is intended to be a non-spoiling, non-cheating game assistant for single-human-player games of Sid Meier's Civilization III Complete and/or Conquests. Multiplayer non-spoiling support may be possible in the future.

    CIA3 watches save game folder locations for new .SAV files, then reads the file and updates the information. Every time you save your game or begin a new turn, a new save or autosave will be generated and trigger CIA3 to update its info. It does not update mid-turn unless you save your game during the turn.

    Previous assistants such as CRpSuite's MapStat (download page) and CivAsist II (download page) worked well for many years, but neither of these seem to work in Windows 10 for most users.

    I have been on-and-off since 2013 been working on a save game reader for other purposes with Civ3 Show-And-Tell (C3SAT). Until 2020 I explicitly did not want to recreate a game assistant, but now that the others aren't working and seem to be abandoned by their creators, I started working on CIA3 from the C3SAT code base.

    2020-05-16 release: cia3-0.4.2.exe

    Source code on GitHub. Release code is in the master branch, and new work is done in the develop branch.

    Known limits:
    • 64-bit OS only for this release (32-bit can be provided, but not expected to be widely in-demand)
    • Only works with Conquests/Complete, not PTW or Vanilla
    • IE or Edge browsers won't work, but most others should
    • No pop-up alert functionality
     
    Last edited: Jun 15, 2020
  2. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    Screenshots of alpha 10. (v0.4.1 is very similar) The first is the mini GUI that opens when running the program, and the rest are from the web interface.

    In the map, red-shaded tiles have previously had forests chopped and can't be re-harvested for shield production.
     
    Last edited: Apr 9, 2020
    Malex likes this.
  3. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    Reserved post 2
     
    Malex likes this.
  4. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    Current features in v0.4.1:
    • Available tech trades
    • Map highlighting forest chopped squares
    • Contact, will-talk and war/peace status for opponent civs
    • Display of map generation settings, world seed, and difficulty
    • Should work with custom scenarios/conquests
    Known issues:
    • Eliminated civs still show up in lists
    • At-war won't-talk civs will disappear from tech trades table until they're willing to talk
    This program opens a small GUI window with a web browser link, and the info and interface is in the browser. It won't work in IE and may not work in Edge.
     
    Last edited: Apr 9, 2020
    Malex likes this.
  5. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    For anyone who wants to dive into the innards of the save file (or default/embedded BIQ), /graphql is a GraphQL endpoint & API you may find interesting. All the info in the web UI is based on GraphQL queries. Browsing to /graphql with a browser will open the "Playground" UI for queries and schema & docs.

    Examples:
    Code:
    {
      unitCount: int32s(section:"GAME", nth: 2, offset: 28, count: 1)
      cityCount: int32s(section:"GAME", nth: 2, offset: 32, count: 1)
      numContinents: int16s(section:"WRLD", nth: 1, offset: 4, count: 1)
    
      civs {
        playerNumber: int32s(offset:0, count: 1)
        raceId: int32s(offset:4, count: 1)
        governmentType: int32s(offset:132, count: 1)
        era: int32s(offset:216, count: 1)
        cityCount: int32s(offset:376, count: 1)
        atWar: bytes(offset:3348, count: 32)
        willTalkTo: int32s(offset:2964, count: 32)
        contactWith: int32s(offset:3732, count: 32)
      }
    }
     

    Attached Files:

    Last edited: Apr 9, 2020
    Malex likes this.
  6. vmxa

    vmxa Deity Supporter

    Joined:
    Feb 9, 2004
    Messages:
    13,879
    Location:
    Oviedo, Fl
    The project will be a boon to many, best of luck. Whatever the next version of Windows turns out to be and when it comes out, all may need your utility.
     
    Malex likes this.
  7. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    I removed the dev features from alpha 10 and updated the OP with the link to cia3-v0.4.1.exe.

    Thanks! There's a long, long way to go to being to approach the feature capability of CAII & MapStat, but the tech trade options alone makes this useful for me.

    I'm not sure what's next. The forest chop map and some of the game info were things I had figured out before. The techs I just recently figured out and were more difficult than I thought. I had hoped for more "low-hanging fruit", but seemingly obvious things like civ attitude and gold are not trivial!

    Actually, the next thing I really want is to find how to tell which civs are eliminated so I can remove them from tables/lists. You'd think that would be simple, but I haven't found it yet.

    I know indicating when a town is whippable is a relatively frequently requested feature, but I haven't even figured out how to properly parse the cities list yet; they don't seem to be consistently sized in the save. *I* would like a flip risk indicator and various corruption estimators, but I have a lot to figure out in the save data before I could even try to apply the published calculations.

    Another idea I have is to recreate the diplomacy screen (F4) leaderhead graph that is able to show up to 31 civs with war/peace indicators between them. Because that screen gets painful to use when there are more than 8 civs! But I haven't even tried to look for embassy info yet
     
    Malex likes this.
  8. vmxa

    vmxa Deity Supporter

    Joined:
    Feb 9, 2004
    Messages:
    13,879
    Location:
    Oviedo, Fl
    Yeah a 31 civ diplo screen would be great. I know Gramphos (sp) once posted on poly a file that had many of the layouts. If he still had that and would send it to you, that would solve some issues.
     
    Malex likes this.
  9. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    I was dormant on the project for a while but played a whole civ III game this week. (Unusual for me, but won by domination.) I noticed an issue with tech trades, so I looked into it.

    I updated OP with the link to the fixed version v0.4.2. It fixes a logic problem around showing tech trades available incorrectly for war and a few after-war turns. Now it will only show you the available tech trades for that civ if they won't refuse your envoy.
     
    Malex and vmxa like this.
  10. Ozymandias

    Ozymandias I saw the Great Library burn.

    Joined:
    Nov 5, 2001
    Messages:
    9,678
    Gender:
    Male
    Location:
    The lone and level sands
    It might (emphasize "might") be helpful to have a look at a YouTube link, in a thread I just started about Reputation & Diplomacy.
     
    Malex likes this.
  11. Puppeteer

    Puppeteer Emperor

    Joined:
    Oct 4, 2003
    Messages:
    1,324
    Location:
    Nomadic in the Rockes, USA
    Oops, the v0.4.2 link was bad for a few weeks. I just fixed it in the OP.
     
    Malex likes this.

Share This Page