Rust rogue-like game tutorial: https://bfnightly.bracketproductions.com/
Go to file
2022-02-04 14:09:48 -05:00
raws Populate the dark elf city, completing section 5.32 2022-02-04 09:42:11 -05:00
resources Update tutorial resource files 2021-11-29 14:59:01 -05:00
src Replace rltk with bracket_lib, removing one layer of module redirection 2022-02-04 14:09:48 -05:00
wasm Some various tweaks and fixes 2022-02-03 16:14:39 -05:00
.gitignore Add FPS display, get webassembly build working 2022-02-03 11:46:29 -05:00
Cargo.toml Replace rltk with bracket_lib, removing one layer of module redirection 2022-02-04 14:09:48 -05:00
help-system.mk Finish implmentation of ranged weapons, completing section 5.28 2022-01-31 15:00:00 -05:00
Makefile Fix a bug with a procedural effect, remove the shortbow from starting player inventory 2022-02-04 10:34:11 -05:00
README.md Readme table formatting 2022-02-04 11:10:53 -05:00
rustfmt.toml Finish refactoring of map builders 2021-12-15 11:36:17 -05:00

Rust Roguelike

A rogue-like game, implemented in Rust, with the specs ECS library, and rltk roguelike toolkit.

Rust Setup

Follow the instructions on the Getting Started page of the Rust language website.You should then have rustup and cargo available in your terminal. If you want to run on a Raspberry Pi, or via WebAssembly, you will also need make.

Running the game

  • For most setups, cargo run or make run.
  • For the Raspberry Pi: make run-pi

Controls

Movement

Any movement commands with numbers can use the top row or numpad.

Direction Keys
↑, 8, k
↓, 2, j
←, 4, h
→, 6, l
7, u, q, Home
9, y, w, Page Up
1, b, a, End
3, n, s, Page Down

Item management

Key Action
g Grab an item
i Inventory menu
d Item drop menu
r Remove item menu

Ranged weapons (Not magic or scrolls)

Key Action
v Cycle potential targets
f Fire at selected target

Other actions

Key(s) Action
5, Space Skip a turn
Escape Save and quit

Mouse controls

By hovering over tiles, the name of item(s) on that tile will appear. For ranged scroll attacks, the left mouse button is used to select a target.

WebAssembly Build

  • Install the WebAssembly target via rustup: rustup target add wasm32-unknown-unknown
  • Install wasm-bindgen: cargo install wasm-bindgen-cli
  • Run make build-wasm
  • Serve the wasm folder with a web server (wasm will not work straight from the html file)

Makefile

If you want to see what else you can run with Makefile, run make help. This will list commands and what they do.