Mal schnell eine Runde Vier gewinnt oder Schiffe versenken mit jemandem spielen, der nicht im selben Raum sitzt - eigentlich eine einfache Sache. Die meisten Plattformen dafür wollen aber ein Konto, zeigen Werbung, sammeln Daten oder haben einen offenen Chat, was gerade für Kinder nicht ideal ist. Darum habe ich mit Ludus meine eigene kleine Spieleplattform gebaut.
Aktuell gibt es zehn rundenbasierte Spiele für zwei Personen: Tic-Tac-Toe, Vier gewinnt, Schiffe versenken, Mastermind, Mühle, Reversi, Memory, Gomoku, Mancala und Käsekästchen (Dots & Boxes). Bei Mancala und Käsekästchen kann man auch gegen den Computer spielen.
Die Prinzipien von Ludus sind:
- Keine Konten. Man wählt beim Beitreten einfach einen Namen. Der Browser erzeugt ein zufälliges, anonymes Token, das nur im
localStorageliegt. Mit einem QR-Code kann man es auf ein anderes Gerät mitnehmen. - Kein Tracking. Keine Analytics, keine Cookies, und Sessions laufen automatisch ab.
- Kein Chat. Die einzige Interaktion ist das Spiel selbst.
- Selbst hostbar. Ein
docker compose upund die eigene Instanz läuft.
Ein Spiel startet man, indem man den Einladungslink teilt oder ein öffentliches Spiel eröffnet. Weil es rundenbasiert ist, wartet eine Partie auch tagelang, bis der andere wieder am Zug ist. Wer möchte, bekommt eine Push-Benachrichtigung, sobald er dran ist. Als Progressive Web App lässt sich Ludus auf dem Handy auch wie eine normale App auf den Homescreen legen.
Technisch besteht Ludus aus einem Svelte-Frontend und einem FastAPI-Backend mit Redis. Neue Spiele lassen sich über ein Plugin-System hinzufügen: Spiel in den games-Ordner legen, und es wird beim Start automatisch erkannt. Den Code und die Anleitung zum Selbsthosten gibt es auf GitHub (MIT-Lizenz).