Pygame Studio
PTDownload
Download
Version 0.1.0 · early testing

Build the game with your mouse. Code it in real Python.

Pygame Studio is a desktop editor for making 2D games on pygame-ce. Drag objects around the scene, write Python scripts with autocomplete and press Run to play. Python comes with the installer.

macOS (Apple Silicon tested) · Windows, Linux and Intel Mac are experimental · license to be decided

Pygame Studio — My Game
Pygame Studio window with a platformer scene in the middle, the object tree on the right and the properties panel below it.

From the first sprite to an exported game

From an empty project to a running game

  1. Create a project

    Pick a template (Empty, Platformer, Top-down or Puzzle). The editor sets up the project's Python environment for you.

  2. Build and code

    Place objects in the scene with the mouse and attach a script to whatever needs to move. The editor suggests names as you type.

  3. Press Run (F5)

    The game opens in its own window. If something breaks, the game pauses and the Output shows the file and line. Click it, fix the code, save, and the game picks up where it stopped.

See the full walkthrough

Your game stays Python

Scripts are plain Python classes attached to an object in the scene. The editor does not write hidden code or lock your project in a closed format. A scene is a readable JSON file, settings live in a project.toml, and all of it fits in a git repository with clean diffs.

The game runs without the editor, on the pgstudio runtime and pygame-ce. If you ever want to move on from the Studio, the code is still yours and still readable.

scripts/jogador.py
from pgstudio import Behavior, KinematicBody, Vec2, export


class Jogador(Behavior[KinematicBody]):
    velocidade: float = export(240.0, min=0)
    pulo: float = export(620.0, min=0)

    def on_ready(self) -> None:
        self.v = Vec2(0, 0)

    def on_update(self, dt: float) -> None:
        self.v.x = self.input.axis("esquerda", "direita") * self.velocidade
        if self.input.pressed("pular") and self.node.on_floor:
            self.v.y = -self.pulo
        self.v.y += 1500 * dt
        self.v = self.node.move_and_slide(self.v, dt)
The player script from the tutorial. velocidade (speed) and pulo (jump) show up in the Properties panel, so you can tune them without opening the file.

An editor for beginners and for people who already code

Take your game out of the editor

Under File > Export game, the Studio builds a program for the system you are running the editor on. Players do not need Python installed. The first export downloads PyInstaller, so it needs an internet connection.

There is also a Browser (web) option, still experimental: it builds a folder with index.html using pygbag. It needs internet to build and to play, and the folder has to be served over HTTP. Experimental

You cannot export for another system yet (for example, building a .exe on a Mac). Export has only been tested on Apple Silicon macOS.

Who it is for

Not there yet

  • Debugger with breakpointsComing soon
  • PrefabsComing soon
  • Rigid body physics (pymunk)Coming soon
  • 2D particles and lightsComing soon
  • PluginsComing soon
  • ProfilerComing soon
See the roadmap

Quick questions

Do I need to install Python?
No. The installer ships with Python 3.13, and each project gets its own environment.
Do I need to know Python?
Not to build the scene. To make the game respond to keys, yes, but a little goes a long way. The tutorial uses a 15 line script.
Is it ready to use?
This is version 0.1.0. You can make a complete game, but some parts are missing and only Apple Silicon macOS has been tested.
See all questions

Make your first game today

Download the editor, open the Platformer template and press Run. Then follow the tutorial to build one from scratch in about 15 minutes.