Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ares Foundation Generator +

Python 3.8+ Pygame NumPy Nuitka UPX Version License: MIT Tests Coverage


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.

Screenshot

✨ Features

  • Interactive grid editing (LMB to add, RMB to remove)
  • Outline mode (hold Ctrl to 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

⌨️ Hotkeys

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

📦 Requirements

  • Python 3.8+
  • pygame
  • numpy
  • tkinter (included with Python)

🚀 Installation

git clone https://github.com/YoVVassup/ares-foundation-generator-plus.git
cd ares-foundation-generator-plus
pip install -r requirements.txt
python main.py

🔨 Building Executable (Windows)

Build script is located in build/Run.ps1. It uses Nuitka to compile the program and UPX to compress the result.

Supported Compilers

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)

Quick Build

# Create venv
python -m venv .venv
.venv\Scripts\activate
pip install pygame numpy nuitka

# Build (auto-detect compiler)
.\build\Run.ps1

Build Options

# 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

Build for x86

# 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

Build for x64

# 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-x64

The output will be in the Ares Foundation Generator Plus/ folder.

📁 File Structure

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)

🛠 Tech Stack

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

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

About

Ares Foundation Generator + is a desktop application for creating and editing building foundations for game RA2YR and mods (game engine ARES).

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages