# DungeonCrawl A rust Dungeon Crawler! ## Keybinds Use the following input for playing the game! * `wasd` or `↑←↓→` for movement * `enter` for interaction * `e` to use an item * `q` to drop an item * `f` to attack * `1-5` to change selected inventory slot * `F11` to toggle fullscreen The following are for debug purposes * `F3` - toggles the debug ui * `F4` - places a chest with a bomb * `F5` - shows a placeholder message * `F6` - you die 💀 ## Requirements DungeonCrawl builds raylib into the binary, and thus needs the build tools needed for raylib. 1. Rust version 1.88.0 2. CMake 3. Clang (must set LIBCLANG\_PATH) 4. GLFW or SDL2 (see features) 5. X11 or Wayland (linux only, see features) 6. Pulseaudio and alsa (linux only) ## Build (Desktop) To build for desktop run the following. The binary will be located in `target/release/game`. ``` cargo build --release ``` ## Build (Web) Web builds require the [emscripten](https://emscripten.org/docs/getting_started/downloads.html) toolchain. Download emscripten, and make sure `emcc` is in your path. To build for web, invoke the makefile. The output website will be in `dist`. ``` make web ``` Web builds can also be download at [jenkins](https://jenkins.freya.cat/job/DungeonCrawl/). ## Crates `dungeon` - all game logic `game` - core game loop, and binds together the game logic and graphics `graphics` - handles window and rendering though raylib `audio` - audio orchestration system that emulates the NES ## Features `x11` (default) - Enables X11 protocol support (linux only). `wayland` - Enables wayland support (linux only). `sdl` - Uses SDL2 instead of GLFW. GLFW is used if this feature is not set. `static` - Includes the audio and images files statically in the binary. This is ignored for wasm builds. ## Contributors - Freya Murphy - Audrey Fuller - Yusif Elsharawy - Ryan Symons