A modular Rust toolkit for building roguelikes and terminal-based games with multiple rendering backends.
Bracket-lib is a modular Rust library originally developed as the Roguelike Toolkit (RLTK), now expanded for broader game development. It provides essential components for creating terminal-based games, roguelikes, and other interactive applications with flexible rendering options including OpenGL/WebGL, WebGPU, Crossterm, and curses.
Rust developers building terminal-based games, roguelikes, or interactive applications who need cross-platform rendering and modular game development components.
Developers choose bracket-lib for its modular architecture allowing selective use of components, multiple rendering backends for cross-platform compatibility, and seamless migration from RLTK projects through a compatibility wrapper.
The Roguelike Toolkit (RLTK), implemented for Rust.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library is split into separate crates like bracket-pathfinding and bracket-noise, allowing developers to pick only needed components without bloat, as outlined in the README's crate breakdown.
Supports OpenGL/WebGL, WebGPU, Crossterm, and curses, enabling cross-platform deployment from desktop to web via WebAssembly, which is highlighted in the feature flags section.
Includes optimized A* and Dijkstra map implementations in the bracket-pathfinding crate, essential for game AI with minimal overhead.
Compiles to WebAssembly with WebGL or WebGPU backends, making it straightforward to port games to browsers, as noted in the key features.
Provides the rltk wrapper crate to maintain compatibility with existing projects, easing the transition from the older Roguelike Toolkit.
The README alerts users to breaking changes like the crossterm feature rename, indicating an unstable API that can disrupt project updates.
Setting up requires managing multiple feature flags and backend-specific tweaks, such as adding resolver = 2 for WebGPU, which adds setup complexity and potential errors.
The manual is described as 'early work,' forcing users to rely on scattered tutorials or the author's book for comprehensive guidance.
Primarily designed for terminal-based games and roguelikes, so it lacks features for broader game development like 3D physics or advanced audio systems.