-
-
Notifications
You must be signed in to change notification settings - Fork 2
Packaging
Packaging runs locally on your machine as part of the build. Optimum distributes no pre-built packages; the per-platform build scripts call these packaging scripts to assemble a ready-to-run client from the official client you downloaded. The optimized DLLs are platform-agnostic .NET IL, so one build can package for every OS. Each packaging script downloads the official Vintage Story client for the target platform, overlays the optimized DLLs and shaders, and rebrands the launcher.
| Output | Platform | Format |
|---|---|---|
Optimum-v0.1.2-win-x64.zip |
Windows x64 | Portable zip |
Optimum-v0.1.2-linux-x64.tar.gz |
Linux x64 | tar.gz |
Optimum-v0.1.2-mac-arm64.dmg |
macOS Apple Silicon | DMG (drag-to-Applications) |
Optimum-v0.1.2-mac-x64.dmg |
macOS Intel | DMG (drag-to-Applications) |
Build all targets the host can produce:
make packageOr run individual scripts:
pwsh ./scripts/package-linux.ps1 # tar.gz
pwsh ./scripts/package-linux.ps1 -Format zip # zip
pwsh ./scripts/package-macos.ps1 -Arch arm64 # Apple Silicon .dmg
pwsh ./scripts/package-macos.ps1 -Arch x64 # Intel .dmg
pwsh ./scripts/package.ps1 -Zip # Windows zipBuild a subset:
pwsh ./scripts/package-all.ps1 -Targets linux-x64,osx-arm64Beyond the build requirements (.NET 10 SDK, bash, git, curl, perl), full packaging on a Linux host needs:
sudo apt install wine64 hfsprogs libbz2-dev cmake git| Tool | Purpose |
|---|---|
wine64 |
Runs innounp.exe to extract the Windows Inno Setup installer |
hfsprogs |
Provides mkfs.hfsplus for creating HFS+ disk images |
libbz2-dev |
Build dependency for libdmg-hfsplus |
cmake + git
|
Build libdmg-hfsplus from source (one-time compile into .tools/) |
On first .dmg build, the script clones mozilla/libdmg-hfsplus into .tools/ and compiles it.
On first Windows package build off-Windows, the script downloads innounp.exe and runs it via wine to extract the Inno Setup installer.
| Produce ↓ \ on → | Linux host | macOS host | Windows host |
|---|---|---|---|
| linux-x64 | tar.gz | tar.gz | tar.gz |
| osx-x64 / osx-arm64 | unsigned .dmg | signed .dmg (hdiutil) | .tar.gz fallback |
| win-x64 | zip (wine + innounp) | zip (wine + innounp) | zip (native) |
The .dmg files built on Linux are unsigned. macOS Gatekeeper shows a one-time warning on first open. Right-click the app and select Open to accept it. For a notarizable .dmg, build on macOS with an Apple Developer certificate.
Vintage Story ships a native ARM client only for macOS (osx-arm64). Linux and Windows have no native ARM client from upstream. Those packages are x64-only. On ARM hardware, the x64 build runs via emulation (box64 on Linux, Windows-on-ARM x64 layer).
Each locally built package includes your downloaded vanilla client plus these replacements:
-
Vintagestory.dll(patched client entry with Server GC and Optimum branding) -
VintagestoryLib.dll(Cecil-patched engine: 8 method transplants, 36 injected members) -
VintagestoryAPI.dll(patched API with OptimumConfig and version tag) -
VSEssentials.dll,VSSurvivalMod.dll,VSCreativeMod.dll(patched game mods) -
cairo-sharp.dll(Cairo fork) -
assets/game/shaders/bilateralblur.fsh+.vsh(7-tap SSAO blur) -
assets/game/shaders/chunkliquid.fsh(3x3 foam grid) - Renamed launcher (
Optimum/Optimum.exewith the Optimum icon) - Rebranded .desktop entry (Linux) or Info.plist + Icon.icns (macOS)