Appearance
Platform Builds
Build for Windows, macOS, and Linux.
Supported Platforms
macOS
| Architecture | Target | Description |
|---|---|---|
| Universal | macos-universal | Intel + Apple Silicon in one app |
| ARM64 | macos-arm64 | Apple Silicon (M1/M2/M3) |
| x64 | macos-x64 | Intel Macs |
Output: .app bundle
Universal Build
The Universal option creates a single .app that runs natively on both Intel and Apple Silicon Macs. This is the recommended choice for distribution as users only need one download.
Windows
| Architecture | Target | Description |
|---|---|---|
| x64 | windows-x64 | 64-bit (most common) |
| ARM64 | windows-arm64 | ARM-based devices |
| x86 | windows-ia32 | 32-bit (legacy) |
Output: .exe (portable) or directory with DLLs
Linux
| Architecture | Target | Description |
|---|---|---|
| x64 | linux-x64 | 64-bit (most common) |
| ARM64 | linux-arm64 | ARM devices (Raspberry Pi 4+) |
Output: AppImage (single file) or directory
Package Format
GemShell offers two package formats for Windows and Linux builds:
Single File (Default)
| Platform | Format | Description |
|---|---|---|
| Windows | Portable .exe | Single executable, no installation needed |
| Linux | AppImage | Universal Linux format, runs on most distros |
| macOS | .app bundle | Always a directory (macOS standard) |
Best for: Direct distribution, itch.io, easy sharing
Directory
| Platform | Format | Description |
|---|---|---|
| Windows | Folder with .exe | Executable with separate resource files |
| Linux | Folder | Executable with separate resource files |
| macOS | .app bundle | Same as Single File |
Best for: Steam (delta updates), debugging, faster iteration
Steam Recommendation
For Steam distribution, use Directory format. Steam's delta patching works best with unpacked files, resulting in smaller update downloads for your players.
Build Output Structure
Directory Format
~/GemShell-Builds/
└── GameTitle-1.0.0/
├── mac-universal/
│ └── GameTitle.app/
│ └── Contents/
│ ├── MacOS/ # Universal binary
│ ├── Resources/
│ └── Info.plist
├── mac-arm64/
│ └── GameTitle.app/
├── mac-x64/
│ └── GameTitle.app/
├── win-x64/
│ ├── GameTitle.exe
│ ├── resources/
│ └── *.dll
├── linux-x64/
│ ├── GameTitle
│ └── resources/
└── ...Single File Format
~/GemShell-Builds/
└── GameTitle-1.0.0/
├── mac-universal/
│ └── GameTitle.app/ # Always .app bundle
├── GameTitle-windows-x64.exe # Portable EXE
├── GameTitle-linux-x64.AppImage
└── ...Cross-Platform Building
GemShell can build for all platforms from any host OS:
| Host OS | Can Build For |
|---|---|
| macOS | macOS, Windows, Linux |
| Windows | Windows, Linux |
| Linux | Linux |
TIP
Build from macOS to create all platform builds in one go.
Platform-Specific Notes
macOS
- Apps are code-signed for local use
- For distribution, you need an Apple Developer certificate
- Notarization required for macOS 10.15+
Windows
- No code signing by default
- Consider signing for distribution
- 32-bit builds for legacy Windows support
Linux
- Executable needs
chmod +xon some systems - Consider AppImage for easier distribution
- Test on target distributions
Recommended Targets
For most games, build these targets:
- macos-universal - All Macs (Intel + Apple Silicon)
- windows-x64 - Most Windows users
- linux-x64 - Linux users
Add these if needed:
- macos-arm64 / macos-x64 - If you need separate builds
- windows-arm64 - Surface Pro X, etc.
- windows-ia32 - Very old Windows
- linux-arm64 - Raspberry Pi, etc.
TIP
Use Universal for macOS whenever possible. It creates a single download that works on all Macs, simplifying distribution.
Distribution
Steam
Upload platform-specific builds to Steam depots. Use Directory format for best delta patching:
| Depot | Builds | Format |
|---|---|---|
| Windows | windows-x64 | Directory |
| macOS | macos-universal | Directory (.app) |
| Linux | linux-x64 | Directory |
itch.io
Upload each platform build separately. Use Single File format for easy downloads:
| Platform | File |
|---|---|
| Windows | GameTitle-windows-x64.exe |
| macOS | GameTitle.app (zip the .app folder) |
| Linux | GameTitle-linux-x64.AppImage |
Direct Distribution
For Single File builds:
bash
cd ~/GemShell-Builds/GameTitle-1.0.0/
# macOS: zip the .app bundle
zip -r GameTitle-macos.zip mac-universal/GameTitle.app
# Windows & Linux are already single files
# GameTitle-windows-x64.exe
# GameTitle-linux-x64.AppImageFor Directory builds:
bash
cd ~/GemShell-Builds/GameTitle-1.0.0/
zip -r GameTitle-macos.zip mac-universal/
zip -r GameTitle-windows.zip win-x64/
zip -r GameTitle-linux.zip linux-x64/