4 releases

0.6.2 Sep 9, 2023
0.6.1 Apr 18, 2023
0.6.0 Apr 12, 2023
0.5.0 Apr 12, 2023

#4 in #maze


Used in tmaze

Custom license

34KB
954 lines

TMaze

Simple multiplatform maze solving game for terminal written entirely in Rust

Install with cargo install tmaze and run with tmaze


Crates.io

Screenshot of in-game

What's this

Features

  • Responsive to terminal size
  • Configurable maze sizes through config file
  • Configurable colors
  • Various maze generation algorithms: Randomized Kruskal's, Depth-First Search
  • Timer and move counter
  • Show visited places
  • Spectator mode, where you can fly and see the gameboard
  • Floors and 3D mazes (that's what spectator mode is mainly for)

Rationale

Since I'm a student, I've got to attend classes, but even when I'm listening I wanted to do something more than sit there. Also at the time this project came to life, I started to learn Rust, so it seemed to make sense to make some kind of game, but since my notebook is not the newest and I wanted to make it as lightweight as possible, I decided to make it for a terminal. It's also pretty cool.

Another requirement was that it would be multiplatform so that I could play it anywhere. A bonus was that I could play it on the server.

And it ended up as maze solving game because I just couldn't find any other.

To do

  • Better settings UI
  • Render path (you will be able to disable this)
  • Maybe multiplayer
  • Saving and exporting and importing game state, mazes

How to run

  • You can either download from GitHub releases, they are built automatically now, using GitHub Actions althought there are old builds, and I won't update them so frequently, maybe in the future
  • or build from source, you need cargo installed on your system

How to build from source

  1. Make sure you have cargo installed
  2. Clone GitHub repository or download it as zip, then extract it
  3. Go to that folder
  4. Run command cargo run --release to run (or you can just build it with cargo build --release without runing it)
  5. You can find compiled executable in the folder ./target/release/, which you can move or link somewhere else

Other option is to just install it using cargo

  1. Make sure you have cargo installed
  2. Run cargo install tmaze
  3. If you want, make sure that ~/.cargo/bin is in the PATH and enjoy

Dependencies

~2–30MB
~403K SLoC