Valor
Rust implementation of Heroes III battle mode
Install / Use
/learn @vegris/ValorREADME
A work in progress implementation of Heroes III Battle Mode written in Rust.
Screenshots
<p align="center"> <img src="assets/harpy_attacks_devil.webp?raw=true" width="400" alt="Screenshot: Harpy attacks Devil"> <img src="assets/archangel_attacks_archdevil.webp?raw=true" width="400" alt="Screenshot: ArchAngel attacks ArchDevil"> </p> <p align="center"> <img src="assets/armageddon.webp?raw=true" width="400" alt="Screenshot: Armageddon"> <img src="assets/archmage_shoots_black_knight.webp?raw=true" width="400" alt="Screenshot: ArchMage shoots BlackKnight"> </p>Setup
Requirements
- Rust compiler
Any relatively recent stable version should work.
- SDL2 libraries (SDL2, SDL2_mixer, SDL2_ttf)
Important: SDL3 (via sdl2-compat) is currently incompatible — graphics appear as black squares. You must use a real SDL2 installation.
- Heroes of Might and Magic III
The engine is developed with the GoG Complete Edition, but a demo version is also verified to work with minor tweaks.
Configuration
- Copy
config.default.rontoconfig.ron:
cp config.default.ron config.ron
- Open
config.ronand adjust the following settings:game_folder: Path to your Heroes 3 installation (where the.exeis located).ttf_font: Path to a.ttffont file on your system (used for creature counts).
Building and running
Development build:
cargo build
Release (optimized) build:
cargo build --release
After compiling, the executable will be located in:
- Development:
./target/debug/Valor - Release:
./target/release/Valor
Using the demo version
If you are using the demo version, you’ll need to adjust it's files for the engine to locate them.
- Rename files in
Datafolder to be capitalized lowercase:Data/H3BITMAP.LOD->Data/H3bitmap.lodData/H3SPRITE.LOD->Data/H3sprite.lodData/HEROES3.SND->Data/Heroes3.snd
- Rename
MP3folder toMp3 - Make 3 copies of
Mp3/COMBAT01.MP3and name themCOMBAT02.MP3,COMBAT03.MP3,COMBAT04.MP3
License
This project is licensed under the GNU General Public License v3.0.
Related Skills
himalaya
349.0kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
349.0kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
