| icons | ||
| .gitignore | ||
| background.js | ||
| generate_icons.py | ||
| manifest.json | ||
| popup.css | ||
| popup.html | ||
| popup.js | ||
| README.md | ||
🚀 Tab Shooter
A small Chrome browser game that turns your open tabs into targets. Pilot a spaceship, blast the tabs you no longer need, and they really get closed.
Für alle, die zu viele Tabs offen haben. Schieß sie ab — und sie verschwinden wirklich.
📦 Installation (in Chrome laden)
- Chrome öffnen →
chrome://extensionsaufrufen. - Oben rechts den Entwicklermodus (Developer mode) einschalten.
- Auf „Entpackt laden“ (Load unpacked) klicken.
- Den Ordner
tab-shooterauswählen. - Das Tab-Shooter-Icon 🚀 erscheint in der Toolbar. Anklicken → Spiel startet.
Nach Code-Änderungen in
popup.js/manifest.jsondie Extension aufchrome://extensionseinfach neu laden (🔄-Button).
🎮 Spielen
- Auf das Toolbar-Icon klicken.
- Wählen: Aktuelles Fenster oder Alle Fenster.
- SPIEL STARTEN drücken.
- Deine echten Tabs erscheinen als gegnerische Raumschiffe (mit echtem Favicon + Titel).
- Schießen — jeder Tab, den du triffst, wird in Chrome wirklich geschlossen.
Steuerung
| Aktion | Tastatur | Maus |
|---|---|---|
| Bewegen | ← → oder A D |
Maus bewegen |
| Schießen | Leertaste |
Klick (halten) |
Features
- Echte Tabs als Gegner – Favicon & Titel, verknüpft via Tab-ID.
- Bewegte Gegner – manche sind „feindlich" und schießen zurück.
- Power-Ups (zufälliger Drop):
- 🔫 Triple Shot – drei Schüße gleichzeitig (6 s)
- ⚡ Rapid Fire – schnellere Schussfolge (6 s)
- 🛡️ Shield – absorbiert einen Treffer
- Score & Highscore – gespeichert via
chrome.storage.local. - 3 Leben, danach Game Over mit Statistik.
🗂 Projektstruktur
tab-shooter/
├── manifest.json # MV3-Manifest, Berechtigungen
├── popup.html # Overlay-UI: Start-, Spiel- & Game-Over-Screen
├── popup.css # Space-Theme Styling
├── popup.js # Game-Engine + Chrome-API-Anbindung
├── background.js # Service Worker (MV3)
├── generate_icons.py # Icon-Generator (pure stdlib, keine Abhängigkeiten)
├── README.md
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
🔐 Berechtigungen & Privatsphäre
| Permission | Zweck |
|---|---|
tabs |
Offene Tabs lesen (Titel, Favicon, ID) und getroffene Tabs schließen. |
favicon |
Favicons über die _favicon-API laden. |
storage |
Highscore lokal speichern. |
Es werden keine Inhaltsdaten (Page content) von Tabs gelesen — nur Titel und Favicon-URL.
Tabs werden ausschließlich dann geschlossen, wenn sie im Spiel getroffen wurden.
Der aktive Popup-Tab und interne chrome://-Seiten sind nie Ziele.
🛠 Icons neu generieren
Falls du die Icons anpassen willst (Farben, Form in generate_icons.py):
python generate_icons.py
Das Skript nutzt nur die Python-Standardbibliothek (zlib + struct) — keine PIL nötig.
Viel Spaß beim Aufräumen! 🛸💥