Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mdsteele/syzygy
A narrative meta-puzzle game
https://github.com/mdsteele/syzygy
game puzzle-game
Last synced: 4 months ago
JSON representation
A narrative meta-puzzle game
- Host: GitHub
- URL: https://github.com/mdsteele/syzygy
- Owner: mdsteele
- License: gpl-3.0
- Created: 2016-10-01T15:16:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-07-05T00:16:35.000Z (over 2 years ago)
- Last Synced: 2024-10-05T14:44:53.830Z (4 months ago)
- Topics: game, puzzle-game
- Language: Rust
- Homepage: https://mdsteele.games/syzygy/
- Size: 1.87 MB
- Stars: 46
- Watchers: 6
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# System Syzygy
*System Syzygy* is a puzzle game, in the style of Cliff Johnson's
[*The Fool's Errand*](http://fools-errand.com/02-FE/index.htm) and
[*3 in Three*](http://www.fools-errand.com/04-3T/index.htm), and of Andrew
Plotkin's [*System's Twilight*](http://www.eblong.com/zarf/twilight.html).https://mdsteele.games/syzygy/
## License
*System Syzygy* is licensed under the GNU GPL, version 3. *System Syzygy* is
free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.*System Syzygy* is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.The complete license can be found in the LICENSE file.
## Building and running locally
To compile and run the game without having to install a release package, run:
```shell
$ cargo run --release
```(Building/running in release mode is highly recommended for playing the game;
the non-release build enables some otherwise-distracting features intended for
development/debugging, and also there's one particular late-game puzzle that
runs quite slowly in debug mode.)Alternatively, if you want to invoke the built binary directly, use the
`SYZYGY_DATA_DIR` environment variable to tell the game where to find its
resource files, e.g.:```shell
$ cargo build --release
$ SYZYGY_DATA_DIR="${PWD}/data" ./target/release/syzygy
```## Building a release package
The below instructions are for reference purposes. To install a pre-built
release package, visit https://mdsteele.games/syzygy/download/### Mac OS X
1. Install the [SDL2 framework](https://www.libsdl.org/download-2.0.php) under
`/Library/Frameworks/`.
1. Install [`cargo-bundle`](https://crates.io/crates/cargo-bundle) (version
0.4.0 or later).
1. Run `cargo bundle --release`.
1. Fix the binary's rpath:```shell
$ install_name_tool -add_rpath "@executable_path/../Frameworks" \
target/release/bundle/osx/System\ Syzygy.app/Contents/MacOS/syzygy
```1. Strip the binary:
```shell
$ strip target/release/bundle/osx/System\ Syzygy.app/Contents/MacOS/syzygy
```1. (Optional) Remove i386 architecture from the bundled SDL2 framework:
```shell
$ BUNDLE="target/release/bundle/osx/System Syzygy.app"; \
FILE="${BUNDLE}/Contents/Frameworks/SDL2.framework/Versions/A/SDL2"; \
lipo "${FILE}" -remove i386 -output "${FILE}"
```1. (Optional) Sign the app bundle:
```shell
$ codesign --deep --force --verbose \
--sign "3rd Party Mac Developer Application" \
--entitlements "data/osx/entitlements.plist" \
target/release/bundle/osx/System\ Syzygy.app
$ codesign --verify -vvvv target/release/bundle/osx/System\ Syzygy.app
```1. (Optional) Create signed installer package:
```shell
$ productbuild --component "target/release/bundle/osx/System Syzygy.app" \
/Applications --sign "3rd Party Mac Developer Installer" \
"target/release/bundle/osx/System Syzygy.pkg"
```### Debian Linux
1. Install SDL2:
```shell
$ sudo apt-get install libsdl2-dev
```1. Install [`cargo-bundle`](https://crates.io/crates/cargo-bundle) (version
0.4.0 or later).
1. Run `cargo build --release`.
1. Strip the binary:```shell
$ strip target/release/syzygy
```4. Run `cargo bundle --release --format=deb`.
### Windows
1. Follow
[these instructions](https://github.com/Rust-SDL2/rust-sdl2#windows-msvc)
for installing SDL2 where Rust can find it.
1. Run `cargo build --release`.
1. Copy `SDL2.dll` to `target/release/SDL2.dll`.
1. To create the zip archive, open `target/release/` in Windows Explorer,
select both `syzygy.exe` and `SDL2.dll`, right-click, and select "Send to >
Compressed (zipped) folder".