2D-Spiel mit Python/Matrix

Spieleprogrammieren mit Python/Pygame

Teilnehmer:

  • Philipp
  • Robert
  • Martin

Spielidee:

Wir wollen Among us in frei machen. Dieses könnte über aug(m)entile funktionieren.

Probleme:

  • Client → Server
    • Wenn wir den Server mit 209483945 events zuspammen hängt der sich irgendwann auf
    • Relevante Events:
      • Bewegungen (Geschwindigkeit, Position, Ausrichtung; Alle 10 frames, wenn in der Nähe eines anderen Spieler, alle 2 frames)
      • Alle Interaktionen mit anderen Faktoren
      • Sonderaktionen (Knopf gedrückt, etc)
    • Vom Server zurückgeschickt:
      • Interaktionen mit anderen Faktoren
      • Bewegungen
    • Protokoll: Matrix (könnte zu lahm sein)
    • Nutzung von Python und matrix-SDKs
    • Serverprogramm auf Kirill und Benni’s Server
    • init-Skript zur Registrierung eines Accounts
    • Spieler- und Game-ID
    • Limitierte Anzahl an Games durch limitierte Anzahl an Spiel-Accounts (=ein Spiel pro Account, Umverteilung, Zentrale Verwaltung durch Bot)
    • Time-Out wegen Inaktivität

matrix-nio-Testung

  • Noch anstehend

Map

  • Lokal mit Tiled

Warum nicht auch im Room-State gespeichert?

Das Protokoll habe ich gepostet bevor du die Matrix-Einführung gemacht hast. Also, ja, wir würden das im Room-State speichern

Wir sollten uns mal treffen um daran weiterzuarbeiten

Terminabstimmung
  • Montag 17:00, 22.11.2021
  • Montag 18:00, 22.11.2021
  • Montag 19:00, 22.11.2021
  • Dienstag 17:00, 23.11.2021
  • Dienstag 18:00, 23.11.2021
  • Dienstag 19:00, 23.11.2021
  • Mittwoch 17:00, 24.11.2021
  • Mittwoch 18:00, 24.11.2021
  • Mittwoch 19:00, 24.11.2021
  • Donnerstag 16:30, 25.11.2021
  • Donnerstag 18:30, 25.11.2021

0 Teilnehmer

In einer Session haben wir uns dazu entschieden, die Entwicklung des Battleships-Spiels in zwei Teile zu unterteilen: Einen Teil der das Battleships an sich implementiert und einer der generisch die Kommunikation zwischen zwei Spielern über Matrix implementiert.

  • Battleships
    • Klasse Ship und Player existieren
    • das Spielbrett kann erstellt und mit Schiffen gefuellt werden
    • Man kann Treffer landen und Schiffe versenken
    • Die Main Loop fehlt noch
      • Startphase, Schiffe erstellen
      • Spielphase, abwechselnd auf Eingabe warten oder auf Treffer testen
      • Endphase, signalisieren wann das Spiel verloren ist
  • Matrix
    • Erstellen und Verlassen von Räumen existiert
    • Fehlend
      • Einladen von Personen
      • Senden von Roomevents
      • Lesen von Nachrichten

Ich hab noch eine Verstaendnisfrage:

Soll man spaeter das Spiel z.B. aus der Kommandozeile aus als Python Skript starten, und die Kommunikation laeuft im Hintergrund ueber Matrix?

Oder soll umgekehrt aus dem Matrix Chat heraus das Spiel gestartet werden und die Python Logik laeuft im Hintergrund?

Wir müssten uns mal einen Termin aussuchen, an dem wir Online hieran weiterarbeiten:

Terminabstimmung
  • Montag, 20.12., 17:00
  • Montag, 20.12., 19:00
  • Dienstag, 21.12., 17:00
  • Dienstag, 21.12., 18:00
  • Dienstag, 21.12., 19:00
  • Mittwoch, 22.12., 17:00
  • Mittwoch, 22.12., 18:00
  • Mittwoch, 22.12., 19:00
  • Donnerstag, 23.12., 16:30
  • Donnerstag, 23.12., 18:00
  • Donnerstag, 23.12., 19:00

0 Teilnehmer

Da keiner Abgestimmt hat hier eine neue Abstimmung:

Terminabstimmung
  • Montag, 3.1.2022, 14:00
  • Montag, 3.1.2022, 15:00
  • Montag, 3.1.2022, 16:00
  • Montag, 3.1.2022, 17:00
  • Dienstag, 4.1.2022, 14:00
  • Dienstag, 4.1.2022, 15:00
  • Dienstag, 4.1.2022, 16:00
  • Dienstag, 4.1.2022, 17:00
  • Mittwoch, 5.1.2022, 14:00
  • Mittwoch, 5.1.2022, 15:00
  • Mittwoch, 5.1.2022, 16:00
  • Mittwoch, 5.1.2022, 17:00
  • Donnerstag, 6.1.2022, 14:00
  • Donnerstag, 6.1.2022, 15:00
  • Donnerstag, 6.1.2022, 16:00
  • Donnerstag, 6.1.2022, 17:00
  • Freitag, 7.1.2022, 14:00
  • Freitag, 7.1.2022, 15:00
  • Freitag, 7.1.2022, 16:00
  • Freitag, 7.1.2022, 17:00

0 Teilnehmer

Soll man spaeter das Spiel z.B. aus der Kommandozeile aus als Python Skript starten, und die Kommunikation laeuft im Hintergrund ueber Matrix?

Ja

Edit, weil ich nicht 3 Mal am Stück posten darf:
Der nächste Termin ist 2022-01-05T15:00:00Z