Skip to content

Latest commit

 

History

History
76 lines (48 loc) · 3.01 KB

File metadata and controls

76 lines (48 loc) · 3.01 KB

👾 Shoot 'em Up - Pygame Engine

A fully custom, object-oriented vertical Shoot 'em Up built from scratch in Python. It features modular state management, advanced particle physics, dynamic enemy wave generation, and a complete retro arcade aesthetic.

📖 About

This project goes beyond a simple game script. It was developed to serve as a robust 2D game engine foundation using pure Pygame. The architecture relies on strict Object-Oriented principles, separating rendering logic, asset management, and game states.


📸 Gameplay & Visuals

Gameplay.mp4

Menu Screenshot

✨ Key Features & Engine Mechanics

The codebase is highly modularized, containing several advanced mechanics built from scratch:

  • Custom State Machine: Seamless transitions between Menu, Game, Pause, Options, and GameOver without overlapping logic.
  • Particle Physics System: Independent modules for environmental effects (Fall for rain/stars), combat impacts (Spark), and multi-layered CRT-style Explosion generators.
  • Dynamic Wave Manager: The FormationManager autonomously handles enemy spawn patterns (V-Shape, Diagonal, Circle Clusters) based on the escalating level difficulty.
  • Asset Manager: A centralized cache for sprites, sounds, and .ttf fonts, including real-time mathematical generation of neon glow surfaces.
  • Entity Scaling: Automatic internal resolution handling and full-screen toggling.

🎮 Controls

The game features standard arcade controls, plus hidden developer keys used for testing game balance:

Action Keyboard Controller
Move W A S D or Arrow Keys Left Stick or D-Pad
Shoot Space Right Trigger
Menu Navigation Up / Down and Enter / Space D-Pad and A
Pause / Back ESC Start / B

🛠 Tech Stack

  • Language: Python 3
  • Graphics & Audio Library: Pygame 2.5.2
  • Architecture Pattern: Object-Oriented Programming (OOP) / State Pattern

⚙️ Installation & Run

  1. Clone the repository:

    git clone https://github.com/g-brrzzn/shootemup-Pygame
    cd shootemup-Pygame
  2. Install the requirements:

    python -m pip install -r requirements.txt
  3. Launch the game:

    python Game.py

🤝 Contributing (Beginner Friendly)

This project is highly modular, making it very easy to add new features without breaking everything else. Feel free to fork the project, experiment, and submit a Pull Request. I will be happy to review it, help with the code, and merge your ideas into the main game!