Holz und ich, das wird wohl keine große Liebesbeziehung mehr es ist eher ein pragmatisches Zweckbündnis. Das Gehäuse aus rohen OSB-Platten diente schlicht als unkomplizierter Testaufbau, um zu prüfen, ob die gesamte Idee in der Praxis überhaupt funktioniert. Da das Konzept nun auf ganzer Linie begeistert, steht fest: Das Ganze wird demnächst in schöner und deutlich größer nachgebaut.
Als Recheneinheit kommt ein HP t620 Thin Client zum Einsatz, auf dem Linux Mint läuft. Das Gerät bietet für diese Art von Retro-Spielen mehr als ausreichend Leistung, arbeitet leise und lässt sich unkompliziert integrieren. Die physische Steuerung erfolgt über ein fertiges Arcade-Set: Zum Einsatz kommt ein Sanwa-Klon mit einem blauen Joystick und sechs passenden Buttons samt USB-Encoder. Zwar handelt es sich hierbei um einen günstigeren Nachbau, mechanisch funktioniert er aber einwandfrei und lässt sich über die direkte USB-Anbindung ohne zusätzliche Treiber sofort ansprechen.
Die Software basiert komplett auf Python und der Multimedia-Bibliothek Pygame. Das Herzstück bildet ein modulares Hauptmenü (main.py), das als zentraler Launcher dient. Jedes Spiel in der Sammlung ist völlig eigenständig spielbar und kann separat gestartet werden. Das Menü übergibt beim Aufruf lediglich ein globales Bildschirm- und Uhr-Objekt und nimmt beim Beenden den erreichten Punktestand entgegen.
Hier die Dateien und Ordnerstruck
│
├── start_arcade.bat # Startskript für Windows
├── start_arcade.sh # Startskript für Linux
├── main.py # Zentrales Hauptmenü / Launcher
├── requirements.txt # Abhängigkeiten (pygame etc.)
├── README.md # Projektbeschreibung & Setup-Anleitung
│
├── assets/ # Globale Assets für das Hauptmenü
│ ├── fonts/ # Arcade-Fonts
│ ├── images/ # Hintergrundbilder, Rahmen, Logo
│ └── sounds/ # Menü-Sounds, Navigation, Klickgeräusche
│
├── core/ # Zentrale Systemmodule
│ ├── __init__.py
│ ├── input_manager.py # Arcade-Controller / Joystick & Keyboard Mapping
│ ├── highscore.py # Übergreifende Hall of Fame / Highscore-Verwaltung
│ └── settings.py # Globale Konfiguration (Auflösung, Lautstärke, Pfade)
│
└── games/ # Modulare Spieleordner (jeweils eigenständig lauffähig)
├── bird/
│ ├── main.py # Eigenständiger Starter / run(screen, clock)
│ └── assets/ # Sprites, Sounds
├── dino/
│ ├── main.py
│ └── assets/
├── ghosts_2/
│ ├── main.py
│ └── assets/
├── hockey/
│ ├── main.py
│ └── assets/
├── jump/
│ ├── main.py
│ └── assets/
├── pinball/
│ ├── main.py
│ └── assets/
├── pinball_2/
│ ├── main.py
│ └── assets/
├── space/
│ ├── main.py
│ └── assets/ # Schiffe, Laser, Boss-Sprites, Explosionen
├── tank_battle/ # 2D-Action-Panzerduell
│ ├── main.py
│ └── assets/
├── tetris/
│ ├── main.py
│ └── assets/
└── viergewinnt/
├── main.py
└── assets/
Natürlich läuft das System nicht völlig fehlerfrei, und der ein oder andere kleinere Bug lässt sich sicherlich noch finden – im Kern funktioniert jedoch alles stabil und zuverlässig.
Transparenzhinweis zur Entwicklung
Normalerweise bist du es gewohnt, dass ich mich eher im C++-Bereich für Arduino-Projekte bewege. Da ich Python zwar lesen und das grundlegende Prinzip verstehen, diese Sprache aber nicht so richtig schreiben kann, lief die Umsetzung komplett anders ab. Die Arbeitsteilung lag hier bei etwa 90 zu 10 %: Ich habe sehr präzise Prompts vorgegeben und den Code im Wesentlichen von Gemini AI generieren lassen. Anders als bei C++, wo ich selbst Coden kann nutze ich für dieses Projekt KI, die hier den eigentlichen Programmcode geschrieben hat. Geprüft und getestet wurden die Spiele dann intensiv von mir und vor allem von meinem Sohn, der alles ausgiebig ausprobiert hat.
.bat-Datei zum schnellen Starten der Python-Skripte müsst ihr euch bei Bedarf kurz selbst im Ordner anlegen.





