explaingit

onest4rk/fish-shot

Analysis updated 2026-05-18

1PythonAudience · vibe coderComplexity · 2/5Setup · moderate

TLDR

A webcam arcade game where you shoot fish using hand gestures tracked in real time by your camera.

Mindmap

mindmap
  root((fish-shot))
    What it does
      Webcam hand-gesture game
      Shoot fish with a fist
      Score and combo system
    Tech stack
      Python
      OpenCV
      MediaPipe
      Pygame
    Use cases
      Play arcade style game
      Learn hand tracking
      Tune via config file
    Audience
      Vibe coders
      Hobbyist game builders
    Setup
      Needs Python 3.11+
      Needs a webcam
      pip install dependencies

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Play a fun webcam game where you shoot fish by making a fist gesture.

USE CASE 2

Learn how MediaPipe hand tracking can be turned into game input.

USE CASE 3

Tune game difficulty, fish spawn rates, and shooting gestures through a config file.

USE CASE 4

Use the project structure as a starting template for other webcam-controlled games.

What is it built with?

PythonOpenCVMediaPipePygame

How does it compare?

onest4rk/fish-shot0xustaz/streamgatea-bissell/unleash-lite
Stars111
LanguagePythonPythonPython
Setup difficultymoderatehardhard
Complexity2/54/54/5
Audiencevibe coderdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a working webcam and good lighting for hand detection to work reliably.

In plain English

Fish Shot is an arcade game you play with your webcam and your hand instead of a mouse or controller. It uses hand tracking to turn your hand into the game's aiming and shooting device: fish swim across the screen at different speeds and directions, you aim by moving your hand, and you make a fist to fire. Hitting a fish scores points and builds combos, while difficulty rises the longer you survive. Under the hood, the webcam feed is processed by MediaPipe, a library that detects hand landmarks and tracks your index finger. Your on-screen cursor follows that finger position smoothly, and the game checks whether your fingers are curled into a fist, or your thumb and index finger are pinched together, to decide when to fire a shot. If the shot's position overlaps a fish's hitbox, the fish is destroyed and you earn points. To run the game you need Python 3.11 or higher, a working webcam, and pip. After cloning the project, you create a virtual environment and install dependencies, either through the provided package setup or by installing opencv-python, mediapipe, pygame, pyyaml, and numpy directly. Then you start the game by running main.py, or by running the fish-shot command if you installed it as a package. Most of the game is tunable through a config.yaml file: which camera to use, how sensitive hand detection is, how smooth the cursor feels, whether you shoot with a fist or a pinch, how many lives you start with, how long a round lasts, and how often fish spawn, including rare and legendary fish. Keyboard shortcuts let you toggle the hand video overlay, mute audio, pause, and start the game. The project includes a troubleshooting section covering camera access issues, poor hand detection in bad lighting, and performance problems, along with a test suite you can run with pytest. The README lists several planned improvements, including two-player support, new fish types, and an online leaderboard, none of which are built yet. The project is offered for educational and portfolio purposes, and its procedurally generated sound and visual assets are free to use.

Copy-paste prompts

Prompt 1
Help me install and run the fish-shot webcam game on my computer with Python 3.11.
Prompt 2
Explain how this project uses MediaPipe to detect a fist gesture and turn it into a shooting action.
Prompt 3
Show me how to change the config.yaml file to make fish spawn faster and increase starting lives.
Prompt 4
Help me add a two-player mode to this webcam hand-tracking game.

Frequently asked questions

What is fish-shot?

A webcam arcade game where you shoot fish using hand gestures tracked in real time by your camera.

What language is fish-shot written in?

Mainly Python. The stack also includes Python, OpenCV, MediaPipe.

How hard is fish-shot to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is fish-shot for?

Mainly vibe coder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.