TypingGame - Projekt Details

TypingGame
Desktop App (Java Swing Schulprojekt)2022

TypingGame

Ein netzwerkbasiertes Typing-Game in Java, entwickelt in mehreren Twitch-Livestreams mit insgesamt 26 Stunden Programmierzeit.

JavaJava SwingSQLiteMultithreading

Projektbeschreibung

Hintergrund & Entstehung

Dieses Projekt entstand als praktische Projektarbeit für meinen Informatik-Leistungskurs in der Schule. Die technische Vorgabe des Lehrplans sah die Nutzung der offiziellen Java-Netzwerkklassen des Schulministeriums NRW vor.

Die gesamte Umsetzung fand öffentlich im Livestream auf Twitch statt, aufgeteilt auf mehrere Streams mit einer Gesamtdauer von 26 Stunden Programmierzeit. Für ein Schulprojekt war der Funktionsumfang mit getrenntem Server, Client-GUI, Multi-Client-Handling und Datenbank bewusst ambitioniert gewählt, auch wenn der Code den damaligen Wissensstand, das schnelle Prototyping im Stream und das schrittweise Dazulernen widerspiegelt.

Spielkonzept & Ablauf

Das Spielprinzip überträgt klassische Typing-Speed-Tests in einen Mehrspieler-Wettkampf über das lokale Netzwerk:

  • Login & Gastmodus: Spieler können sich registrieren, einloggen oder direkt als Gast beitreten.
  • Lobby-Phase: Ein gemeinsamer Warteraum zeigt alle Teilnehmer, ihren Bereit-Status und bisherige Bestleistungen an. Das Spiel startet automatisch, sobald alle bereit sind.
  • 2-Minuten-Matches: Alle Spieler tippen zeitgleich denselben vorgegebenen Text möglichst zügig und fehlerfrei ab.
  • Auswertung & Highscores: Am Rundenende berechnet der Server die genauen Anschläge pro Minute (APM), Fehlerquote und Gesamtpunktzahl, die auf Wunsch in die Highscore-Liste übernommen werden können.

Technische Umsetzung

  • Client-Server-Architektur: Zentraler Multi-Client-Server zur Koordination der Verbindungen, Spielphasen und Auswertungen.
  • Protokoll: Eigenes textbasiertes TCP-Socket-Protokoll zur Echtzeit-Kommunikation (Zustandswechsel, Eingaben, Scores).
  • Multithreading: Parallele Verwaltung mehrerer Client-Verbindungen auf dem Server.
  • GUI & Persistenz: Java-Swing-Oberfläche für den Client und SQLite zur Speicherung von Spielern und Bestenlisten.

Bilder / Screenshots

TypingGame Bild 1
Vergrößern
TypingGame Bild 2
Vergrößern
TypingGame Bild 3
Vergrößern