Hi Senecasax, welcome back! I'm running a copy of TradeAssist on an old PC next to my Mac right now, and it's very cool. I've pointed it at the Civ3 game folder on my Mac, via Panther Windows file sharing, and it tells me what each civ has to trade without all that tedious checking through the F4 screen each turn. This alone is likely to reduce turn times significantly on higher difficulty-level games.
I've been pondering how to adapt it as a Mac utility. The data management part is mostly done or doable, but delivering information to the player is not trivial. TradeAssist on a PC can be brought to the front fairly easily when it has something to say, because Civ3 in Windows runs in its own window and can be pre-empted by another application. But the screen-domination mode of Mac-Civ3 makes add-on utilities like this for the Mac more of a challenge, as other applications can't get to the front or prvide visual cues for the player.
I'm thinking maybe it would have to detect that something significant has changed and sound an audible alert so that the player can pause the game and go look at it. However, a sound-based interface would depend on having sounds on. Am I alone in using my Mac with the speakers muted most of the time to avoid disturbing the rest of the family? Another option is to use a second machine to monitor the game, as I am doing currently with my PC. But most people don't have two machines they can apply to the problem. Comments on this conundrum would be welcome, as I don't feel I have any satisfactory solution. It first arose when I was thinking about a turn-logging utility for QSC logs, which has a similar requirement to share screen space with the game.
Re. co-operative development:
I have a Cocoa/Objective-C framework in development to read a .sav file, expanding it on the fly if necessary, and to parse it into a Cocoa database that can be used by application code for viewing, or maybe editing the game data. It already provides sufficient capability to be used for a "Mapstat" type application for domination checking, and it's close to having enough data for the "TradeAssist" function. I also have it in mind to use it for tools similar to those of Dianthus, by extending it to provide graphical game data displays.
Once this framework is in a usable state it should be possible to share it as a library and for you or others to create specific text-based applications just by defining the relevant NIB file and adding glue code if necessary between it and the database. Providing a graphical display of the game data will need more work, but should also be feasible. The format of the static scenario/BIC part of the .sav file is well documented. But my knowledge of the dynamic in-game part of the .sav file format is rather limited, so all additional sources of this sort of format information would be welcome.
I've been pondering how to adapt it as a Mac utility. The data management part is mostly done or doable, but delivering information to the player is not trivial. TradeAssist on a PC can be brought to the front fairly easily when it has something to say, because Civ3 in Windows runs in its own window and can be pre-empted by another application. But the screen-domination mode of Mac-Civ3 makes add-on utilities like this for the Mac more of a challenge, as other applications can't get to the front or prvide visual cues for the player.
I'm thinking maybe it would have to detect that something significant has changed and sound an audible alert so that the player can pause the game and go look at it. However, a sound-based interface would depend on having sounds on. Am I alone in using my Mac with the speakers muted most of the time to avoid disturbing the rest of the family? Another option is to use a second machine to monitor the game, as I am doing currently with my PC. But most people don't have two machines they can apply to the problem. Comments on this conundrum would be welcome, as I don't feel I have any satisfactory solution. It first arose when I was thinking about a turn-logging utility for QSC logs, which has a similar requirement to share screen space with the game.
Re. co-operative development:
I have a Cocoa/Objective-C framework in development to read a .sav file, expanding it on the fly if necessary, and to parse it into a Cocoa database that can be used by application code for viewing, or maybe editing the game data. It already provides sufficient capability to be used for a "Mapstat" type application for domination checking, and it's close to having enough data for the "TradeAssist" function. I also have it in mind to use it for tools similar to those of Dianthus, by extending it to provide graphical game data displays.
Once this framework is in a usable state it should be possible to share it as a library and for you or others to create specific text-based applications just by defining the relevant NIB file and adding glue code if necessary between it and the database. Providing a graphical display of the game data will need more work, but should also be feasible. The format of the static scenario/BIC part of the .sav file is well documented. But my knowledge of the dynamic in-game part of the .sav file format is rather limited, so all additional sources of this sort of format information would be welcome.