Skip to content

pagel-s/termcraft

Repository files navigation

termcraft

Terminal based 2D sandbox survival in Rust, tuned toward a classic early-2012 block-survival loop.

Docs Version Status Rust

Docs · Installation · Gameplay · Supported Content · Media Credits

Unofficial fan project. Not affiliated with Mojang or Microsoft.

Early alpha. The game is playable, but some systems are still rough or buggy.

termcraft highlight

Full highlight video: termcraft.mp4
YouTube: https://youtu.be/kR986Xqzj7E
Soundtrack in the full highlight: Fantasy Orchestral Theme by Joth and Boss Battle #2 [Symphonic Metal] by nene via OpenGameArt, both CC0. Full details: Media Credits

Overview

termcraft keeps the classic survival progression, dimensions, crafting, and exploration pressure of the early block-survival formula, but adapts the experience to a side-on terminal game.

Current scope:

  • procedural Overworld, Nether, and End generation
  • mining, placement, inventory, crafting, furnaces, brewing, boats, and chests
  • health, hunger, combat, weather, fluids, gravity blocks, crops, and farming
  • passive and hostile mobs, villages, dungeons, strongholds, and Nether fortresses
  • per-user save persistence and autosave

Install And Play

Requirements:

  • Rust stable toolchain
  • a terminal with raw input support
  • mouse support for the best local experience

Install Rust first:

Install from crates.io:

cargo install termcraft
termcraft

Or clone the repo and start the game:

git clone https://github.com/pagel-s/termcraft.git
cd termcraft
cargo run --release

If you want the optimized binary directly:

git clone https://github.com/pagel-s/termcraft.git
cd termcraft
cargo build --release
./target/release/termcraft

If you want it installed into Cargo's local bin path after cloning:

git clone https://github.com/pagel-s/termcraft.git
cd termcraft
cargo install --path .
termcraft

Local saves are written to the per-user data directory by default.

Distro Packages

On Arch Linux, you can install the AUR package:

paru -S termcraft

Controls Snapshot

  • A / D or arrow keys: move
  • W / Up / Space: jump or swim up
  • X: toggle sneak
  • E: inventory
  • 1-9: hotbar selection
  • Left Click: mine / attack
  • Right Click: place / interact
  • F: explicit hovered-block use fallback if right click is unreliable in the current terminal
  • O: settings menu
  • Q / Esc: close UI or quit from world view

Developer/test shortcuts currently available:

  • F5: travel to Overworld
  • F6: travel to Nether
  • F7: travel to End
  • F8: return to spawn
  • F9: equip diamond combat loadout

Notes

  • The primary supported mode right now is local single-player.
  • Client/server code exists, but it is still experimental and is not a featured public mode yet.
  • If mouse right-click is unreliable in your terminal, use F as the explicit interaction fallback.
  • The crates.io package is intended as an installable game binary. The Rust module layout is not a stable public library API yet.

Contact

For feedback, bugs, or release questions, contact: pagel.sebastian.1@gmail.com

Development

Useful checks:

cargo test --quiet
cargo clippy --all-targets -- -D warnings
./scripts/release_smoke.sh

Release process:

Save Data

Local saves are written under the per-user data directory:

  • Linux: $XDG_DATA_HOME/termcraft/saves, or ~/.local/share/termcraft/saves when XDG_DATA_HOME is unset
  • macOS: ~/Library/Application Support/termcraft/saves
  • Windows: %APPDATA%\termcraft\saves

Set TERMCRAFT_SAVE_DIR to override this location. Existing repo-local ./saves files are copied into the default user data directory on first run.

  • chunk files: <save-dir>/<dimension>_chunk_<x>.bin
  • progression file: <save-dir>/player_progression.bin

See World Format for the current save layout.

About

Terminal-based 2D sandbox survival

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors