English | Русский | 简体中文 | 繁體中文
Ares Foundation Generator + is a desktop GUI application for creating and editing building foundations for game levels (e.g., ARES engine). It provides orthogonal and isometric projections, template overlay, undo/redo, mirror/symmetry, and export to INI/PNG formats.
- Interactive grid editing (LMB to add, RMB to remove)
- Outline mode (hold
Ctrlto edit foundation outline) - Automatic outline generation from filled cells
- Orthogonal and isometric projections
- Mirror / Symmetry — flip horizontally (H) or vertically (V)
- Template image overlay (PNG, JPG, BMP) with opacity and scaling
- Undo/Redo (Ctrl+Z / Ctrl+Y) for all operations including resize
- Export foundation data to INI file (ARES-compatible)
- Export orthogonal and isometric views as PNG images
- Load existing INI files (drag & drop or button)
- Adjustable grid size (3×3 to 50×50)
- 5 color schemes (localizable names)
- Multi-language support (English, Русский, 简体中文, 繁體中文)
- Fully resizable window with zoom and pan
- Auto-save with debounce (settings persist on exit)
- Scroll wheel on numeric inputs to adjust values
- Auto-load last template on startup
- Recent files history (up to 10)
- Building validation before INI export
| Key | Action |
|---|---|
| LMB | Add cell |
| RMB | Remove cell |
| MMB | Pan view |
| Ctrl+LMB | Add outline cell |
| Ctrl+RMB | Remove outline cell |
| G | Generate outline |
| H | Mirror horizontal |
| V | Mirror vertical |
| C | Clear grid |
| L | Load INI |
| P | Toggle projection |
| O | Toggle coordinates |
| R | Reset view |
| Z | Reset zoom |
| F | Fit to screen |
| Ctrl+Z / Ctrl+Y | Undo / Redo |
| Ctrl+Enter | Apply size |
| Ctrl+E | Export INI |
| Ctrl+Shift+S | Save images |
| Ctrl+T | Load template |
| Ctrl+K | Choose color scheme |
| Ctrl+Alt+L | Choose language |
| F1 | Show/hide help |
- Python 3.8+
- pygame
- numpy
- tkinter (included with Python)
git clone https://github.com/YoVVassup/ares-foundation-generator-plus.git
cd ares-foundation-generator-plus
pip install -r requirements.txt
python main.pyBuild script is located in build/Run.ps1. It uses Nuitka to compile the program and UPX to compress the result.
| Compiler | Architecture | Notes |
|---|---|---|
| Zig | x64 | Fastest, default for x64 |
| MSVC | x64, x86 | Visual Studio Build Tools required |
| MinGW | x64, x86 | Downloaded automatically by Nuitka |
The script auto-detects the best available compiler:
- x64: Zig → MSVC → MinGW
- x86: MSVC → MinGW (Zig does not support x86)
# Create venv
python -m venv .venv
.venv\Scripts\activate
pip install pygame numpy nuitka
# Build (auto-detect compiler)
.\build\Run.ps1# Force specific compiler
.\build\Run.ps1 -Compiler zig # x64 only
.\build\Run.ps1 -Compiler msvc # x64 or x86
.\build\Run.ps1 -Compiler mingw # x64 or x86
# Use custom venv
.\build\Run.ps1 -VenvPath C:\path\to\venv
# Combine options
.\build\Run.ps1 -Compiler msvc -VenvPath .venv-x64# Create 32-bit venv
python -m venv .venv-x86
.venv-x86\Scripts\activate
pip install pygame numpy nuitka
# Build x86
.\build\Run.ps1 -Compiler msvc -VenvPath .venv-x86# Create 64-bit venv
python -m venv .venv-x64
.venv-x64\Scripts\activate
pip install pygame numpy nuitka
# Build x64 (Zig is default)
.\build\Run.ps1 -VenvPath .venv-x64The output will be in the Ares Foundation Generator Plus/ folder.
ares-foundation-generator-plus/
├── build/ # Build tools
│ ├── Run.ps1 # Nuitka build script
│ ├── upx.exe # UPX compressor
│ └── icon.ico # Windows exe icon
├── icons/ # UI icons (SVG/PNG)
├── tests/ # Test suite (495 tests, 92% coverage)
├── main.py # Entry point, main loop
├── grid.py # Grid data model and outline generation
├── renderer.py # Orthogonal/isometric drawing
├── ui.py # UI components (buttons, sliders, dialogs)
├── commands.py # Command pattern for undo/redo
├── settings.py # Persistent settings with debounce
├── localization.py # Multi-language support (4 languages)
├── constants.py # Global constants and color schemes
├── utils.py # Path helper functions
├── file_io.py # INI export/import utilities
├── template.py # Template management functions
├── event_handler.py # Mouse/keyboard event handling
├── language_*.ini # Translation files (en, ru, zh_cn, zh_tw)
├── icon.png # Pygame window icon
├── Unifont.ttf # Unicode font
├── pyproject.toml # Pytest + mypy configuration
├── requirements.txt # Python dependencies
├── .gitignore
├── LICENSE # MIT License
└── README.md (+ ru, zh-CN, zh-TW)
| Component | Technology |
|---|---|
| Language | Python 3.8 – 3.12 |
| GUI | Pygame 2.5+ |
| Numerical | NumPy 1.24+ |
| Dialogs | Tkinter |
| Compiler | Nuitka 4.2 (Zig / MSVC / MinGW) |
| Compressor | UPX 5.x |
| Architectures | x86, x64 |
| Tests | pytest + pytest-cov |
| Type checking | mypy |
| License | MIT |
This project is licensed under the MIT License — see the LICENSE file for details.
