A modern, cross-platform utility for reading, analyzing, and visualizing Heroes of Might and Magic III map files (.h3m). Built with .NET 8 and Avalonia UI.
Currently supports all vanilla maps as well as HotA maps up to version 1.7.* (Factory). HotA version 1.8.* (Bulwark) and above are not yet supported.
- Map Parsing: Reads detailed metadata from
.h3mfiles including:- Map Name and Description
- Difficulty, Size, and Format (RoE, AB, SoD, HotA)
- Player counts and specific player details
- Victory and Loss conditions
- Teams and Alliances
- Minimap Generation: Renders visual previews of maps including terrain and underground levels.
- Map Browser:
- Scan directories for map files recursively.
- Filter maps by Size, Player Count, Difficulty, Victory Condition, and Format.
- Sort and view map details in a responsive grid.
- Performance: Multi-threaded loading for handling large collections of maps efficiently.
- Core: .NET 8.0
- UI Framework: Avalonia UI (Cross-platform)
- MVVM: CommunityToolkit.Mvvm
- Imaging: SixLabors.ImageSharp
-
Clone the repository
git clone <repository-url> cd Heroes3MapReader
-
Build the solution
dotnet build
-
Run the UI application
cd Heroes3MapReader.UI dotnet run
- Launch the application.
- Click "Select Map Directory" to choose a folder containing
.h3mfiles (e.g., your Heroes 3Mapsdirectory). - Click "Load Maps" to scan the directory.
- Use the dropdown filters at the top to narrow down the list of maps.
- Select a map from the list to view its generated minimap and detailed information.
- Heroes3MapReader.Logic: The core class library containing the map parsing logic, GZIP decompression, and data models.
- Heroes3MapReader.UI: The Avalonia-based desktop application providing the graphical interface.
- The H3M file reading used in this project was based entirely on VCMI implementation.