-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Select your language / Choisissez votre langue / Wählen Sie Ihre Sprache:
English | Français | Deutsch | Italiano | Español | Português | Slovenščina | Українська | Русский
A visual game development environment inspired by GameMaker 7.0
PyGameMaker is an open-source IDE that makes 2D game creation accessible through visual block-based programming (Google Blockly) and an event-action system. Create games without deep programming knowledge, then export them to Windows, Linux, HTML5, or mobile platforms.
PyGameMaker uses presets to control which events and actions are available. This helps beginners focus on essential features while allowing experienced users to access the full toolset.
| Preset | Best For | Features |
|---|---|---|
| Beginner | New to game development | 4 events, 17 actions - Movement, collisions, score, rooms |
| Intermediate | Some experience | +4 events, +12 actions - Lives, health, sound, alarms, drawing |
| Advanced | Experienced users | All 40+ events and actions available |
New users: Start with the Beginner Preset to learn the fundamentals without being overwhelmed.
See the Preset Guide for a complete overview of the preset system.
| Feature | Description |
|---|---|
| Visual Programming | Drag-and-drop coding with Google Blockly 12.x |
| Event-Action System | GameMaker 7.0 compatible event-driven logic |
| Skill-Based Presets | Beginner, Intermediate, and Advanced feature sets |
| Multi-Platform Export | Windows EXE, HTML5, Linux, Kivy (mobile/desktop) |
| Asset Management | Sprites, sounds, backgrounds, fonts, and rooms |
| Multi-Language UI | English, French, German, Italian, Spanish, Portuguese, Slovenian, Ukrainian, Russian |
| Extensible | Plugin system for custom events and actions |
- Python 3.10 or higher
- Operating System: Windows, Linux, or macOS
-
Clone the repository:
git clone https://github.com/Gabe1290/pythongm.git cd pythongm -
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # Linux/macOS # or venv\Scripts\activate # Windows
-
Install dependencies:
pip install -r requirements.txt
-
Run PyGameMaker:
python main.py
Game entities with sprites, properties, and behaviors. Each object can have multiple events with associated actions.
Triggers that execute actions when specific conditions occur:
- Create - When an instance is created
- Step - Every frame (typically 60 FPS)
- Draw - Custom rendering phase
- Destroy - When an instance is destroyed
- Keyboard - Key press, release, or held
- Mouse - Clicks, movement, enter/leave
- Collision - When instances touch
- Alarm - Countdown timers (12 available)
See the Event Reference for complete documentation.
Operations performed when events trigger. 40+ built-in actions for:
- Movement and physics
- Drawing and sprites
- Score, lives, and health
- Sound and music
- Instance and room management
See the Full Action Reference for complete documentation.
Game levels where you place object instances, set backgrounds, and define the play area.
PyGameMaker integrates Google Blockly for visual programming. Blocks are organized into categories:
- Events - Create, Step, Draw, Keyboard, Mouse
- Movement - Speed, direction, position, gravity
- Timing - Alarms and delays
- Drawing - Shapes, text, sprites
- Score/Lives/Health - Game state tracking
- Instance - Create and destroy objects
- Room - Navigation and management
- Values - Variables and expressions
- Sound - Audio playback
- Output - Debug and display
Standalone Windows executables using PyInstaller. No Python required on the target machine.
Single-file web games that run in any modern browser. Compressed with gzip for fast loading.
Native Linux executables for Python 3.10+ environments.
Cross-platform apps for mobile (iOS/Android) and desktop via Buildozer.
project_name/
├── project.json # Project configuration
├── backgrounds/ # Background images and metadata
├── data/ # Custom data files
├── fonts/ # Font definitions
├── objects/ # Object definitions (JSON)
├── rooms/ # Room layouts (JSON)
├── scripts/ # Custom scripts
├── sounds/ # Audio files and metadata
├── sprites/ # Sprite images and metadata
└── thumbnails/ # Generated asset thumbnails
- Preset Guide - Overview of the preset system
- Beginner Preset - Essential features for new users
- Intermediate Preset - Additional features for growing skills
- Event Reference - Complete event documentation
- Full Action Reference - Complete action documentation
- Tutorials - All tutorials in one place
- Getting-Started - First steps with PyGameMaker
- Creating-Your-First-Game - Tutorial walkthrough
- Tutorial: Pong Game - Create a classic two-player Pong game
- Tutorial: Breakout Game - Create a classic brick breaker game
- Tutorial: Sokoban Game - Create a box-pushing puzzle game
- Introduction to Game Creation - Comprehensive beginner tutorial
- Object-Editor - Working with game objects
- Room-Editor - Designing levels
- Events-and-Actions - Game logic reference
- Visual-Programming - Using Blockly blocks
- Exporting-Games - Build for different platforms
- FAQ - Frequently asked questions
Contributions are welcome! See our contributing guidelines for:
- Bug reports and feature requests
- Code contributions
- Translations
- Documentation improvements
The PyGameMaker source code is licensed under the MIT License. This documentation is licensed under CC BY 4.0.
Gabriel Thullen, 2025-2026