outfly/README.md
2024-04-22 14:18:06 +02:00

11 KiB

  ▄████████▄      +        ███ +  ▄█████████ ███     +
 ███▀    ▀███ +         +  ███    ███▀  +    ███ +       +
 ███  +   ███ ███   ███ █████████ ███        ███  ███   ███
 ███     +███ ███   ███    ███    ███▐██████ ███  ███   ███
 ███ +    ███ ███+  ███   +███    ███     +  ███  ███ + ███
 ███▄    ▄███ ███▄  ███    ███ +  ███  +     ███  ███▄  ███
  ▀████████▀ + ▀███████    ███▄   ███▄       ▀████ ▀███████
      +                  +                +             ███
 +   ▀████████████████████████████████████████████████████▀

Chapters: FeaturesControlsRunning OutFlyBuildingChangelogCredits

Links: Codeitch.ioMastodonChat

OutFly

OutFly is an atmospheric, open world, 100% hard sci-fi 3D game that throws you into the Rings of Jupiter with a self-sufficient sportswear space suit that will take you anywhere.

Imagine a blend of Fallout and Outer Wilds with a splash of Firefly, 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.

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.

screenshot

Features

  • Open source forever
  • Open world, realistic hard sci-fi, atmospheric, deadly
  • Accurate star chart. Can you spot the constellations?
  • Cross platform (verified on Linux & Windows)
  • Written in Rust with the Bevy game engine
  • Status: Early access, not much content

Controls

  • F1: Show key bindings
  • Space: Slow down (or match velocity)
  • AWSD/Shift/Ctrl: Accelerate
  • R: Rotate (hold & move mouse)
  • E: Interact: Talk to people, enter vehicles
  • Q: Exit vehicle
  • JKULIO: Mouseless camera rotation
  • Augmented Reality: (toggle with Tab)
    • Left click: Target objects
    • Right click: Zoom
  • Settings
    • Tab: Toggle HUD/AR
    • M: Toggle map
    • F: Toggle 3rd person view
    • Y: Toggle rotation stabilizer
    • F3: Toggle sound effects
    • F4: Toggle music
    • F7: Restart game
    • F11: Toggle fullscreen
  • Cheats
    • G: Toggle god mode / cheats
    • V/B: Impossible acceleration forward/backward
    • Shift+V/B: Same as V/B, but a thousand times faster
    • C: Impossibly instant stopping
    • X: Teleport to target

Running OutFly

System Requirements

  • Screen/keyboard/mouse
  • Operating System: Linux, Windows, Mac
  • A graphics card with vulkan support

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.
pacman -S glibc libcap gcc-libs alsa-lib systemd-libs
./outfly

If your graphics card does not support vulkan, try setting the environment variable WGPU_BACKEND=gl: (will result in poor performance)

WGPU_BACKEND=gl ./outfly

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

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.

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.

For development, it's recommended to use --features dev to enable dynamic linking for faster compile times, e.g. like this:

cargo [run|build] --features dev

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

NOTE: Audio is muted by default when run through cargo run, unless you add --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

Changelog

  • v0.7.3: Implement map. You can now zoom out ALL THE WAY
  • v0.7.2:
    • Implement colliders based on object shape
    • Add "The Whale" vehicle around bus station Metis Prime
  • v0.7.1: Much nicer HUD
  • 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
  • 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
  • v0.6.0:
    • 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
    • Implement god mode
    • Fix crash by avoiding legacy fullscreen mode
  • v0.5.3:
    • Implement death & respawning
    • Add wholesome conversation with Icarus
    • Add satellite
    • NPCs will now slow back down if they're pushed
  • v0.5.2:
    • Change BGM to Cinematic Cello by Aleksey Chistilin
    • Fix vehicle exiting
  • v0.5.1:
    • Fix asteroid despawning
    • Add cheat codes
    • Add moon Thebe
  • 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
  • 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

Credits