outfly/README.md

331 lines
14 KiB
Markdown
Raw Normal View History

2024-04-21 16:23:40 +00:00
```
▄████████▄ + ███ + ▄█████████ ███ +
███▀ ▀███ + + ███ ███▀ + ███ + +
███ + ███ ███ ███ █████████ ███ ███ ███ ███
2024-04-21 17:34:00 +00:00
███ +███ ███ ███ ███ ███▐██████ ███ ███ ███
2024-04-21 16:23:40 +00:00
███ + ███ ███+ ███ +███ ███ + ███ ███ + ███
███▄ ▄███ ███▄ ███ ███ + ███ + ███ ███▄ ███
▀████████▀ + ▀███████ ███▄ ███▄ ▀████ ▀███████
+ + + ███
+ ▀████████████████████████████████████████████████████▀
```
2024-04-25 14:15:42 +00:00
[Features](#features) • [Controls](#controls) • [Running OutFly](#running-outfly) • [Troubleshooting](#troubleshooting) • [Building](#building) • [Changelog](#changelog) • [Credits](#credits)
# OutFly
2024-03-22 14:41:10 +00:00
2024-04-25 14:15:42 +00:00
[![License: GPL 3.0](https://img.shields.io/badge/license-GPL_v3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
2024-04-26 16:37:28 +00:00
[![Powered by Bevy](doc/images/badge-bevy.svg)](https://bevyengine.org)
2024-04-26 16:49:12 +00:00
[![Available on itch.io](doc/images/badge-itch.svg)](https://yunicode.itch.io/outfly)
2024-04-25 14:15:42 +00:00
[![Follow on Mastodon](https://img.shields.io/mastodon/follow/112327969307230863)](https://mastodon.social/@outfly)
2024-04-24 18:46:27 +00:00
OutFly is an atmospheric, open world, realistic 3D space game that throws you into the [Rings of Jupiter](https://en.wikipedia.org/wiki/Rings_of_Jupiter) with a self-sufficient sportswear space suit that will take you anywhere.
2024-04-04 19:18:33 +00:00
Imagine a blend of [Fallout](https://en.wikipedia.org/wiki/Fallout_%28series%29) and [Outer Wilds](https://en.wikipedia.org/wiki/Outer_Wilds) with a splash of [Firefly](https://en.wikipedia.org/wiki/Firefly_%28TV_series%29), where you are free to explore the breathtaking expanse of the Jupiter system and discover what life could be like after hundreds of years of space colonization.
2024-03-22 15:06:28 +00:00
2024-04-04 20:17:51 +00:00
This game aims to respect the player as much as possible. It doesn't waste your time: Despite the vastness of space, nothing takes too long. Speed cheats are active by default, allowing you to visit places you normally couldn't, without passing out from the g-forces. There are no anxiety-causing features (apart of, maybe, space itself), no loading screens, nothing to micromanage, not even save games. You can plunge into the game any time you feel like it, and it's up to you whether you just want to soak in the beautiful scenery, engage with the survival mechanics [still in development], or dive into the game story [still in development]. And finally, it's not just DRM-free but completely open source, allowing you to tinker on any part of the game to your liking.
2024-04-21 16:55:17 +00:00
![screenshot](doc/images/screenshot3.jpg)
2024-04-21 16:50:02 +00:00
# Features
2024-03-22 15:29:37 +00:00
2024-04-24 18:46:27 +00:00
- A beautiful, serene atmosphere with gorgeous views
- Racing vehicles, unique NPCs, cozy places, deadly environment
- Accurate, clickable star chart. Can you spot the constellations?
2024-04-25 14:15:42 +00:00
- Cross platform, [free & open source](https://codeberg.org/hut/outfly) forever!
2024-03-22 15:29:37 +00:00
- Written in [Rust](https://www.rust-lang.org) with the [Bevy game engine](https://bevyengine.org)
- Status: Early access, not much content
2024-03-22 15:06:28 +00:00
2024-04-21 16:50:02 +00:00
# Controls
2024-03-22 15:38:31 +00:00
2024-04-15 21:17:44 +00:00
- F1: Show key bindings
- Space: Slow down (or match velocity)
2024-04-03 12:29:51 +00:00
- AWSD/Shift/Ctrl: Accelerate
2024-04-03 13:06:35 +00:00
- R: Rotate (hold & move mouse)
2024-04-03 12:29:51 +00:00
- E: Interact: Talk to people, enter vehicles
- Q: Exit vehicle
2024-04-03 13:06:35 +00:00
- JKULIO: Mouseless camera rotation
2024-04-07 23:23:19 +00:00
- Augmented Reality: (toggle with Tab)
- Left click: Target objects
- Right click: Zoom
- Settings
- Tab: Toggle HUD/AR
2024-04-20 02:48:17 +00:00
- M: Toggle map
2024-04-20 19:28:51 +00:00
- F: Toggle 3rd person view
2024-04-11 19:06:21 +00:00
- Y: Toggle rotation stabilizer
2024-04-24 18:40:20 +00:00
- F2: Toggle shadows
2024-04-20 02:48:17 +00:00
- F3: Toggle sound effects
2024-04-20 19:28:51 +00:00
- F4: Toggle music
- F7: Restart game
- F11: Toggle fullscreen
2024-04-07 23:23:19 +00:00
- Cheats
2024-04-07 23:44:36 +00:00
- G: Toggle god mode / cheats
2024-04-07 23:23:19 +00:00
- V/B: Impossible acceleration forward/backward
- Shift+V/B: Same as V/B, but a thousand times faster
- C: Impossibly instant stopping
2024-04-14 21:38:55 +00:00
- X: Teleport to target
2024-04-05 15:15:28 +00:00
# Running OutFly
2024-04-21 17:11:02 +00:00
## System Requirements
2024-04-21 17:11:02 +00:00
- Screen/keyboard/mouse
- Operating System: Linux, Windows, Mac
- A graphics card with vulkan support
2024-04-21 16:50:02 +00:00
2024-04-21 17:11:02 +00:00
## Running on Linux
1. Download and unpack the latest release: https://codeberg.org/hut/outfly/releases
2. Open a terminal and navigate to the directory where you unpacked outfly
3. If you are on ArchLinux, type the following commands. For other distributions, replace "pacman -S" with the distro's command to install packages. Also, the packages may be called slightly differently.
```
2024-04-21 17:11:02 +00:00
pacman -S glibc libcap gcc-libs alsa-lib systemd-libs
./outfly
```
2024-04-21 17:11:02 +00:00
Alternatively, you can also install OutFly as a package, if your distribution has one. This will place OutFly in your "start menu". As of writing, only an ArchLinux AUR package exists, which you can install with this command:
```
yay -S outfly-git
```
## Running on Windows
1. Download and unpack the latest release: https://codeberg.org/hut/outfly/releases
2. Double-click on `OutFly.exe`
2024-04-21 17:14:39 +00:00
## 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.
# Troubleshooting
## My GPU doesn't support Vulkan!
2024-04-25 01:23:56 +00:00
Try running outfly with the command-line option "--gl", with one of these commands:
```
./outfly --gl
2024-04-25 01:23:56 +00:00
cargo run -- --gl
```
2024-04-25 01:25:35 +00:00
This will result in some visual glitches, reduced performance, as well as a lot of error messages about CubeArrays which you can safely ignore. You can alternatively achieve this by setting the environment variable `WGPU_BACKEND` to `gl`: `WPU_BACKEND=gl ./outfly`.
2024-04-25 01:23:56 +00:00
## The game instantly crashes!
Try changing the full screen mode with the command line option "--fs-legacy":
```
./outfly --fs-legacy
cargo run -- --fs-legacy
```
If this doesn't work, please open an issue on https://codeberg.org/hut/outfly and provide as many details as you can, including the crash log.
## Crash with "error while loading shared libraries"
If you build with `--features dev`, then you must not run the game `./outfly`. Use `cargo run` instead.
## The assets can't be found
If you build without the "`embed_assets`" feature, the asset folder must be in the same path as the outfly binary. Possible solutions are to symlink the `assets` directory into the `target/$yourtarget/` folder, to instead run with `cargo run`, or to compile with "`--features embed_assets`" (which is enabled by default).
2024-04-25 01:26:11 +00:00
## I'm on Windows. How do I use command line options?
2024-04-25 01:23:56 +00:00
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
# Building
2024-03-17 15:09:40 +00:00
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`:
2024-03-17 15:09:40 +00:00
```
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
2024-03-17 15:09:40 +00:00
```
2024-03-18 01:24:52 +00:00
## 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
2024-03-30 12:52:15 +00:00
## 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
```
2024-04-27 01:50:05 +00:00
## 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)
2024-04-26 12:42:44 +00:00
- 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.
2024-04-26 12:28:26 +00:00
- 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"`
2024-04-01 04:04:37 +00:00
# Changelog
2024-04-26 20:56:21 +00:00
- v0.8.1:
- Add command line options to set window/fullscreen mode
2024-04-24 19:25:06 +00:00
- v0.8.0:
2024-04-24 01:17:41 +00:00
- Implement animations
2024-04-24 18:40:20 +00:00
- Implement shadows
2024-04-24 01:17:41 +00:00
- Implement markers for points of interest in the map
2024-04-24 19:25:06 +00:00
- Add new animated high-poly player mesh
2024-04-24 01:17:41 +00:00
- Add new secret character
2024-04-20 02:58:11 +00:00
- v0.7.3: Implement map. You can now zoom out ALL THE WAY
2024-04-17 13:25:20 +00:00
- v0.7.2:
- Implement colliders based on object shape
- Add "The Whale" vehicle around bus station Metis Prime
2024-04-15 20:08:15 +00:00
- v0.7.1: Much nicer HUD
2024-04-15 02:13:52 +00:00
- v0.7.0:
- Overhaul conversation system, now defined in YAML files
- Implement conversation variables and if-branches
- Improve dialogues
- Improve HUD
- Add teleport-to-target cheat
2024-04-11 19:40:16 +00:00
- v0.6.1:
- Implement free public transport with 3 bus stations
- Implement Clippy™ Convenience Companion drone
- Implement augmented reality overlays on top of NPC appearances
2024-04-08 02:45:14 +00:00
- v0.6.0:
2024-04-05 23:45:25 +00:00
- Implement zooming with right click (AR only)
- Implement targeting objects with left click (AR only)
- Implement matching velocity to targeted objects with space
- Implement damage from g-forces
2024-04-07 23:44:36 +00:00
- Implement god mode
2024-04-07 23:26:54 +00:00
- Fix crash by avoiding legacy fullscreen mode
2024-04-05 02:42:08 +00:00
- v0.5.3:
- Implement death & respawning
- Add wholesome conversation with Icarus
- Add satellite
- NPCs will now slow back down if they're pushed
2024-04-03 12:48:31 +00:00
- v0.5.2:
2024-04-04 01:32:27 +00:00
- Change BGM to Cinematic Cello by Aleksey Chistilin
2024-04-03 12:48:31 +00:00
- Fix vehicle exiting
2024-04-02 15:47:38 +00:00
- v0.5.1:
- Fix asteroid despawning
- Add cheat codes
- Add moon Thebe
2024-04-02 05:23:30 +00:00
- v0.5.0:
- Implement dynamically spawning asteroids all over the ring
- Changed from 32-bit to 64-bit precision physics
- Center rendering coordinate system on player to fix visual glitches
2024-04-01 04:04:37 +00:00
- v0.4.1: Add visible ring around Jupiter
- v0.4.0:
- Implement physics, collisions
- Implement 3rd person view
- Implement realistic camera control with pitch/yaw/rotation
- Add Galilean moons (Io, Europa, Ganymede, Callisto)
- Add light sources, better illumination of pizzeria
- Add mysterious monoliths
- v0.3.0:
- Implement vehicles
- Add MeteorAceGT racing vehicle
- Add background music "Dead Space Style Ambient Music"
- Add custom font Yupiter based on ZCOOL QingKe HuangYou
- v0.2.0:
- Add Jupiter
- Add new pizzeria model with neon sign
- Add astronaut suit model OutFly™ SecondSkyn
- Add more conversations
- Implement parser for "defs.txt" to spawn world objects and chats
- v0.1.3: Add pizzeria
- v0.1.2:
- Replace skybox with accurate star chart
- Implement conversation system
- v0.1.1: Better sky box and HUD
- v0.1.0: First release with basic controls, HUD, sounds, skybox, sun
2024-04-21 16:50:02 +00:00
# Credits
2024-03-31 18:43:34 +00:00
- Source code: GPL Version 3.0
2024-04-25 14:15:42 +00:00
- https://codeberg.org/hut/outfly
2024-03-31 18:43:34 +00:00
- 3D models: Original art, placed under the Creative Commons CC0 License
- Photographs of celestial bodies: By NASA, public domain
2024-04-24 23:15:44 +00:00
- Icon: Creative Commons CC0 License
2024-03-31 18:43:34 +00:00
- Original sound files:
- wakeup.ogg: Creative Commons CC0 License
- Other sound files: [Pixabay Content License](https://pixabay.com/service/license-summary)
- https://pixabay.com/sound-effects/typosonic-typing-192811
- https://pixabay.com/sound-effects/click-button-140881
- https://pixabay.com/sound-effects/data-transmission-sound-from-14664-72309
- https://pixabay.com/sound-effects/thrusters-loopwav-14699
- https://pixabay.com/sound-effects/rocket-loop-99748
- https://pixabay.com/sound-effects/350cc-bike-firing-32391
- https://pixabay.com/sound-effects/electricity-6353
- https://pixabay.com/sound-effects/ducati-696-monster-33217
- https://pixabay.com/sound-effects/high-energy-humming-195612
- https://pixabay.com/sound-effects/box-crash-106687
- https://pixabay.com/sound-effects/electric-fan-motor-blades-removed-13169
- https://pixabay.com/sound-effects/whoosh-blow-flutter-shortwav-14678/
2024-04-25 02:15:57 +00:00
- https://pixabay.com/sound-effects/dslr-camera-sounds-26117/
- Music: [Cinematic Cello](https://pixabay.com/music/build-up-scenes-cinematic-cello-115667) by [Aleksey Chistilin](https://pixabay.com/users/lexin_music-28841948/), [Pixabay Content License](https://pixabay.com/service/license-summary)
2024-03-22 15:29:37 +00:00
- Star chart based on the [HYG Stellar database](https://github.com/astronexus/HYG-Database)
2024-03-31 18:43:34 +00:00
- Font Yupiter-Regular.ttf is placed under the SIL OPEN FONT LICENSE Version 1.1 and is based on:
2024-03-22 13:35:07 +00:00
- Noto Sans Symbols 2, Copyright 2022 The Noto Project Authors (https://github.com/notofonts/symbols)
- ZCOOL QingKe HuangYou, Copyright 2018 The ZCOOL QingKe HuangYou Project Authors (https://www.github.com/googlefonts/zcool-qingke-huangyou)
- Noto Sans SC, Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.