Skip to content

Platform Builds

Build for Windows, macOS, and Linux.

Supported Platforms

macOS

ArchitectureTargetDescription
Universalmacos-universalIntel + Apple Silicon in one app
ARM64macos-arm64Apple Silicon (M1/M2/M3)
x64macos-x64Intel 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

ArchitectureTargetDescription
x64windows-x6464-bit (most common)
ARM64windows-arm64ARM-based devices
x86windows-ia3232-bit (legacy)

Output: .exe (portable) or directory with DLLs

Linux

ArchitectureTargetDescription
x64linux-x6464-bit (most common)
ARM64linux-arm64ARM 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)

PlatformFormatDescription
WindowsPortable .exeSingle executable, no installation needed
LinuxAppImageUniversal Linux format, runs on most distros
macOS.app bundleAlways a directory (macOS standard)

Best for: Direct distribution, itch.io, easy sharing

Directory

PlatformFormatDescription
WindowsFolder with .exeExecutable with separate resource files
LinuxFolderExecutable with separate resource files
macOS.app bundleSame 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 OSCan Build For
macOSmacOS, Windows, Linux
WindowsWindows, Linux
LinuxLinux

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 +x on some systems
  • Consider AppImage for easier distribution
  • Test on target distributions

For most games, build these targets:

  1. macos-universal - All Macs (Intel + Apple Silicon)
  2. windows-x64 - Most Windows users
  3. 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:

DepotBuildsFormat
Windowswindows-x64Directory
macOSmacos-universalDirectory (.app)
Linuxlinux-x64Directory

itch.io

Upload each platform build separately. Use Single File format for easy downloads:

PlatformFile
WindowsGameTitle-windows-x64.exe
macOSGameTitle.app (zip the .app folder)
LinuxGameTitle-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.AppImage

For 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/