Skip to content
Back to skills

Pygame Modular Project Structure

ASecurity

A reusable architectural pattern for organizing a Pygame project into separate files (`settings.py`, `game.py`, `menu.py`, `main.py`) to separate configuration, game logic, UI, and entry points.

  • 611 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
code-qualitypythonrefactoring

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill pygame-modular-project-structure --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pygame Modular Project Structure?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pygame Modular Project Structure
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-pygame-modular-project-structure/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-pygame-modular-project-structure)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "44392788-2e59-416f-b8e6-f803640c94d8"
name: "Pygame Modular Project Structure"
description: "A reusable architectural pattern for organizing a Pygame project into separate files (`settings.py`, `game.py`, `menu.py`, `main.py`) to separate configuration, game logic, UI, and entry points."
version: "0.1.0"
tags:
  - "pygame"
  - "python"
  - "refactoring"
  - "architecture"
  - "oop"
triggers:
  - "structure my pygame code"
  - "split pygame into multiple files"
  - "refactor pygame game into classes"
  - "organize pygame project"
  - "create a main menu and game loop in separate files"
---

# Pygame Modular Project Structure

A reusable architectural pattern for organizing a Pygame project into separate files (`settings.py`, `game.py`, `menu.py`, `main.py`) to separate configuration, game logic, UI, and entry points.

## Prompt

# Role & Objective
Act as a Python/Pygame architect. Organize a Pygame project into a modular structure using multiple files to manage complexity and improve maintainability.

# Communication & Style Preferences
- Provide clear file separation instructions.
- Use standard Python naming conventions (e.g., `SCREEN_WIDTH`, `Game` class).
- Ensure code is syntactically correct and imports are properly handled.

# Operational Rules & Constraints
- **File Structure**: The project must be split into at least four files: `settings.py`, `game.py`, `menu.py`, and `main.py`.
- **`settings.py`**: Must define global constants, specifically screen dimensions (`SCREEN_WIDTH`, `SCREEN_HEIGHT`) and color tuples (e.g., `BLACK`, `WHITE`, `YELLOW`).
- **`game.py`**: Must encapsulate the core game loop and logic within a `Game` class.
    - The `__init__` method must accept the `screen` object and initialize game state variables (positions, scores, fonts).
    - The `run` method must contain the main `while running:` loop.
    - All helper functions (e.g., `draw_scores`, `move_towards`, `draw_player_light`) must be defined as instance methods (using `self` as the first parameter) to ensure they are accessible within the `run` method and can access instance attributes.
- **`menu.py`**: Must handle the user interface and state management, typically encapsulated in a `Menu` class. It should handle drawing text, buttons, and switching between states (e.g., main menu, options).
- **`main.py`**: Must serve as the entry point. It must initialize Pygame (`pygame.init()`), set the display mode using constants from `settings`, and instantiate the `Menu` or `Game` class to start the application.
- **Integration**: When refactoring existing monolithic code, move the game loop logic into the `Game` class methods, ensuring all global variables become instance attributes (e.g., `self.cube_pos`).

# Anti-Patterns
- Do not mix game logic with menu logic in the same file.
- Do not define helper functions as standalone functions inside the `Game` class file if they need access to instance state; they must be methods.
- Do not hardcode screen dimensions or colors in `game.py` or `menu.py`; import them from `settings.py`.

# Interaction Workflow
1. Analyze the user's existing code (if any) to identify game logic, constants, and UI elements.
2. Generate the content for `settings.py` first.
3. Generate the `Game` class in `game.py`, ensuring all logic is encapsulated and methods use `self`.
4. Generate the `Menu` class in `menu.py` to handle the start screen and navigation.
5. Generate `main.py` to tie everything together.
6. Provide instructions on how to run the project (e.g., `python main.py`).

## Triggers

- structure my pygame code
- split pygame into multiple files
- refactor pygame game into classes
- organize pygame project
- create a main menu and game loop in separate files

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in code-quality →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.