CIA3: Civ Intelligence Agency III

Puppeteer

Emperor
Joined
Oct 4, 2003
Messages
1,687
Location
Silverdale, WA, 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.3.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:
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.
 

Attachments

  • 2020-04-08 18_43_44-CIA3_ Civ Intelligence Agency III _ CivFanatics Forums.png
    2020-04-08 18_43_44-CIA3_ Civ Intelligence Agency III _ CivFanatics Forums.png
    10 KB · Views: 331
  • 2020-04-08 18_44_30-Civ Intelligence Agency III.png
    2020-04-08 18_44_30-Civ Intelligence Agency III.png
    12.5 KB · Views: 326
  • 2020-04-08 18_44_38-Civ Intelligence Agency III.png
    2020-04-08 18_44_38-Civ Intelligence Agency III.png
    12.4 KB · Views: 332
  • 2020-04-08 18_44_50-Civ Intelligence Agency III.png
    2020-04-08 18_44_50-Civ Intelligence Agency III.png
    24.8 KB · Views: 321
  • 2020-04-08 18_45_02-Civ Intelligence Agency III.png
    2020-04-08 18_45_02-Civ Intelligence Agency III.png
    17.1 KB · Views: 326
  • 2020-04-09 13_40_56-Civ Intelligence Agency III.png
    2020-04-09 13_40_56-Civ Intelligence Agency III.png
    17.9 KB · Views: 310
Last edited:
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:
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)
  }
}
 

Attachments

  • 2020-04-09 13_39_53-Playground - http___127.0.0.1_8080_graphql.png
    2020-04-09 13_39_53-Playground - http___127.0.0.1_8080_graphql.png
    35.1 KB · Views: 225
Last edited:
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.
 
I removed the dev features from alpha 10 and updated the OP with the link to cia3-v0.4.1.exe.

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.

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
 
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.
 
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.
 
Original post updated with link to version 0.4.3 which now reads the gold for each civ in the available trades table.

This now has the most-used functionality for me from CivAssist II and works on modern machines. It is butt ugly, but hey it works.
 
So wait, how do I do this? I clicked on the download and it just opens up a box on my computer that says to follow a link.
 
Yeah, the interface is a bit weird. It uses a browser for the interface, and that's what the link is to. It's not to the Internet. The part with the box with the link monitors the save files and makes the web pages for the browser.
 
Top Bottom