GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - amethyst/bracket-lib: The Roguelike Toolkit (RLTK), implemented for Rust.

BranchesTags
Open more actions menu

Latest commit

 

History

1,216 Commits
1,216 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
.vscode
.vscode
 
 
bracket-algorithm-traits
bracket-algorithm-traits
 
 
bracket-bevy
bracket-bevy
 
 
bracket-color
bracket-color
 
 
bracket-embedding
bracket-embedding
 
 
bracket-geometry
bracket-geometry
 
 
bracket-noise
bracket-noise
 
 
bracket-pathfinding
bracket-pathfinding
 
 
bracket-random
bracket-random
 
 
bracket-rex
bracket-rex
 
 
bracket-terminal
bracket-terminal
 
 
manual
manual
 
 
rltk
rltk
 
 
screenshots
screenshots
 
 
src
src
 
 
.gitignore
.gitignore
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

Welcome to bracket-lib

Note that you may need to run cargo update to pull some dependency updates. If you are coming from Hands-on Rust, the code is maintained here

You can read a tutorial series on writing a Roguelike with this library at: https://bfnightly.bracketproductions.com/rustbook/

Bracket-lib is the primary support library for my book, Hands-on Rust. Please consider checking out my book.

Early work has begun on writing a manual. You can find it in the manual folder, or read it online.

BREAKING CHANGE ALERT: The crossterm feature is now cross_term if you are using bracket-terminal directly. It's still crossterm for bracket-lib and rltk.

IMPORTANT: If you are running the webgpu backend, you need to add resolver = 2 to your Cargo.toml file. WGPU requires it for platform selection.

What happened to RLTK?

This is RLTK, renamed because it is increasingly finding usage outside of just Roguelikes. It's also been divided into a number of crates, to make it easy to pick-and-choose the features you need.

  • rltk crate wraps bracket-lib and re-exports in the rltk:: and rltk::prelude namespace. This preserves compatibility with all existing RLTK projects.
  • bracket-algorithm-traits exposes the traits required for the various algorithm systems in other crates.
  • bracket-color is my RGB/HSV color management system.
  • bracket-geometry exposes various geometric primitives and helpers. Supports other crates.
  • bracket-noise is a port of Auburn's FastNoise to Rust.
  • bracket-pathfinding provides a high-performance A* (A-Star) pathing system, as well as Dijkstra maps.
  • bracket-random is a dice-oriented random number generator, including parsing of RPG-style dice strings such as 3d6+12.

Using bracket-lib

In your Cargo.toml file, include:

[dependencies]
bracket-lib = "~0.8"

Feature Flags

There are a few feature flags designed to aide integration with other systems:

  • specs tells various bracket-lib sub-systems to export important primitives as having Specs' Component type applied.
  • serde tells various bracket-lib sub-systems to support using Serde for serialization/de-serialization.

Performance:

  • threaded enables multi-threading on some sub-systems.

Terminal mode:

By default, bracket-lib runs in OpenGL mode (or WebGL if it detects that you are compiling for wasm32-unknown-unknown). If you want to use other rendering back-ends, disable default features and apply one of the following feature flags:

  • webgpu to use the wgpu system as a back-end, supporting Vulkan, Metal and WebGPU.
  • crossterm to use the excellent Crossterm terminal library.
  • curses to use pancurses for ncurses or pdcurses support depending upon your platform.

Sample Projects

  • https://github.com/Micutio/innit
  • https://github.com/amethyst/shotcaller
  • https://github.com/bofh69/rouge
  • https://github.com/carsin/miners
  • https://github.com/baszalmstra/my-little-robots
  • https://github.com/Havegum/Terrain-Generator
  • https://github.com/Bobox214/rs-gliphus
  • https://github.com/Maxgy/blademaster
  • https://github.com/Maxgy/text-rts

About

The Roguelike Toolkit (RLTK), implemented for Rust.

Topics

amethyst-supportcp437cratesretrogamingrltkroguelikerust-craterust-crates

Resources

Readme
MIT license
Activity
Custom properties

Stars

1.7k stars

Watchers

25 watching

Forks

130 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.