A plea to all modders - think of the Mac users

Skippy_Kangaroo

Prince of Denmark
Joined
Jul 3, 2006
Messages
255
Location
Sydney
With Civ IV for Mac having just been released there is a lot of interest in trying out all the mods that have been developed by everyone here. (I for one am interested.)

Provided the mod doesn't use .dll files it should be a simple drop into the Mac version. All the structures are the same.

The biggest problem is that most people seem to use self-extracting .exe files here. (Why? Have you no fear of viruses?) These can not be used by Mac users.

On the other hand, a simple .zip archive of the files (or pretty much any other compression format), sorted into appropriately named folders would allow for a simple drop in for Mac users.

Would modders be able to provide simlpe compressed archives of their files in addition to the .exe self-installers? Hey, a small readme saying what goes where would be a bonus.

Any chance of getting people to add a simple .zip archive of their already existing mods?
 
Who are these "mac users" you keep talking about? :wow: I have never heard of such an animal.

:D

You know what, even as a PC user I'm 100% behind you. I don't like this trend of providing self-extracting executables. All it does is put a different UI on the same function (and it's arguable whether it's more simple, or more intuitive, or user friendly UI) at the price of more limited functionality and control. So then the question is, who exactly does it benefit?

And now that we have a strange new kind of members joining us (you know, I think I heard of that "mac" thing, is it a new version of linux? :mischief:) it's doubly important to use cross-platform formats.
 
Rabbit said:
All it does is put a different UI on the same function (and it's arguable whether it's more simple, or more intuitive, or user friendly UI) at the price of more limited functionality and control. So then the question is, who exactly does it benefit?

I'm not sure I'd call it "arguable". Unless they had a friend install Civ4 for them, 100% of the people who are installing a Civ mod have used an installer previously. To modders, copying the files to the right place is second nature, but the fact that the correct spot to place your newly downloaded mod can be in one of multiple areas (custom assets, mods folder in my docs, mods folder in program files) means there will be goofups. Especially with the extracting a folder and having that "directory being too deep" problem. I'd say using exe's would be much more user friendly than relying on the user to manually place the files in the correct directory. Well, ok, so I'm arguing with you, so I guess that would make it arguable :P

That being said, I agree with you on everything else. Having mods being for download only as an exe is definitely going to hamper some people's ability or willingness to use it. If the server space were available, I would suggest allowing the mod to be downloaded as just the files which can be manually placed (in case the person wants to avoid using exe's or can't due to the fact that they're on a mac) as well as in an exe form if you so desire, for those who aren't comfortable with manually placing the files.

I guess if someone really wanted the install usability of a program but can't handle having both the files as a zip and an exe on the same server, I guess there is always writing a python script that installs it for you that you can include in the zip.
 
This sounds great.

While this is obviously the appropriate forum for MODS, may I suggest that people drop a note over in the Mac forum if and when they provide their mods in a non-exe format? At least initially it'll make Mac compatible dowloads easier to find. Either that or a moderator here creates a sticky thread where people can find out which MODS are available as plain .zips?
 
Skippy_Kangaroo said:
Provided the mod doesn't use .dll files it should be a simple drop into the Mac version. All the structures are the same.
Does this mean SDK mods aren't compatible with mac? I didn't see any of the larger mods lately that didn't use dll files since they all start making use of the SDK.
 
Ploeperpengel said:
Does this mean SDK mods aren't compatible with mac? I didn't see any of the larger mods lately that didn't use dll files since they all start making use of the SDK.
Pretty much.

Graphics, XML (even Microsoft's interpretation of XML) and Python are all cross-platform. dll files, sadly, are not.
 
Skippy_Kangaroo said:
Pretty much.

Graphics, XML (even Microsoft's interpretation of XML) and Python are all cross-platform. dll files, sadly, are not.
Yeah, that would make sense, since the DLLs are basically a result of a compile operation which is definitely platform specific. However, aren't there C++ compilers for Mac, I mean the game was compiled into something that works on Mac wasn't it. I can't imagine they rewrote the whole code for it... unless that's exactly what they did :confused:

Would it be possible to compile the sdk into a mac format? Perhaps it only needs few adjustments, like changing some core functions to mac ones instead of PC but then it's possible that Firaxis will release a mac compatible SDK code. Then again, the Mac market in comparison to PC (in terms of games, and Civ4 specifically) is marginal and more so for Civ4 modding market and it might just not be worth the effort for them.
 
Rabbit said:
Would it be possible to compile the sdk into a mac format? Perhaps it only needs few adjustments, like changing some core functions to mac ones instead of PC but then it's possible that Firaxis will release a mac compatible SDK code. Then again, the Mac market in comparison to PC (in terms of games, and Civ4 specifically) is marginal and more so for Civ4 modding market and it might just not be worth the effort for them.

I was wondering the same thing. Now, I don't know anything about porting to Mac, but it seems in my experience doing Windows <---> Unix the majority of the problems (for games, anyway) seem to arise with the graphics / sound / input / etc. All of this code has been abstracted away from the SDK. Granted, there are some functions that I would believe to be OS-specific still in the SDK (Some of the code in FAssert.h, for example), but even these are enclosed in #ifdef blocks for their respective OS's.
 
Rabbit said:
Would it be possible to compile the sdk into a mac format? Perhaps it only needs few adjustments, like changing some core functions to mac ones instead of PC but then it's possible that Firaxis will release a mac compatible SDK code. Then again, the Mac market in comparison to PC (in terms of games, and Civ4 specifically) is marginal and more so for Civ4 modding market and it might just not be worth the effort for them.

Undoubtedly it is possible - at least for Aspyr. But I won't be holding my breath waiting for it to happen. It could also be that even with a Mac SDK you end up with limited cross-platform portability (it could well be that the Mac SDK can generate Windows and Mac mods while the Windows SDK wouldonly generate Windows mods alone - thus it has always been).

Anyway, I'm happy to start small and just see about getting all the simpler, non-dll mods out of their Windows prison (i.e. their exe file wrappers) and set free to visit the land of milk and honey :)
 
Rabbit said:
Yeah, that would make sense, since the DLLs are basically a result of a compile operation which is definitely platform specific. However, aren't there C++ compilers for Mac, I mean the game was compiled into something that works on Mac wasn't it. I can't imagine they rewrote the whole code for it... unless that's exactly what they did :confused:
There is no split between the basic game engine and the CvGameCore code in the Mac version. It's all compiled into a single executable. So long as this is the case, if Aspyr (the Mac version publishers) wanted to offer an SDK they'd have to publish the entire surce code, and I can't see that happening.

Would it be possible to compile the sdk into a mac format? Perhaps it only needs few adjustments, like changing some core functions to mac ones instead of PC but then it's possible that Firaxis will release a mac compatible SDK code. Then again, the Mac market in comparison to PC (in terms of games, and Civ4 specifically) is marginal and more so for Civ4 modding market and it might just not be worth the effort for them.

If it's true that most Civ4 mods developed today use the SDK then ...

- Modding seems to be at the heart of the Civ4 experience.
- Every Mac ships with all the programming tools required for modding built in
- I'm sure the relevant graphics tools can be brought to the Mac as well, if they aren't there already.
- The Mac community has no shortage of users with creative talent.

- Ergo, if Civ4 for Mac takes off then I can see Aspyr reworking the SDK to compile on a Mac, and reworking the Civ4 code structure to interface to a library. But that ain't the case today.
 
[Double Post Alert - but it's on a different aspect from my last one]

To modders, copying the files to the right place is second nature, but the fact that the correct spot to place your newly downloaded mod can be in one of multiple areas (custom assets, mods folder in my docs, mods folder in program files) means there will be goofups. Especially with the extracting a folder and having that "directory being too deep" problem.
I agree, and I have an alternative solution that I'm working on for the Mac community. I think it's an effective idea, and it gets away from building and maintaining a new installer for every mod you create. I'm sure someone could adapt it for Windows if it seemed appropriate.

My idea is to have a standard mod installer application. It knows the folder structures for a range of moddable games, and it finds out, or you tell it, where your copies of your moddable games are. Then whatever mod you drop onto it as a simple .exe file will be expanded and installed into the appropriate folders, to any depth. I created a version of it that seems to work well for Civ3 and some other games, and I want to adapt it now for Civ4.

To this end, I have a question. The above quote states that mods might have to populate several different locations in the file system. What determines whether a Civ4 mod should go into custom assets, mods folder in my docs, or mods folder in program files? Is there a simple reference that explains this?
 
AFAIK, nothing should ever go in the my documents area. Putting things there causes errors sometimes.

A mod goes to custom assets when you want that component to be involved in every game you play, including all mods and the regular game. This area is more for selected mod components than full mods. I, for instance, put improved interface files here.

A mod should be placed in its own mod folder when it is meant to be played stand-alone. So it would basically be for modpacks and scenarios. My folder is populated with things like Fall from Heaven, Rhye's Catapult, EE3, WWII SF&B, etc.
 
CustomAssets *is* in the My Documents/My Games/ area, isn't it? So that's where BlueMarble goes, for example?

There seem to be two Mods folders - one in my /Applications/Civilization IV/ folder - equivalent to Windows \Program Files\Civlization IV, I guess - and one spelt 'MODS' in the same folder as CustomAssets. Whch of these should be used for modpacks and scenarios?
 
Skippy_Kangaroo said:
With Civ IV for Mac having just been released there is a lot of interest in trying out all the mods that have been developed by everyone here. (I for one am interested.)

Pray enough MAC users buy the CIV_4 game... if the publisher and developer doesn't earn enough money then it will greatly damage the chances of any sequels(CIV_5) being released for MAC.
 
AlanH said:
[Double Post Alert - but it's on a different aspect from my last one]


I agree, and I have an alternative solution that I'm working on for the Mac community. I think it's an effective idea, and it gets away from building and maintaining a new installer for every mod you create. I'm sure someone could adapt it for Windows if it seemed appropriate.

My idea is to have a standard mod installer application. It knows the folder structures for a range of moddable games, and it finds out, or you tell it, where your copies of your moddable games are. Then whatever mod you drop onto it as a simple .exe file will be expanded and installed into the appropriate folders, to any depth. I created a version of it that seems to work well for Civ3 and some other games, and I want to adapt it now for Civ4.

I was thinking something along the same lines (only for Civ4, since I'm not really big on other games :P). However, rather than as a simple exe, I would probably use .zip or some other compression algorithm that has python bindings. Then, write the thing in python, making it so you can just download the file, then drag and drop to the Mod Installer application window. Since it's written in python it would be easily ported.

Of course, I'm too busy trying to make my mod to work on it :P

To this end, I have a question. The above quote states that mods might have to populate several different locations in the file system. What determines whether a Civ4 mod should go into custom assets, mods folder in my docs, or mods folder in program files? Is there a simple reference that explains this?

I wish there were, but it seems to be mainly an evolving process in guess and check. Right now, if it's something you want to use with your typical Civ4 game (Clock mod, small unit apperance changes, etc). you can place it in your custom assets. Basically all modpacks are placed in the main mod folders (located in windows under C:\Program Files\...etc.), since there seems to be graphic problems when placing them in the MyDocs\...\Mods directory.
 
Gerikes said:
I was thinking something along the same lines (only for Civ4, since I'm not really big on other games :P). However, rather than as a simple exe, I would probably use .zip or some other compression algorithm that has python bindings. Then, write the thing in python, making it so you can just download the file, then drag and drop to the Mod Installer application window. Since it's written in python it would be easily ported.
Sounds good. I just got mine working for Civ4 BlueMarble.

Here's the UI for mine FWIW. The drop down menu at the top allows you to choose which game title you want to mod, and the window has room for a scrollable list of copies of that game on your hard drive(s). You drop the mod ZIP archive onto the copy you want to mod and away it goes, after a confirm-or-cancel message box.

ModInstaller.jpg

Right now, if it's something you want to use with your typical Civ4 game (Clock mod, small unit apperance changes, etc). you can place it in your custom assets. Basically all modpacks are placed in the main mod folders (located in windows under C:\Program Files\...etc.), since there seems to be graphic problems when placing them in the MyDocs\...\Mods directory.
OK, so there are only two places. I just need to work out how to detect which of those a mod file set should go into. Is it the case that a CustomAssets item would always have a folder structure that fits into the existing folder tree in CustomAssets, whereas a Mod would likely have its own unique folder tree root directory?
 
If you go into CustomAssets, then you're going to have trouble with save games. The "MOD" folder is much better.
 
Ok let's see, this is all I know as far as the various mod locations are concerned...

Technically MOD folder in my docs/my games/civ4 and in the civ4 installation folder should be identical but they're not. It seems that putting mods in the "my docs" location 'causes mods to have some errors, though I know of only one such error.

As far as custom assets vs. mod folder - well first of all, the contents of mod folder always takes precedense. Essentially the order of loading resources is - civ4 installation directory first, then custom assets, then the mods folder.

Also, when saving games that were played with some mod on, these saves are marked as requiring that mod, and you cannot play them w/ any other mod, even if the difference between the two mods is one line of xml description text. On the other hand, in the custom assets you can get away with quite a few changes in the middle of a game, i.e. save game, change custom assets contents, load game and keep playing. Of course some changes like that would 'cause a crash (removing a unit for example) but a lot will go through w/o a hitch.

In my opinion, an automated installer shouldn't actually allow you to put anything in the custom assets folder. Simply because when dealing with mods, you're dealing with separate entities that, unless you want to, will never "work together". However, as soon as you start dealing with the custom assets folder it's almost inevitable to run into merging (because otherwise there's really no point in using it), and consequently merging issues. So unless the installer will also merge mods, giving the option to put stuff into custom assets folder will only 'cause confusion and errors.
The idea here is basically this - if a person knowingly wants to put the mod into custom assets folder, then they know what they're doing and will have no problem* doing it manually, what's more, that's how they would probably prefer to do it anyway. On the other hand, if a person only wants to use mods and not interested in anything more indepth (like developing or merging them) then they wouldn't need that option anyway, and having it there will just confuse the issue.

Wow, so I was going to write only couple of paragraphs... that didn't work out too well :D

*by "no problem" I of course mean that they will not shy away from tackling all the problems that arise when merging mods :)
 
Hmm! This is more fun than a barrel of monkeys! Thanks for the inputs.

I don't think I can ignore the CustomAssets folder, as things like BlueMarble apparently have to go there.

How about the following strategy:

If a mod contains a CustomAssets directory I could take the view that the mod designer knows what he's doing and has warned the user of the possibility of clashes, and I can go ahead and install it into CustomAssets, replacing whatever files it needs to. A graphics mod like BlueMarble would be fine to do this way, I guess. A mod that affects Python or XML files could overwrite an existing text file, deleting a previous CustomAssets mod, unless the mod maker has included the merged text for both mods. I suppose I could raise a message box when a text file clash is detected, and let the user choose to retain the old file, replace it, or attempt a file merge.

Note that my Mod Installer backs up any files it replaces, creating a file set that can be reinstalled to back out the replacements, using the Mod Installer of course.

If a mod contains a top level folder called Mods then it has to be installed in a Mods directory. It sounds as if the consensus here is to put it in the Program Files version of Mods. If the Mods folder already contains a folder with the same name as the new mod then I assume I can treat the new one as an update to the old one?
 
Back
Top Bottom