Course: Roguelike Tutorial - in Rust
Course link: https://github.com/amethyst/rustrogueliketutorial
Status: ๐ง
Preparations
- Install WASM-related components
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli[Optional]Install system dependencies for native target:cmake,c++,fontconfig
# For Fedora
sudo dnf install cmake g++ fontconfig-devel[Optional]Installsimple-http-serverfor file serving
cargo install simple-http-serverRun
Native
cargo runWeb
Build
cargo build --release --target wasm32-unknown-unknown
wasm-bindgen target/wasm32-unknown-unknown/release/*wasm --out-dir wasm --no-modules --no-typescriptServe
simple-http-server -- wasm... or use Python for serving
python3 -m http.server -d wasmOpen http://0.0.0.0:8000/
Index legend
- ๐ - a link to a book page
- โ๏ธ - a link to an
.rsfile (code) - ๐ท - a page under construction in the course
- ๐ง - not finished
Index
- ๐ Introduction
- ๐ 1. Building for the Web
- ๐ 2. Section 1 - Hello Rust
- ๐ 2.1. Entities and Components
- ๐ 2.2. Walking A Map
- ๐ 2.3. A More Interesting Map
- ๐ 2.4. Field of View
- ๐ 2.5. Monsters
- ๐ 2.6. Dealing Damage
- ๐ 2.7. User Interface
- ๐ 2.8. Items and Inventory
- ๐ 2.9. Ranged Scrolls/Targeting
- ๐ 2.10. Saving and Loading
- ๐ 2.11. Delving Deeper
- ๐ 2.12. Difficulty
- ๐ 2.13. Equipment
- ๐ 3. Section 2 - Stretch Goals
- ๐ 4. Section 3 - Generating Maps
- ๐ 4.1. Refactor Map Building
- ๐ 4.2. Map Building Test Harness
- ๐ 4.3. BSP Room Dungeons
- ๐ 4.4. BSP Interior Design
- ๐ 4.5. Cellular Automata Maps
- ๐ 4.6. Drunkard's Walk Maps
- ๐ 4.7. Mazes and Labyrinths
- ๐ 4.8. Diffusion-limited aggregation maps
- ๐ 4.9. Add symmetry and brushes to the library
- ๐ 4.10. Voronoi Hive Maps
- ๐ 4.11. Wave Function Collapse
- ๐ 4.12. Prefabs & Sectionals
- ๐ 4.13. Room Vaults
- ๐ 4.14. Layering/Builder Chaining
- ๐ 4.15. Fun With Layers
- ๐ 4.16. Room Builders
- ๐ 4.17. Better Corridors
- ๐ 4.18. Doors
- ๐ 4.19. Decouple map size from screen size
- ๐ 4.20. Section 3 Conclusion
- ๐ง 5. Section 4 - Making A Game
- ๐ง 5.1. Design Document
- ๐ง 5.2. Raw Files, Data-Driven Design
- ๐ง 5.3. Data-Driven Spawn Tables
- ๐ง 5.4. Making the town
- ๐ง 5.5. Populating the town
- ๐ง 5.6. Living bystanders
- ๐ง 5.7. Game Stats
- ๐ง 5.8. Equipment
- ๐ง 5.9. User Interface
- ๐ง 5.10. Into the Woods!
- ๐ง 5.11. XP
- ๐ง 5.12. Backtracking
- ๐ง 5.13. Into the caverns
- ๐ง 5.14. Better AI
- ๐ง 5.15. Spatial Indexing Revisited
- ๐ง 5.16. Item Stats and Vendors
- ๐ง 5.17. Deep caverns
- ๐ง 5.18. Cavern to Dwarf Fort
- ๐ง 5.19. Town Portals
- ๐ง 5.20. Magic Items
- ๐ง 5.21. Effects
- ๐ง 5.22. Cursed Items
- ๐ง 5.23. Even More Items
- ๐ง 5.24. Magic Spells
- ๐ง 5.25. Enter the Dragon
- ๐ง 5.26. Mushrooms
- ๐ง 5.27. More Shrooms
- ๐ง 5.28. Ranged Combat
- ๐ง 5.29. Logging
- ๐ง 5.30. Text Layers
- ๐ง 5.31. Systems/Dispatch
- ๐ง 5.32. Dark Elf City 1
- ๐ง 5.33. Dark Elf Plaza
Notes
Comments
- Some of my thoughts are prefixed with
NOTE(DP):- Example:
// NOTE(DP): Algorithm complexity: O(n)
- Example:
- Resolved course TODOs are prefixed with
DONE:- Example:
// NOTE(DP): ^ Uncomment the above 2 lines to see the compiler error
- Example:
- Other comments copied from the course
Code conduction
This project uses Gitmoji for commit messages
License
On this page
Languages
Rust99.3%GLSL0.7%
Contributors
GNU General Public License v3.0
Created January 2, 2023
Updated February 2, 2023