Spieleprogrammierung mit pygame

In diesem Projekt geht es um die Vorbereitung eines pygame-Workshops für die Hack’n’Sun.

Die nächste Session ist am Dienstag, 11.05, um 18:45.
Dort werden wir uns mit der Vorbereitung des Beispielspielsbeschäftigen.

Sessionbericht 20.06.2021
Spielbezug bei Grundlagenerklärung:

  • Teilnehmer sollen von Anfang an die Assoziation zu Spielen haben anstatt nur Programmiergrundlagen
  • Aufbau anhand eines Zahlenratenspiels:
    • ausgeben du hast gewonnen/ du hast verloren → Textchat funktionen, Dialog mit Spielcharakteren, Untertitel
    • gesuchte zahl speichern → Position von Spielers
    • zufällige gesuchte Zahl → Gegner spawnen, Inhalt von Kisten, Lootboxen/Fifa packs
    • nur ausgeben wenn die gesuchte zahl = der eingegeben ist → Wenn linksclick dann schießen/schlagen, Wenn w dann laufen, Wenn Spieler in eine Bombe läuft dann sterben
    • ausgabe ob höher oder tiefer → s.o. Textausgabe
    • wiederholen bis das spiel fertig ist → Immerwieder neu bewegen, nicht alles auf einmal, sondern immer nur ein kleines bisschen
  • Zeitraum: min. 1,5h

klassen + funktionen weglassen

Die Teilnehmer fragen: Kennt ihr die Funktionen schon aus anderen spielen und aus welchen Spielen? → eigene Beispiele an jedem Schritt
Nächster Schritt: Wie könntet ihr das in eurem eigenen Spiel verwenden? → Aufschreiben für später → Teilnehmer wissen im zweiten Teil, wie sie ihre Ideen verwirklichen und werden nicht durch unwissenheit daran gehindert komplexere Befehle zu verwenden

Template für eigenes Spiel

  • Bildschirmerstellung
  • vorgefertigte Spieler, wo noch ein Bild eingefügt werden muss
  • gegnertemplate, ohne Bild und jegliche spiellogik, mit RenderClear
  • update funktion vorgeben
    • fill/blit → eigene Farbe oder eigenes Hintergrundbild
    • spieler anzeige
    • flip
  • event schleife
    • selber programmieren, was bei welchen events passiert (QUIT und K_ESCAPE)
    • update funktion aufrufen
    • spieler updaten

Programmliste:

  • tiled
  • thonny

Laden der Tiled-map als extra Template

Sessionbericht 29.06.2021
Teilnehmer: Robert, Benni, Jonah, Philipp
Was haben wir gemacht:
Austesten der neuen Erklärung und Verbesserung des Templates
Der neue Weg der Erklärung von Python anhand des Zahlenratenspiels läuft gut. Die Beispiele für Spiele von den Teilnehmern und Ideen kommen eher weniger, also müssen wir mehr eigene Beispiele aufführen. Zusätzlich dazu haben wir beim Template Kommentare hinzugefügt, konnten die Pygame-Erklärung allerdings nicht mehr komplett zu Ende führen, da die Zeit in der Session nicht gereicht hat.

Workshopablauf

0. Gruppenbildung

  • 2er Gruppen
    → Damit wir nicht von 15 Leuten um Hilfe angeschrien werden, sondern nur von 8 Gruppen

1. Grundlagen

  • Anmeldung
  • Wie benutzt man Thonny?
  • Clonen des Repos
  • Robert

2. Python-Basics

  • Aufbau anhand eines Zahlenratenspiels:
    • ausgeben du hast gewonnen/ du hast verloren → Textchat funktionen, Dialog mit Spielcharakteren, Untertitel
    • gesuchte zahl speichern → Position von Spielers
    • zufällige gesuchte Zahl → Gegner spawnen, Inhalt von Kisten, Lootboxen/Fifa packs
    • nur ausgeben wenn die gesuchte zahl = der eingegeben ist → Wenn linksclick dann schießen/schlagen, Wenn w dann laufen, Wenn Spieler in eine Bombe läuft dann sterben
    • ausgabe ob höher oder tiefer → s.o. Textausgabe
    • wiederholen bis das spiel fertig ist → Immerwieder neu bewegen, nicht alles auf einmal, sondern immer nur ein kleines bisschen
    1. Teilnehmer bekommen die fertige Version über’s Repo, dann probieren sie das aus
    2. Die Zwischenschritte werden erklärt
  • Robert

3. Spielegebimsel

  • Erklärung von pygame-Basics
    • RGB
    • Opengameart
    • Pygame-Dokumentation
    • Cheatsheet
  • Template
  • Tiled
    • Wie erstelle ich eine Tiled-Map
    • Raussuchen eines Tile-Sets
    • Teilnehmer, die keine Map haben wollen, können auch sofort loslegen
    • Max. 30 min
  • Philipp
  1. Zusammenfügen
  • Teilnehmer machen aus den Templates, (evtl.) ihrer Map und eigens gebasteltem Zeug ihr fertiges Spiel.
  • Workshopleiter helfen, wenn nötig

Was lernen die Teilnehmer?

  • Python-Grundlagen
  • Tiled
  • Benutzung von Thonny
  • Pygame-Grundlagen
  • RGB
  • Benutzung von OpenGameArt

Welche Begriffe kennen sie danach?

  • Git
  • Repo
  • Tileset
  • Tiled
  • Programmiersprache
  • Python
  • Pygame
  • Thonny
  • Schleife
  • Klasse
  • Bedingung

Was kriegen die Teilnehmer? Was müssen sie selber machen?

Bekommen:

  • Lückenhafte Templates für:
  • Items
  • Gegnerbewegung
  • Rotation des Spielers
  • Gewinnen
  • Verlieren
  • Hindernisse
  • Tiled-Einbindung
  • Spielerbewegung
  • Sound
  • Spielerangriff
  • Verschiebbare Gegenstände

Selber machen:

  • Lücken füllen
  • Tiled-Map bauen
  • Tile-Set raussuchen
  • Sachen selbst programmieren
  • Gebimsel zusammenbauen

Was nehmen sie mit nach Hus?

  • Das fertige Spiel
    → Via USB

Reflektion Spieleprogrammierungsworkshop

Vorbereitung

  • Lief nicht sehr gut
  • Fehlendes Konzept mit Berücksichtigung der lessons learned

Workshop an sich:

  • Lief sehr gut
  • Templates waren hilfreich
  • Mehr Tutoren oder Helfer sind wichtig

Templates:

  • Namen in Zukunft auf Deutsch
  • Vorheriges Testen war gut, sollte aber mit mehr Zeit im voraus getan und mehrmals (von verschiedenen Personen) getan werden

Ergebnisse:

  • Ergebnisse waren besser als beim letzten mal
  • Wir brauchen einen besseren Weg zur Ergebnissicherung als Cloud
    • Firefox mit Cloud sehr langsam
    • Vllt git verwenden

Für die Zukunft:

* Reviews  von  vorherigen Workshops angucken und berücksichtigen

Ähm, nein? Im Gegenteil: Konsequent englische Bezeichner verwenden.