
ASCIIBlo
github.com/dimillian/asciiblo- Category
- Entertainment
- Rank
- No. 2059Tools index
Previous survey · No. 2054 ·
- Pricing
- Open Source
- Type
- GAME
- Builder
- dimillian
- GitHub
- 7 stars
- Date
About
Dimillian's Rust ASCII Diablo — terminal-rendered ARPG with classic isometric layout, all in characters.
What it does
ASCIIBlo is a native, windowed action RPG prototype built in Rust. It combines real-time combat, loot, character progression, quests, merchants, travel, and procedural exploration. A graphical renderer draws glyphs and punctuation as visual texture, while seeded world generation allows exact replays and reproducible previews.
Why it's ranked here
The project already connects many systems into a coherent playable slice: combat, equipment, mastery, settlements, maps, quests, services, and progression all interact. Deterministic seeds and dedicated preview modes make the prototype unusually inspectable. Its scope is impressive, but the repository presents it as a prototype rather than a finished game.
What's good
Seed control supports exact world replay, while stable preview seeds produce repeatable screenshots across twelve interface states. The overworld generates biomes, settlements, roads, landmarks, and props without a fixed boundary. Combat includes cooldowns, mana, melee and ranged enemies, ranks, packs, loot, and visible feedback. Embedded tests cover launch behavior and shared stat vocabulary.
Tradeoffs
This is not a terminal application despite its character-based visual language. Running it requires a graphical window plus keyboard and mouse input. Installation is source-oriented through Cargo, with no packaged binary described. The interface exposes only two bound skill slots during play, and quests permit one active objective at a time.
How to use it well
Pick it for studying or extending a compact Rust game prototype with procedural generation, action combat, progression, and glyph-driven presentation. Use explicit seeds when debugging world behavior, and preview modes when checking interface states or producing screenshots. It does not cover terminal-native play, a reusable game library, or a documented packaged distribution workflow.
Technical notes+
Cargo.toml defines a Rust 2024 binary package using macroquad 0.4.14 and rand 0.10.1. src/main.rs configures a 1280 by 760 high-DPI Macroquad window, runs fixed simulation steps, draws interpolated frames, and exports PNG previews after rendering. src/launch.rs parses random or explicit decimal and hexadecimal seeds, preview requests, and balance reports. src/preview.rs configures twelve deterministic UI and gameplay states. src/world.rs generates tiles, biomes, settlements, roads, landmarks, collision data, and glyph visuals from a seed. src/render.rs caches tile visuals and composes world, entities, effects, lighting, and modal UI. src/game/mod.rs separates simulation, UI, effects, runtime state, and fixed updates. src/stat_display.rs centralizes player-facing stat labels, calculations, item summaries, and comparisons. Unit tests appear inside src/launch.rs and src/stat_display.rs.
Observed
- Primary language
- Rust
- Packaging and install surface
- Cargo binary package run from source with cargo run
- Interface
- Native graphical desktop game with keyboard and mouse controls plus command-line launch options
- Rendering
- Macroquad renderer uses glyphs and punctuation as graphical texture rather than terminal escape sequences
- Dependencies
- Macroquad and rand
- Test structure
- Unit tests are embedded in supplied Rust source modules
- Reproducibility
- Explicit world seeds and stable default preview seeds support repeatable runs and PNG captures
Read from README.md, Cargo.toml, src/main.rs, src/world.rs, src/launch.rs, src/render.rs, src/content.rs, src/preview.rs, src/stat_display.rs, src/ui/mod.rs, src/ui/hud.rs, src/ui/shop.rs, src/game/mod.rs.
What it can do
Render isometric game world in ASCII characters
Game world data → ASCII character display in terminal
Control player character movement
Keyboard input commands → Updated character position
Engage in combat encounters
Player actions and enemy interactions → Combat results and damage calculations
Manage character inventory
Item pickup/drop commands → Updated inventory display
Display game interface in terminal
Game state data → Text-based user interface
Progress character levels and stats
Experience points and player choices → Updated character attributes
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.