Skip to content

Sueeeee3/Pygame-Fishing-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


name

A simple, open-source Python/Pygame educational project exploring game development concepts; Made by a beginner for other beginners.


Note: This repository contains code only — assets not included. The project is intended as a learning resource



  1. About The Project
  2. Project Structure
  3. Key Features
  4. Learning Objectives
  5. Web Port & EXE building Notes
  6. Contributing
  7. License

About The Project

The Worst Fishing Game Ever started as a school assignment in Python — and grew into a simple, open-source Pygame project built with intention of being used an educational resource for first time developers exploring game development in simple concepts. It features some simple physics, a shop and inventory system, a collectible-focused Fishpedia, and player progression mechanics with an actual ending.

The code is (still in the process of being) heavily commented, offering insight into logistics and decision making of game design; Exactly the kind of resource I wished I had when I started learning.


Screenshots

Gameplay_gif Catch_screen Fishpedia Shop

Built With

  • Python
  • Pygame
  • Pygbag


Project Structure

Pygame-Fishing-game/
│
├─ Desktop/
│   ├─ main.py          # Entry point for the desktop version
│   ├─ game.py          # Core game loop
│   ├─ rope.py          # Rope physics
│   ├─ fishing.py       # Rod and bait calculations
│   ├─ catch_mode.py    # Catch minigame
│   ├─ shop.py          # Shop system
│   ├─ inventory.py     # Inventory system
│   ├─ fishpedia.py     # Collectible encyclopedia
│   ├─ menus.py         # Menu screens
│   ├─ ui.py            # UI elements
│   ├─ cutscene.py      # Cutscene/Typewriter system
│   ├─ splash.py        # Splash system
│   ├─ save_system.py   # Save/load system
│   ├─ scaling.py       # Resolution scaling
│   ├─ settings.py      # Game settings
│   ├─ fish_data.py     # Fish data
│   └─ assets.py        # Assets loading
│
├─ WebPort/
│   ├─ main.py          # Entry point for the web version
│   └─ ...              # (mirrors Desktop)
│
├─ Itch_page_css            # CSS styling for the itch.io page
├─ web_loading_screen.tmpl  # Custom Pygbag loading screen template
├─ LICENSE
└─ README.md

Key Features

  • Simple Physics — Fake perspective of bait and splash; Dynamic rope movement; The physics behind catching minigame
  • Shop & Inventory — Buying system with locked progress; Inventory system holding caught fish and calculating their price
  • Fishpedia — Collectible tracking system
  • Progression Mechanics — Player upgrades rod, unlocing new tiers and upgrades(needles cosmetics included)
  • Web Port — Full Pygbag browser build with custom loading screen
  • Educational Codebase — (In progress of being) Heavily commented to explain (hopefully decent) Python game development practices
  • Human-Made Code — No AI-generated code or assets (Apologies for typos in advance)


Learning Objectives

This project is intended for new developers who want to:

  • Understand how game loops and systems work in general
  • Explore basic physics and upgrade systems
  • See real-world, beginner code organization for a simple 2D game
  • Experiment with Pygbag for web deployment (requires adding your own assets)

Browse the source files directly on GitHub, or clone the repo and open it in your editor.

git clone https://github.com/Sueeeee3/Pygame-Fishing-Game.git

The game cannot be run without the missing assets — this repo is for reading and learning, not executing.



Web Port & EXE Notes

Before anything: This project cannot be run as-is — assets are not included in this repository. The commands below are written assuming Python was not added to PATH during installation.

Getting started

  1. Install Python — Download from python.org.

  2. Install Pygame

   py -m pip install pygame

Building an EXE (Windows)

  1. Install auto-py-to-exe
   py -m pip install auto-py-to-exe
  1. Run it
   py -m auto-py-to-exe
  1. Select main.py as your script, choose One Directory mode, and click Convert.

Note: You will need to manually include your assets folder and font in the auto-py-to-exe interface under "Additional Files".


Building a Web Port (Pygbag)

  1. Install Pygbag
  py -m pip install pygbag
  1. Run it from your project folder
  py -m pygbag main.py 

Use this command to generate a build with your custom loading screen

py -m pygbag --template path/to/loadingscreen.tmpl main.py
  1. Open your browser and go to http://localhost:8000 to test it.

Note: The web/ folder in this repo shows an example of a finished Python code, ready to build, showing changes needed to make it run on web.


Contributing

This project is primarily a learning resource, so contributions that help with that are most welcome — things like improving comments, fixing typos, or cleaning up code readability.

If you'd like to contribute, feel free to open an issue or submit a pull request!


License

Distributed under the MIT License. See LICENSE for more information.




Made with much love for game dev <3

About

A simple Game made with Python and Pygame library; This repo is mostly for learning purposes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors