Einführung
Toll, dass du es bis hierher geschafft hast! In diesem Kurs bringen wir dein FlappyBird-Spiel ins Internet. Deine Freunde können es dann direkt im Browser spielen - ohne Python installieren zu müssen!
Was ist Pygbag?
Pygbag ist ein Tool, das Python-Spiele in Web-Apps umwandelt. Es nutzt WebAssembly, damit Python-Code im Browser läuft. Cool, oder?
Schritt 1: Projekt vorbereiten
1.1 Neues Projekt erstellen
Erstelle ein neues Projekt für die Web-Version:
cd C:\MeinePythonProjekte
uv init flappybird-web
cd flappybird-web
1.2 Dependencies installieren
Installiere Pygame und Pygbag:
uv add pygame pygbag
1.3 Projekt in VS Code öffnen
code .
Schritt 2: Code für Web anpassen
Für die Web-Version müssen wir einige Änderungen am Code vornehmen. Der wichtigste Unterschied: Das Spiel muss asynchron laufen.
2.1 Hauptdatei erstellen
Erstelle eine neue Datei main.py (nicht
flappybird.py!):
2.2 Die wichtigsten Änderungen
1. Import von asyncio:
import asyncio # Wichtig für Web-Export!
2. Async Main-Funktion:
async def main():
# Spielcode hier
while laeuft:
# Spiellogik
# WICHTIG: Diese Zeile am Ende der Schleife!
await asyncio.sleep(0)
# Start mit asyncio
asyncio.run(main())
3. Maus-Support hinzufügen:
elif ereignis.type == pygame.MOUSEBUTTONDOWN:
# Gleiche Aktion wie bei Leertaste
vogel.springen()
await asyncio.sleep(0) geben wir dem
Browser Zeit, andere Dinge zu tun (z.B. die Seite zu
rendern).
Schritt 3: Lokal testen
3.1 Normal testen
Teste ob dein angepasster Code noch funktioniert:
uv run python main.py
3.2 Web-Server starten
Pygbag hat einen eingebauten Test-Server:
uv run pygbag .
Das startet einen lokalen Webserver. Nach ein paar Sekunden siehst du:
Serving on http://localhost:8000
Ready to test your game!
3.3 Im Browser öffnen
Öffne deinen Browser und gehe zu: http://localhost:8000
Das Spiel lädt jetzt im Browser! Es kann beim ersten Mal etwas dauern (30-60 Sekunden).
Schritt 4: Build für Veröffentlichung
4.1 Build erstellen
Erstelle eine fertige Version für das Web:
uv run pygbag --build --version 0.9.2 src/
Das erstellt einen build Ordner mit
allen nötigen Dateien.
4.2 Build-Inhalt verstehen
Im web-build Ordner findest du:
index.html- Die Hauptseite-
python.js- Der Python-Interpreter für den Browser -
python.wasm- WebAssembly-Version von Python - Weitere Dateien für das Spiel
4.3 Lokal testen
Du kannst die Build-Version lokal testen:
cd web-build
python -m http.server 8080
Öffne dann http://localhost:8080 im Browser.
Schritt 5: Online veröffentlichen mit GitHub Pages
Wir veröffentlichen dein Spiel kostenlos auf GitHub Pages. Das ist ein Service von GitHub, der statische Webseiten hostet.
5.1 GitHub-Konto erstellen
- Gehe zu github.com
- Klicke auf "Sign up" (Registrieren)
- Wähle einen Benutzernamen (z.B. "max-mueller-2024")
- Gib deine E-Mail-Adresse ein und erstelle ein Passwort
- Bestätige deine E-Mail-Adresse
5.2 Neues Repository erstellen
- Klicke auf das "+" Symbol oben rechts
- Wähle "New repository"
-
Repository-Name:
flappybird-web - Beschreibung: "Mein FlappyBird-Spiel im Browser"
- Wähle "Public" (öffentlich)
- Klicke auf "Create repository"
5.3 Dateien hochladen
- Auf der Repository-Seite, klicke auf "uploading an existing file"
-
Öffne deinen
web-buildOrdner im Explorer -
Wähle ALLE Dateien aus dem
web-buildOrdner - Ziehe sie auf die GitHub-Seite (Drag & Drop)
- Warte, bis alle Dateien hochgeladen sind
- Scrolle nach unten und klicke "Commit changes"
5.4 GitHub Pages aktivieren
- Klicke oben auf "Settings" (Einstellungen)
- Scrolle in der linken Sidebar zu "Pages"
- Unter "Source", wähle "Deploy from a branch"
- Unter "Branch", wähle "main" und "/ (root)"
- Klicke auf "Save"
- Warte 1-2 Minuten
5.5 Dein Spiel ist online!
Gehe zurück zur "Pages" Seite in den Settings. Du siehst jetzt einen grünen Box mit:
Your site is live at https://[dein-username].github.io/flappybird-web/
Klicke auf den Link oder öffne diese URL im Browser - dein Spiel läuft!
💡 Wichtig zu wissen
- Die Seite kann bis zu 10 Minuten brauchen, bis sie das erste Mal verfügbar ist
- Jede Änderung, die du hochlädst, wird automatisch veröffentlicht
-
Die URL bleibt immer gleich:
https://[username].github.io/[repository-name]/
5.6 Änderungen hochladen (optional)
Wenn du dein Spiel später aktualisieren möchtest:
- Gehe zu deinem Repository auf GitHub
-
Klicke auf die Datei, die du ändern möchtest
(z.B.
main.py) - Klicke auf das Stift-Symbol (Edit)
- Mache deine Änderungen
- Klicke auf "Commit changes"
- Erstelle lokal einen neuen Build und lade die Dateien erneut hoch
🎊 Herzlichen Glückwunsch!
Dein Spiel ist jetzt online! Teile die URL mit deinen Freunden und Familie. Sie können dein Spiel direkt im Browser spielen - ohne Installation!
Optimierungen und Tipps
Ladebildschirm verbessern
Du kannst die index.html anpassen für
einen schöneren Ladebildschirm:
Performance-Tipps
- Reduziere die Anzahl der gezeichneten Objekte
- Vermeide große Bilder (nutze kleine Sprites)
- Sounds sparsam einsetzen
-
FPS auf 30 reduzieren für schwächere Geräte:
uhr.tick(30)
Mobile-Unterstützung
Für Touch-Geräte kannst du Touch-Events hinzufügen:
# Touch-Support
for ereignis in pygame.event.get():
if ereignis.type == pygame.FINGERDOWN:
vogel.springen()
Häufige Probleme
Spiel lädt nicht
- Prüfe die Browser-Konsole (F12) auf Fehler
-
Stelle sicher, dass die Datei
main.pyheißt -
Vergewissere dich, dass
asyncioverwendet wird
Spiel ist langsam
-
Reduziere die FPS:
uhr.tick(30) - Entferne unnötige Grafik-Effekte
- Teste in verschiedenen Browsern (Chrome ist meist am schnellsten)
Build schlägt fehl
-
Aktualisiere Pygbag:
uv add --upgrade pygbag - Prüfe Python-Version: Pygbag funktioniert am besten mit Python 3.11+
-
Lösche den Cache:
rm -rf __pycache__
Was du gelernt hast
Neue Konzepte
- ✅ Asynchrone Programmierung: async/await in Python
- ✅ WebAssembly: Python im Browser ausführen
- ✅ Web-Deployment: Spiele online veröffentlichen
- ✅ Cross-Platform: Ein Code für Desktop und Web
- ✅ Event-Handling: Maus und Touch-Support
Wie geht's weiter?
Du hast jetzt die Grundlagen der Spieleprogrammierung gelernt! Hier sind Ideen für weitere Projekte:
Projektideen
- 🎮 Ein Plattform-Spiel (wie Super Mario)
- 🧩 Ein Puzzle-Spiel (wie Tetris)
- 🏎️ Ein Rennspiel mit Top-Down-Ansicht
- 🎯 Ein Geschicklichkeitsspiel
- 🤖 Eine KI für dein FlappyBird programmieren
Weitere Lernressourcen
- Pygame Dokumentation: pygame.org/docs
- Python Tutorial: docs.python.org/de/3/tutorial
- Pygbag Docs: pygame-web.github.io
- Game Dev Community: r/pygame auf Reddit
🏆 Kurs abgeschlossen!
Fantastisch! Du hast alle drei Kurse erfolgreich abgeschlossen. Du kannst jetzt Python programmieren, Spiele entwickeln und sie online veröffentlichen. Wir sind stolz auf dich!
Deine Erfolge
- ✅ Python und Entwicklungsumgebung installiert
- ✅ Ein komplettes Spiel programmiert
- ✅ Das Spiel für das Web exportiert
- ✅ Online veröffentlicht
Teile dein Spiel mit #PythonLernen und zeig anderen, was du geschafft hast!