Survey Time: Which Civ3 tools would you kill for, on which Mac OS?

Which Mac OS version do you boot up in?

  • OS X 10.2.x (Jaguar)

    Votes: 42 80.8%
  • OS X 10.1.x

    Votes: 5 9.6%
  • OS 8 or 9

    Votes: 1 1.9%
  • Older than OS 8

    Votes: 0 0.0%
  • Don't be silly. No one wants Mac Civ3 tools.

    Votes: 2 3.8%
  • I don't have a Mac.

    Votes: 2 3.8%

  • Total voters
    52
  • Poll closed .
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.
 
Well, for TradeAssist, I think that Command-H could do the job ok - drop the Civ3 window down, check for trades, and press Resume. In this case one would be spending about the same amount of time checking the trades on one AI as checking for all (which is a large cut in time to do this anyway). A sound alert wouldn't be amiss either, but it is trivial to make a preference that turns the alert on or off, for those who don't want it.

A framework that works with the SAV format would be most appreciated - I assume you are going to include in it the proper markers so someone doesn't write a program that can edit GOTM games without the GOTM team knowing. I assume it would be simple to make the SAV class a subclasss of a BIC class (for editing tool purposes, so one can do both BIC's and SAV's), since the first part of the SAV IS a BIC. I think it is important to keep knowledge of the actual SAV game data out of general hands as we don't want to see cheating through hexediting ruin the GOTM for mac users. I DO know that Gramphos (both here and at Apolyton) has some knowledge of this format, maybe you could ask him. As for reading the memory that Civ3 uses at runtime, I have little experience in that area.

As for actual graphical display of the game data, (i.e. maps, cities, etc), i had a thought. IF there ever comes a 1.29 civ3 editor, it will contain cities, units, etc. PERHAPS the framework/library or a derivative of it could offer a "stripping out" sort of function, where it takes the map, units, cities, civs and places them into a BIC that the editor can edit, then, after editing, places them back into the SAV, thus leaving AI attitudes, techs, etc unchanged. I know VERY little about the PC 1.29 editor, so i don't know how much can be changed with it.

Anyways, if you need any assistance, either coding or testing, let me know, i would enjoy helping any way i can.
 
Originally posted by senecasax
Well, for TradeAssist, I think that Command-H could do the job ok - drop the Civ3 window down, check for trades, and press Resume. In this case one would be spending about the same amount of time checking the trades on one AI as checking for all (which is a large cut in time to do this anyway). A sound alert wouldn't be amiss either, but it is trivial to make a preference that turns the alert on or off, for those who don't want it.
Yes, it's just so clunky! Why should you have to hide the game every turn when most times it's not necessary, and on my slow G4 the hide/show process isn't exactly instant.

A framework that works with the SAV format would be most appreciated - I assume you are going to include in it the proper markers so someone doesn't write a program that can edit GOTM games without the GOTM team knowing. I assume it would be simple to make the SAV class a subclasss of a BIC class (for editing tool purposes, so one can do both BIC's and SAV's), since the first part of the SAV IS a BIC. I think it is important to keep knowledge of the actual SAV game data out of general hands as we don't want to see cheating through hexediting ruin the GOTM for mac users. I DO know that Gramphos (both here and at Apolyton) has some knowledge of this format, maybe you could ask him. As for reading the memory that Civ3 uses at runtime, I have little experience in that area.
Yes, as I indicated earlier to Cracker, I will add the GOTM ant-cheat markers if/when I release a library with editing capability.
Yes, it will already read a standalone BIC file.
Yes, I would make it a compiled library so that the file structure details are opaque.
And yes, I'm aware of Gramphos, and I know he may be prepared to help with the save file info. I'll contact him when I have implemented what I have and established what else I need to know.

As for actual graphical display of the game data, (i.e. maps, cities, etc), i had a thought. IF there ever comes a 1.29 civ3 editor, it will contain cities, units, etc. PERHAPS the framework/library or a derivative of it could offer a "stripping out" sort of function, where it takes the map, units, cities, civs and places them into a BIC that the editor can edit, then, after editing, places them back into the SAV, thus leaving AI attitudes, techs, etc unchanged. I know VERY little about the PC 1.29 editor, so i don't know how much can be changed with it.
Dunno! I'm not a BIC file editor expert, and I'm certainly not a fan of save file editing. If my framework can be adapted by someone else to help with this sort of activity, so be it.

Anyways, if you need any assistance, either coding or testing, let me know, i would enjoy helping any way i can.
Let's keep in touch.
 
I hope others will consider this a legitimate bump. I thought about it for about 5 minutes before making it.

I'm not sure if you're aware of Steph's ongoing project to make an improved editor. I wonder if between your research/skills & his a Mac editor of some kind could finally be possible.

:coffee:
 
Wow! No, I didn't know he was working on that. That's a big task, and I am surprised it's considered necessary - Windows users already have an editor!

The file format and data structures are well documented, and don't need significant research. There are two big problems in creating an editor.

One problem is the need for a map generator. Creating maps purely by hand is not a real option in a serious editor. The map generation code used in Firaxis' editor is the same as that used in the game itself, so attempts to persuade them to provide details have fallen on deaf ears. Gyathaar and I did some interesting work on that a while back, but it wasn't ever finished.

The other is the sheer size of the user interface, as you can see from Steph's screenies. Brad once said he aged significantly when building the old Civ3 Mac editor, just from the massive job of linking all the user interface elements to their data providers. I did wonder whether that job could be simpler now that we have Cocoa bindings, and the whole Cocoa CoreData framework. I wouldn't want to try to do it by converting to OS X from Windows .net structures.

I have Cocoa code to parse the file structure - used in the FileValet utility I created; and I have code that will render the map terrain reasonably well, using a .pcx image format converter. But with the arrival of Civ4, and the availability of Windows virtual machines, my incentive to create a proper editor has faded.

What do you think the real interest in a Mac Civ3 editor would be? There's a lot of work required to create a good one, and it would be hard to justify if only half a dozen people were interested.
 
What do you think the real interest in a Mac Civ3 editor would be? There's a lot of work required to create a good one, and it would be hard to justify if only half a dozen people were interested.
I'm personally aware of several people who use Macs, but maintain some kind of Windows arrangement for the editor & utilities. While we can use it under Parallels or whatever, it would be really nice to have some sort of native Mac capability.

I'm not clear from your response if you were thinking of some kind of collaboration with Steph. would any of Steph's work be transferable to a Mac version. If nothing else, perhaps he would be worth consulting about his algorithms for manipulating the files/values.

I guess one way to gauge interest would be to make a poll thread. I'd be glad to set one up. But I think there ought to first be at least tentative interest on the makers' part, rather than get people's hopes up only to dash them one more time.
 
If people already have a solution then there seems little point in reinventing that wheel. The question is, how many people *can't* edit Civ3 scenarios because they are stuck on PPC hardware or they are so financially strapped that they can't buy Parallels/Windows or Crossover. Does the size of that audience justify doing a major development?

I really don't see a lot of scope for collaboration with Steph. Cocoa and Windows.net don't mix, and I don't want to get into Mono. I'll contact him to see if he has any roadblocks, but since he's into public beta testing mode, I assume he's resolved most of his problems.

As I said, there's no mystery about the file structure and its values. There are some challenges with respect to creating and editing maps, but it doesn't look as if Steph's going there yet, and they are unresolved for me as well. He can advise users to create a map and initial scenario using the standard editor, then use his editor for all the extra goodness. That would not be an option for a Mac editor, which would have to stand alone and include its own map creator/editor.

Bottom line - I don't see enough incentive to start a major software project with a small and diminishing target audience. Sorry :(
 
If Java would be an acceptable language, my already-existant Civ3BIQCompare utility has the BIQ file import functionality, and IIRC I also added BIQ file save functionality as well in a non-released version (which I could upload should someone be interesting in furthering development). That'd save a bit of work, although the remainder of the editor would probably be much more work - I started to add a Buildings tab, but the whole endeavour is rather dry, and I switched to another project with the Buildings tab just started. The other catch is that I used some Java 1.6 features in the interface, which limits it to Mac OS X 10.5 Leopard - not having a Mac computer I didn't realize that until I'd already done most of the work, and knowing that Java 1.6 is supported on Windows 2000, I didn't expect OS version compatibility to be an issue. As far as I know, at least PowerPC/Intel shouldn't be an issue.

Still, if someone's interested in doing this, it might save a bit of work. It'd also serve as an editor for Linux/Solaris if someone took it to completion, which might make a few people happy. I don't have any particular plans to take it further at this point, and have no idea how I'd do the map sections, but the rules sections should be straightforward, if dry.
 
I'm not interested in writing in Java, I'm afraid. The Java-Cocoa bridge is deprecated now, and doesn't support that latest Cocoa APIs. I think I would only consider doing anything at all if I could use CoreData and Cocoa Bindings to reduce the hard labour.
 
Back
Top Bottom