Back Original

Show HN: Termcraft – Terminal-first 2D sandbox survival in Rust

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

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
  • repo-local save persistence and autosave

Requirements:

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

Install Rust first:

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 into saves/ inside the repo.

  • 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
  • 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.

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

Useful checks:

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

Release process:

Local saves are written under saves/ and are intentionally repo-local, not OS-global.

  • chunk files: saves/<dimension>_chunk_<x>.bin
  • progression file: saves/player_progression.bin

See World Format for the current save layout.