add HACKING.md
This commit is contained in:
parent
ca63fb5e03
commit
8a6b1e6357
95
HACKING.md
Normal file
95
HACKING.md
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
# Dev Features
|
||||||
|
|
||||||
|
For development, it's recommended to use `--features dev`:
|
||||||
|
|
||||||
|
```
|
||||||
|
cargo [run|build] --features dev
|
||||||
|
```
|
||||||
|
|
||||||
|
This enables the following:
|
||||||
|
|
||||||
|
- Mutes music by default (you can still unmute it)
|
||||||
|
- Enables "dev mode", which changes the game slightly:
|
||||||
|
- Enables additional cheats (see source code)
|
||||||
|
- Speeds up dialogs
|
||||||
|
- Adds additional debugging features
|
||||||
|
- Enables dynamic linking for faster compile times. Note that this makes it harder to run the game directly with `./outfly`, please use `cargo run` instead.
|
||||||
|
- Enables bevy's "file watcher" feature that auto-reloads changed assets while the game is running. This obviously works only if the assets are not embedded directly into the binary with the `embed_assets` feature. Since `embed_assets` is enabled by default, you must customize your compile features in order to use the file watcher feature, e.g. like: `--no-default-features --features "dev x11"`
|
||||||
|
|
||||||
|
# pack.sh
|
||||||
|
|
||||||
|
The [pack.sh](src/build/pack.sh) script is used by the developer team to compile and pack release binaries into official packages.
|
||||||
|
|
||||||
|
It could serve as a starting point for package maintainers or tinkerers.
|
||||||
|
|
||||||
|
# Building OutFly
|
||||||
|
|
||||||
|
If there is no package for the version or operating system that you need, or if you wish to tinker on the game, you can also build outfly yourself.
|
||||||
|
|
||||||
|
## On Linux
|
||||||
|
|
||||||
|
Install the build dependencies. On ArchLinux, it's the following, though you can replace `rust` with `rustup`:
|
||||||
|
|
||||||
|
```
|
||||||
|
pacman -S rust libx11 pkgconf alsa-lib
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run the following commands, replacing `[URL]` with the clone URL of the git repository:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone [URL]
|
||||||
|
cd outfly
|
||||||
|
cargo run --release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building for Windows on Linux
|
||||||
|
|
||||||
|
```
|
||||||
|
rustup target add x86_64-pc-windows-gnu
|
||||||
|
pacman -S mingw-w64-toolchain # on ArchLinux. other distros have their equivalent package
|
||||||
|
cargo build --target=x86_64-pc-windows-gnu --release
|
||||||
|
```
|
||||||
|
|
||||||
|
More information here: https://bevy-cheatbook.github.io/setup/cross/linux-windows.html
|
||||||
|
|
||||||
|
## Building on Mac OS
|
||||||
|
|
||||||
|
Install homebrew, and then get the following dependencies:
|
||||||
|
|
||||||
|
```
|
||||||
|
brew install pkg-config molten-vk rustup
|
||||||
|
rustup-init
|
||||||
|
```
|
||||||
|
|
||||||
|
Download, compile and run the game:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone [URL]
|
||||||
|
cd outfly
|
||||||
|
cargo run --release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building for WASM/Browser
|
||||||
|
|
||||||
|
This is a work in progress, for now these are just some general hints:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone [URL]
|
||||||
|
cd outfly
|
||||||
|
rustup target install wasm32-unknown-unknown
|
||||||
|
pacman -S wasm-bindgen binaryen
|
||||||
|
mkdir outfly_wasm
|
||||||
|
cargo build --release --target wasm32-unknown-unknown
|
||||||
|
wasm-bindgen --out-name outfly --out-dir outfly_wasm --target web target/wasm32-unknown-unknown/release/outfly.wasm
|
||||||
|
wasm-opt -Oz --output wasm/outfly_bg.wasm wasm/outfly_bg.wasm
|
||||||
|
echo '<script type="module">import init from "./outfly.js"; init()</script>' > wasm/index.html
|
||||||
|
python -m http.server -d wasm
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building release versions optimized for packaging
|
||||||
|
|
||||||
|
To build release versions optimized for final deployment, build with the following features: (see also [pack.sh](https://codeberg.org/hut/outfly/src/branch/main/src/build/pack.sh))
|
||||||
|
|
||||||
|
```
|
||||||
|
cargo build --release --no-default-features --features release_[linux|windows] [--target=$YOUR_TARGET]
|
||||||
|
```
|
94
README.md
94
README.md
|
@ -10,7 +10,7 @@
|
||||||
+ ▀████████████████████████████████████████████████████▀
|
+ ▀████████████████████████████████████████████████████▀
|
||||||
```
|
```
|
||||||
|
|
||||||
[Features](#features) • [Controls](#controls) • [Running OutFly](#running-outfly) • [Troubleshooting](#troubleshooting) • [Building](#building)
|
[Features](#features) • [Controls](#controls) • [Running OutFly](#running-outfly) • [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
# OutFly
|
# OutFly
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ yay -S outfly-git
|
||||||
|
|
||||||
## Running on MacOS / Android / iOS
|
## Running on MacOS / Android / iOS
|
||||||
|
|
||||||
No releases for these operating systems exist yet. For MacOS, you can build OutFly yourself using the instructions below. Support for Android/iOS is planned for the future.
|
No releases for these operating systems exist yet. For MacOS, you can build OutFly yourself using the instructions in [HACKING.md](https://codeberg.org/hut/outfly/src/branch/main/HACKING.md). Support for Android/iOS is planned for the future.
|
||||||
|
|
||||||
# Troubleshooting
|
# Troubleshooting
|
||||||
## My GPU doesn't support Vulkan!
|
## My GPU doesn't support Vulkan!
|
||||||
|
@ -137,93 +137,3 @@ If you build without the "`embed_assets`" feature, the asset folder must be in t
|
||||||
Create a shortcut, change the target from `[...]outfly.exe` to e.g. `[...]outfly.exe --gl`.
|
Create a shortcut, change the target from `[...]outfly.exe` to e.g. `[...]outfly.exe --gl`.
|
||||||
|
|
||||||
See https://superuser.com/questions/1202989/how-to-you-add-a-parameter-to-an-executable-in-windows-10
|
See https://superuser.com/questions/1202989/how-to-you-add-a-parameter-to-an-executable-in-windows-10
|
||||||
|
|
||||||
# Building
|
|
||||||
|
|
||||||
If there is no package for the version or operating system that you need, or if you wish to tinker on the game, you can also build outfly yourself.
|
|
||||||
|
|
||||||
## On Linux
|
|
||||||
|
|
||||||
Install the build dependencies. On ArchLinux, it's the following, though you can replace `rust` with `rustup`:
|
|
||||||
|
|
||||||
```
|
|
||||||
pacman -S rust libx11 pkgconf alsa-lib
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run the following commands, replacing `[URL]` with the clone URL of the git repository:
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone [URL]
|
|
||||||
cd outfly
|
|
||||||
cargo run --release
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building for Windows on Linux
|
|
||||||
|
|
||||||
```
|
|
||||||
rustup target add x86_64-pc-windows-gnu
|
|
||||||
pacman -S mingw-w64-toolchain # on ArchLinux. other distros have their equivalent package
|
|
||||||
cargo build --target=x86_64-pc-windows-gnu --release
|
|
||||||
```
|
|
||||||
|
|
||||||
More information here: https://bevy-cheatbook.github.io/setup/cross/linux-windows.html
|
|
||||||
|
|
||||||
## Building on Mac OS
|
|
||||||
|
|
||||||
Install homebrew, and then get the following dependencies:
|
|
||||||
|
|
||||||
```
|
|
||||||
brew install pkg-config molten-vk rustup
|
|
||||||
rustup-init
|
|
||||||
```
|
|
||||||
|
|
||||||
Download, compile and run the game:
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone [URL]
|
|
||||||
cd outfly
|
|
||||||
cargo run --release
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building for WASM/Browser
|
|
||||||
|
|
||||||
This is a work in progress, for now these are just some general hints:
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone [URL]
|
|
||||||
cd outfly
|
|
||||||
rustup target install wasm32-unknown-unknown
|
|
||||||
pacman -S wasm-bindgen binaryen
|
|
||||||
mkdir outfly_wasm
|
|
||||||
cargo build --release --target wasm32-unknown-unknown
|
|
||||||
wasm-bindgen --out-name outfly --out-dir outfly_wasm --target web target/wasm32-unknown-unknown/release/outfly.wasm
|
|
||||||
wasm-opt -Oz --output wasm/outfly_bg.wasm wasm/outfly_bg.wasm
|
|
||||||
echo '<script type="module">import init from "./outfly.js"; init()</script>' > wasm/index.html
|
|
||||||
python -m http.server -d wasm
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building release versions optimized for packaging
|
|
||||||
|
|
||||||
To build release versions optimized for final deployment, build with the following features: (see also [pack.sh](https://codeberg.org/hut/outfly/src/branch/main/src/build/pack.sh))
|
|
||||||
|
|
||||||
```
|
|
||||||
cargo build --release --no-default-features --features release_[linux|windows] [--target=$YOUR_TARGET]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Dev Features
|
|
||||||
|
|
||||||
For development, it's recommended to use `--features dev`:
|
|
||||||
|
|
||||||
```
|
|
||||||
cargo [run|build] --features dev
|
|
||||||
```
|
|
||||||
|
|
||||||
This enables the following:
|
|
||||||
|
|
||||||
- Mutes music by default (you can still unmute it)
|
|
||||||
- Enables "dev mode", which changes the game slightly:
|
|
||||||
- Enables additional cheats (see source code)
|
|
||||||
- Speeds up dialogs
|
|
||||||
- Adds additional debugging features
|
|
||||||
- Enables dynamic linking for faster compile times. Note that this makes it harder to run the game directly with `./outfly`, please use `cargo run` instead.
|
|
||||||
- Enables bevy's "file watcher" feature that auto-reloads changed assets while the game is running. This obviously works only if the assets are not embedded directly into the binary with the `embed_assets` feature. Since `embed_assets` is enabled by default, you must customize your compile features in order to use the file watcher feature, e.g. like: `--no-default-features --features "dev x11"`
|
|
||||||
|
|
Loading…
Reference in a new issue