Story Machine can export games to run on a number of different platforms, including Mac and Windows, Nintendo Switch, and the web. It also has support for some specific distribution platforms, such as Steam and storymachines.net.
The File > Project Settings window’s Targets section lists configurations for individual export targets. You can create targets for a single platform, as well as special targets for demos or special versions. A few targets are set up by default in every project. To export a game using one of the target configurations, select the target name under File > Export Package.
Export Targets
Each export target has a target platform. The exported game format depends on the platform setting:
- macOS - a standalone app bundle, or an app and associated data package.
- Windows - a folder containing the game executable, its libraries, and the game data.
- Web - the game data package. Full web export support coming soon.
- Console - a game data package for use with a console build.
- storymachines.net - a URL representing the exported game, automatically uploaded to storymachines.net.
MacOS and Windows targets can also optionally support Steam. When the Steam ID field in the target settings is set to something other than 0, a Steam-supporting build is created and Steam APIs (achievements, etc) are used.
Targets can also optionally specify a maximum image size with the Clamp Images option. This is useful for web exports in particular, or in any situation where the source artwork is not at a reasonable resolution for runtime use. Clamping images on export ensures that they do not exceed the specified image size on either axis.
Targets may also optionally specify a starting scene, which overrides the normal starting scene specified in the Project Settings General tab. This is useful for demos or other scenarios where a particular target needs to behave differently than the others.
Cross-Platform Exporting
All versions of Story Machine can export to all supported platforms: you can make a MacOS game from a Windows machine, or a Windows game from a Mac, etc. There is only one exception, which is that signed and notarized MacOS exports can only be created on a Mac, as they depend on Apple tooling. See Exporting for macOS, below.
| Editor | Windows target | macOS target | Signed macOS target | Web / Console | storymachines.net |
|---|---|---|---|---|---|
| macOS | Yes | Yes | Yes | Yes | Yes |
| Windows | Yes | Yes, as a zip | No | Yes | Yes |
Exporting for Windows
Exporting for Windows requires a destination folder where the executable, game data, and related libraries will be saved. Keep all of the contents of that folder together when distributing the game.
Exporting for macOS
Apple security restrictions make exporting for macOS significantly more complicated.
Story Machine can export macOS games in two modes: unsigned and signed. An unsigned game consists of a player application and a data file, and can be safely distributed via platforms like Steam. However, unsigned games are generally unusable when distributed ad hoc over the internet–macOS will complain that the game cannot be validated and will block it from opening.
A game signed by a Developer ID Application certificate (which requires an Apple Developer account) can be distributed via the web. Signing requires some setup (see Signing, below), and a signed build can only be produced on a macOS machine. A signed game requires no additional game data package: all of the game data is embedded in the app itself.
When exporting to macOS targets from Windows machines, only unsigned exports can be created. On Windows the export will produce a zip file containing the Mac application and the game data. It is important to distribute this zip as-is because it contains macOS-only information that is lost if it is decompressed and then recompressed with a Windows computer.
macOS Signing and Notarization
All macOS games that are intended for distribution should be signed and notarized to ensure that they will not trigger a security alert. Signing a game requires an Apple Developer account, with the developer certificate present in the host Mac’s keychain. See Apple’s detailed instructions on creating and installing a Developer Certificate.
In addition to signing, Story Machine will also notarize the exported game. Notarization is Apple’s automated malware scan, and performing notarization in addition to signing will prevent your player’s computers from warning them about potential malware in your game.
Notarization requires notarytool keychain profile. Creating a profile is a one-time step that securely stores Apple developer app credentials in your keychain. In Terminal, type:
xcrun notarytool store-credentials
Answer the prompts and choose a profile name, then enter that name in Project Settings. To check that a profile exists, type:
xcrun notarytool history --keychain-profile <name>
Notarization requires Xcode to be installed. Signing alone does not.
Notarization sends your game to Apple and waits for a reply, which can take a few minutes.
Exporting to storymachines.net
Exporting for storymachines.net uploads your game and makes it instantly available online. You must be signed in to your Story Machine account to publish.