-
Notifications
You must be signed in to change notification settings - Fork 57
MacOS Support
Notes for those looking to run OpenCiv3 or do OpenCiv3 development on a Mac.
As of 2026, Civ3 runs fairly well on Apple Silicon (M1, M2, ...), and OpenCiv3 runs even better. Intel Macs may also get the job done.
...but in each case some assembly may be required.
In order to do development work on OpenCiv3, it's useful to have a working Civ3 instance. At the very least you'll want to have the assets from the original game.
The recommend guide for getting Civ3 running on your Mac is to follow this guidance:
https://forums.civfanatics.com/threads/installing-playing-and-modding-c3c-on-apple-silicon.681540/
In essence, the current recommended combo is:
- "Sid Meier's Civilization® III Complete" from Good Old Games (GOG) (<$5) (the non-Galaxy version)
- PortingKit Wineskin tailored for Civ3 (free)
-
PlayIntro=0andKeepRes=1settings set inConquests.ini
As per PortingKit (instructions for Civ3), you'll want the non-Galaxy download, "Offline backup setup files" from GOG.
Note that for the time being Steam versions of Civ3 are NOT recommended for Mac, as there are a few more hurdles to overcome with that route.
For general Civ3 troubleshooting, try the Civ3 Macintosh -channel at CivFanatics Forum.
Depending on the version wine that PortingKit makes use of, you may still encounter some audio issues. If you find that the Hawk's cry ambient sfx gets "stuck", a simple workaround is to replace the audio file with a silent one. Make a copy of /<civ3>/Sounds/Ambience Sfx/Hawk.wav and try this on for size:
cd <MyPortingKitAppsHome/MyCiv3.app>
cd Contents/drive_c/GOG\ Games/Civilization\ III\ Complete/Sounds/Ambience\ Sfx/
mv ~/Downloads/Hawk_silent.wav .
mv Hawk.wav Hawk_og.wav
mv Hawk_silent.wav Hawk.wav
The OpenCiv3 Mac build is a 64-bit universal executable that should run on both Apple Silicon and Intel Macs.
The steps are:
- Download the latest Mac build of the game as a
.zipfile (see Releases) - Click the
.zipfile: a folder withOpenCiv3.appwill appear - Make the app runnable
- Set the
CIV3_HOMEenvironment variables - Run the app by calling the binary from the app directory (to ensure relative paths to Assets work correctly)
As an unsigned game, MacOS may complain bitterly, and you may have to tell it to keep the download instead of trashing it. If you try to open OpenCiv3.app without telling the OS that you trust, it may tell you that it's damaged and try to trash it. We do check that OpenCiv3 releases on the Releases page are NOT damaged.
To make the app runnable, there's a few spells that need casting from the Terminal. This first one removes all extended attributes, recursively - we do this to get rid of com.apple.quarantine, which flags the app to the OS as "damaged". The Apple-approved fix is to get the app signed by a registered developer and notarised by Apple, a process that this project not engaged with yet.
cd /my/path/to/OpenCiv3
xattr -cr ./OpenCiv3.appYou can avoid typing the path out by typing xattr -cr and then dragging the OpenCiv3.app icon into the Terminal window.
Another thing to ensure is that the actual binary is executable:
chmod +x ./OpenCiv3.app/Contents/MacOS/OpenCiv3Latest macOS versions want alls apps signed/notarized by Apple. The OpenCiv3 project isn't signed up with Apple's developer program, and so we can't release signed/notarized apps. As such, we require that users sign the app themselves:
# Sign the binary itself first
codesign --force --deep --sign - OpenCiv3.app/Contents/MacOS/OpenCiv3
# Then sign the whole bundle
codesign --force --deep --sign - OpenCiv3.appSet the CIV3_HOME environment variable to point to the root of the original game install. You can use a symbolic link to make your life a bit easier:
# Adjust the paths
ln -s "MY_INSTALL/Sid Meier s Civilization III Complete.app/Contents/drive_c/GOG Games/Civilization III Complete/" ~/games/civ3
cd ~/games/civ3
# This should now find a file
file ~/games/civ3/README.txt
# Set (session!) environment variable
export CIV3_HOME="/Users/MY_USER/games/civ3"
# This should now find a file
file $CIV3_HOME/README.txtFinally, from that same terminal where you set CIV3_HOME, you should now be able to run the game with:
./OpenCiv3.app/Contents/MacOS/OpenCiv3Using open ./OpenCiv3.app/ or clicking the app in Finder may work, but as the game makes use of relative paths, the pathing around assets when running with open may not always work as intended. Calling the binary directly is recommended for now.
To make use of Civ3 assets from a local install, you can use the CIV3_HOME environment variable to point to the game files. This can be any of 1) A Good Old Games (GOG) install, 2) a Steam install (even non-functional), 3) a copy or a mounted volume of your original Civ3 CD. The Complete version of the game is the recommended one, though may have success with pre-Complete CDs as well.
This means the app is in quarantine. Release it with xattr -cr as instructed above.
Running the app from the Terminal on Apple Silicon / modern MacOS versions can throw Killed: 9 without any other info.
This is error is usually due to an unsigned or mis-signed app.
$ open ./OpenCiv3.app/
The application cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed."
UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0xb93048720
{Error Domain=NSPOSIXErrorDomain Code=163 "Unknown error: 163" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}
The OpenCiv3 project isn't signed up with Apple's developer program, so we can't release signed/notarized apps. As such, we require that users sign the app themselves, see signing instructions above.
Civ3 is an old game, and at least for the time being OpenCiv3 will suffer from the same asset limitations as the original game.
Specifically, Civ3 has fixed-sized low-resolution assets. In order to make use of these assets, or same-scale replacements for them, the game's native resolution has to be quite low. As such, with any adjustments, the game will natively render as a tiny viewport on high pixel density screens (HiDPI).
Running a low-resolution game on a high-resolution computer will always be less than ideal, but we can make the game playable by dynamically scaling the visuals at runtime. This can be done either 1) in-engine, by having Godot the scaling, or 2) by having the host platform do the scaling.
OpenCiv3 is currently set to do in-engine scaling (see PR 939).
If you want to try things out with host platform managed scaling, you can set NSHighResolutionCapable=false in OpenCiv3.app/Contents/Info.plist with the following change (Thanks njy for the fix!):
<key>NSHighResolutionCapable</key>
-<true/>
+<false/>