A GameMaker-style visual game development IDE for creating 2D games with Python.
Version 1.0 is here — grab a ready-to-run build. No Python install required:
| Platform | Download |
|---|---|
| Windows | PyGameMaker.exe |
| macOS (Apple Silicon) | PyGameMaker-macOS-ARM.zip |
| macOS (Intel) | PyGameMaker-macOS-Intel.zip |
| Linux | PyGameMaker-Linux.tar.gz |
See all releases & release notes, or read the Getting Started guide in the wiki. Prefer to run from source? See Installation below.
First launch: on Windows, SmartScreen → More info → Run anyway; on macOS, right-click the app → Open to get past Gatekeeper.
Building a maze in the PyGameMaker room editor, with a live preview of the room in the properties panel.
This project serves a dual educational purpose:
-
Learn Python through Game Development - Use PyGameMaker to create games visually, then examine the generated Python/Pygame code to understand how game logic translates to real programming concepts.
-
Learn Advanced Python through IDE Development - Contribute to PyGameMaker itself and explore real-world software engineering: Qt GUI development, plugin architecture, code generation, internationalization, and more.
PyGameMaker provides a familiar drag-and-drop interface inspired by classic GameMaker, allowing users to create games visually using:
- Blockly Visual Programming - Build game logic with visual code blocks
- Traditional Event/Action System - GM80-style event-driven programming
- Asset Management - Sprites, sounds, backgrounds, objects, and rooms
- Multiple Export Targets - HTML5, standalone executables, and more
- Visual sprite editor with animation strip support
- Room editor with instance placement
- Object editor with Blockly-based event programming
- Real-time game preview and testing
- Project import/export
- Multi-language support (English, French, German, Italian, Slovenian, Spanish, Ukrainian, Russian)
- Added complete Spanish (Español) translation with 650+ translated strings
- Added Russian language support with flag icons in the language menu
- Flag icons now displayed in the Tools → Language menu for easier selection
- Room preview now shows in properties panel when a room is selected in the asset tree
- Events tree expands by default to show actions immediately
- Right panel collapses automatically when object editor is active
- Fixed room editor properties not updating when switching between rooms
- Fixed inconsistent icon sizes in asset tree between sprites and objects
- Added
show_messageaction alias for Blockly compatibility - Added
<self>option toset_spriteaction for current sprite animation - Implemented 10 additional missing actions for game logic
- Fixed infinite loop when navigating to next/previous room at boundaries
- Fixed broken dependency checks in EXE and Linux exporters
- Fixed asset_modified signal bug (now correctly uses asset_updated)
- Added comprehensive test suite with 81+ ActionExecutor tests
- Added 19 event type tests for the event system
- Added runtime game engine unit tests and integration tests
- Configured flake8 for code quality with linting fixes applied
- Improved CI workflow with proper test structure
- Python 3.10 or higher
- PySide6 (Qt for Python)
- Pygame
- Pillow
# Clone the repository
git clone https://github.com/Gabe1290/pythongm.git
cd pythongm
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install PySide6 pygame Pillowpython main.pypygm2/
├── core/ # Core application logic
├── editors/ # Asset editors (sprite, object, room)
├── dialogs/ # UI dialogs
├── widgets/ # Custom Qt widgets
├── export/ # Game exporters (HTML5, EXE, Kivy)
├── config/ # Configuration and Blockly settings
├── translations/ # Language files
├── tutorials/ # Built-in tutorials
├── scripts/ # Build and utility scripts
└── docs/ # Documentation
python scripts/build_nuitka.pyThe PyGameMaker source code is licensed under the MIT License — see LICENSE.
The documentation (everything under docs/, wiki/, in-app tutorials, this README, the CHANGELOG, manuals and flyers) is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0) — see LICENSE-docs.
Attribution: Gabriel Thullen, 2025-2026.
- PySide6 - Qt for Python (LGPLv3)
- Pygame - Game development library (LGPLv2.1)
- Pillow - Image processing (HPND License)
- Blockly - Visual programming (Apache 2.0)
Gabriel Thullen
Contributions are welcome! Please feel free to submit issues and pull requests.
