rouge is a collection of roguelike utility crates developed when working through the Rust Roguelike Tutorial and building Exalted.
Meta-crate that includes all of the other sub-crates.
default
: enables theasset
,bevy
,gui
,queue
,saveload
,serialize_binary
,tracing
features.asset
: enables therouge_asset
crate.bevy
: enables thebevy
feature forrouge_gui
.gui
: enables therouge_gui
crate.queue
: enables therouge_queue
cratesaveload
: enables therouge_saveload
crate.serialize-binary
: enables theserialize-binary
feature forrouge_saveload
.tracing
: enables therouge_tracing
crate.
Crate that adds some additional Bevy asset plugins. Currently this includes a plugin to load assets from the dhall configuration language.
Crate that implements an immediate-mode style text-mode gui useable with bracket-lib or bracket-bevy. Very rough and very incomplete, but I've gotten some good mileage out of it already. It can simplify some of the boilerplate of creating windows and handling input.
bevy
: Makes the crate compatible withbracket-bevy
.
Crate that adds a queue
resource type for use with Bevy. Can be used as an
n-to-1 communication channel between systems, supporting both concurrent readers
and writers without needing exclusive access to the resource. Built on
crossbeam's SegQueue
. Can be used with
full Bevy via the plugin, or with just the bevy_ecs
crate.
wasm32-none-none
-compatible save/load system built with Bevy in mind. Probably
needs some work to adapt it to particular use-cases, but it does handle several
corner-cases of wasm
saveload handling such that I found it useful to pull out
into a separate crate. Can be used with full Bevy or just bevy_ecs
.
Can serialize into either a text format (via Bevy's inbuilt support for ron) or binary (via bincode).
default
: Enables theserialize-binary
feature.serialize-binary
: Use binary save-file serialization via bincode.
Crate that sets up tracing with some defaults that I found useful. Can be used with or without Bevy. If used with Bevy, the default logging plugin should be disabled.
If you're using the full Bevy crate, you should probably just use the default logging plugin and configure that to your liking.
profile
: Enable profiling support with tracing-tracy.