Schlagwort: Spielesammlung verwalten

Von Karteikarten zur App (2/3): Zehn Tage, ein iPad, kein Mac

Im ersten Teil ging es darum, warum ich mich als Steuerberater überhaupt an eine App setze. Jetzt zur Sache: Wie aus vier Fragen in zehn Urlaubsabenden ein Werkzeug wurde und was es kann.

Anderthalb Stunden für einen Dateidialog

Ausgangslage am Abend des 8. August: ein iPad Pro mit Magic Keyboard, kein Mac, kein Plan. Meine Programmierkenntnisse stammen anscheinend aus einer anderen Zeit

Swift hatte ich nie angefasst, iOS-Entwicklung nie auch nur aus der Ferne betrachtet und eigentlich hatte ich auch erwartet mit KI gar nicht viel selber tippen zu müssen … „leider“ nicht am IPad.

Die erste Hürde war entsprechend banal: Welche App lädt man überhaupt? Die Antwort heißt Swift Playground, ist kostenlos und läuft auf dem iPad. Die zweite Hürde war schlimmer. Ich habe rund anderthalb Stunden gebraucht, um ein bereits angelegtes Projekt wieder zu öffnen. Nicht wegen des Codes, sonder aufgrund Apples Dateidialog. Ich bin auch schon mal schneller in neue Software eingestiegen.

Drei Abende bis zur brauchbaren App

„Hello World“ war als Messlatte für den ersten Abend zu niedrig. Am Ende des ersten Abends stand eine navigierbare Spieleliste, die ihre Daten als JSON speicherte und jedem Spiel einen Redaktionsstatus mitgab – berichtet, geplant, offen. Aus Redaktionssicht wäre ich fast fertig …

Tag zwei brachte den zentralen Datenspeicher, die Personenverwaltung, die Partienerfassung mit Fotos und Eindrücken, Suche, Filter, einen Textexport und ein App-Icon. Tag drei die Struktur in Reitern, erste Statistiken, das Elo-Ranking, Import und Export sowie Coverbilder.

Drei Abende von null auf funktionsfähig. Was dabei half, waren weniger die alten Programmierkenntnisse als das Datenmodell-Denken: Welche Entitäten gibt es, wie hängen sie zusammen, was ist ein eigener Datensatz und was nur ein Attribut? Wirtschaftsmathematik und Jahre mit Datenbanken zahlen sich an dieser Stelle aus. Wer eine Spielesammlung sauber modelliert, hat die halbe App.

150 Spiele aus Regalfotos

Die schönste Abkürzung kam am dritten Tag. Statt 150 Titel abzutippen, habe ich unser Regal fotografiert. Claude hat die Buchrücken gelesen und daraus eine Liste gemacht, ich habe korrigiert, wo die Schachtelkante zu wenig hergab oder eine Erweiterung als eigenständiges Spiel durchging.

Das ist keine Magie und es war auch nicht fehlerfrei. Aber der Unterschied zwischen „ich tippe drei Abende lang Titel ab“ und „ich prüfe eine Stunde lang eine Liste“ entscheidet darüber, ob so ein Projekt überhaupt bis zum Ende kommt.

HTTP 401

Am vierten Tag sollte BoardGameGeek dazukommen – Verlag, Autor, Grafik, Erscheinungsjahr, Komplexität, Bewertung, Rang, Cover. Die XML-Schnittstelle von BGG ist seit vielen Jahren dieselbe, sie ist gut dokumentiert, und sie antwortete: HTTP 401.

Der Grund: BGG verlangt seit dem letzten Jahr eine Registrierung für die API. Nicht-kommerzielle Nutzung bleibt kostenlos, Auflage ist im Wesentlichen das „Powered by BGG“-Logo. Also Antrag gestellt und ins Bett gegangen. Am Folgetag war er genehmigt.

Danach ging es schnell: ein Stapelabgleich für alle Spiele auf einmal, ein Picker für Erweiterungen, und schließlich der Crowdfunding-Bereich mit 99 Projekten, die aus einer Excel-Tabelle einwanderten.

Was die App heute kann

Die Sammlung. 150 Spiele mit den BGG-Daten im Rücken. Viele Titel müssen nach dem Urlaub noch erfasst werden. Die App führt bewusst den deutschen Schachteltitel und daneben den englischen BGG-Titel. Wer je versucht hat, eine deutsche Sammlung gegen eine englische Datenbank zu pflegen, weiß, warum das kein Detail ist. Und wichtige (eigentlich bekannte) Erkenntnis: Man brauch reine ID und nicht den Namen, um den Abgleich sauber und regelmäßig hinzubekommen.

Die Partie. Wer hat mitgespielt, wie lange, was ist passiert. Dazu Fotos, ein Eindruck in Textform und eine Note pro Person auf einer Zehnerskala. Nach ein paar Wochen ist das ein Spieltagebuch, das keiner von Hand geführt hätte.

Das Ranking. Statt jeden zu bitten, 150 Spiele in eine Reihenfolge zu bringen, was niemand tut, zeigt die App immer zwei Spiele nebeneinander: Welches lieber? Daraus entsteht pro Person eine Elo-Wertung. „Kenne ich nicht“ ist eine gültige Antwort und verzerrt die Wertung nicht. Josef, Maja und ich haben damit drei sehr unterschiedliche Ranglisten über dasselbe Regal.

Der Vorschlag. Das ist die Karteikarten-Verlosung von 2016, nur klüger. Wer spielt mit, wie viel Zeit haben wir, worauf haben wir Lust — und heraus kommen fünf Titel aus der Schnittmenge der persönlichen Top 50 aller Beteiligten. Dazu einer, den wir lange nicht auf dem Tisch hatten. Der sechste ist mir der liebste: Er bringt genau die Spiele zurück, für die früher die Karten zuständig waren.

Die Crowdfunding-Ecke. Gut 99 Projekte über ihren gesamten Lebenszyklus, vom Pledge bis zur Lieferung, dazu eine Bewertung der Verlage und eine Merkliste für Essen. Erstmals kann ich die Frage „was steht eigentlich noch aus?“ beantworten, ohne alte E-Mails zu durchsuchen. Her muss ich allerdings noch etwas manuelle Pflege einplanen.

Der Redaktionsexport. Der Teil, den nur wir brauchen, der aber der Grund für vieles andere war. Auf Knopfdruck entsteht eine Artikelvorlage: zuerst meine eigenen Notizen, dann die Stimmen der Mitspielenden, dann die Zahlen aus den Partien, dann die BGG-Daten und ein etwaiger Verlagstext klar als Fremdtext ausgewiesen. Diese Reihenfolge ist Absicht. Im Artikel soll von uns ja kein zweiter Verlagstext geschrieben werden.

Zwei Entscheidungen, die sich gelohnt haben

Die eine ist die mit den Titeln: deutsche Schachtel vorne, BGG-Titel daneben. Die andere betrifft Erweiterungen. Sie liegen im Datenbestand als eigene Einträge, so wie BGG sie führt, erscheinen in der Sammlungsliste aber unter dem jeweiligen Grundspiel. Das klingt nach Kleinkram, entscheidet aber darüber, ob Statistiken stimmen und ob man eine Erweiterung wiederfindet, deren Karten längst in der Grundspielschachtel stecken.

Beides waren Entscheidungen, die ich getroffen habe, nicht das Modell. Und das ist der Übergang zum dritten Teil: Wie die Arbeitsteilung zwischen Mensch und KI tatsächlich aussah, was dabei gründlich schiefging und was ich daraus für die Kanzlei mitnehme.

Teil 3: Was schiefging, und was ich gelernt habe.

Von Karteikarten zur App (1/3): Warum ein Steuerberater Apps baut

In diesem Artikel wird kein (Brett-)Spiel besprochen, nicht mal ein Computerspiel. Es geht um das Werkzeug, das inzwischen zwischen uns und unserem Regal steht, und um die Frage, warum ich zehn Urlaubsabende und einige Autofahren als Beifahrer darauf verwendet habe, es selbst zu bauen.

Zwei Schreibtische

Ich sitze beruflich an zwei Schreibtischen. Am einen bin ich Steuerberater und Partner der Kanzlei Mußenbrock & Partner mbB. Am anderen entsteht das hier: die Spielwiese der Hügelzelter, seit 2025 unser Blog über Brettspiele, Messen und Crowdfunding.

Auf den ersten Blick haben die beiden Schreibtische wenig gemeinsam. Auf den zweiten sehr viel, denn an beiden <verändert sich gerade dasselbe. Wer heute Mandaten betreut, arbeitet mit Software, die vor fünf Jahren so nicht existierte. Wer heute publiziert, ebenso. Und in beiden Feldern steht dieselbe Frage im Raum: Was macht man eigentlich mit künstlicher Intelligenz, wenn man sie nicht nur ausprobieren, sondern verantwortlich einsetzen will?

Ich habe für mich beschlossen, dass ich diese Frage nicht vom Zuschauerrang aus beantworten möchte. Man versteht ein Werkzeug erst, wenn man damit etwas gebaut hat, das kaputtgehen kann.

1998, und was daraus wurde

Meine erste Homepage habe ich 1998 gebaut. Handgeschriebenes HTML, Tabellenlayout, ein Sammlung animierter GIFs und kein Gedanke an Copyright, Datenschutz oder auch nur Content. Der Stand der Technik seinerzeit genau wie heute war Anlass genug sich daran auszuprobieren. Danach kamen ein Schreibmaschinenkurs und Turbo Pascal; m Studium dann Java, irgendwann VBA in ziemlichem Umfang und SQL zumindest lesend. Nichts davon macht mich zum Entwickler. Aber es hinterlässt eine Art Grundgefühl dafür, wie Daten und Programme zusammenhängen.

So ähnlich sah es damals aus …

Im vergangenen Jahr habe ich mich an die Homepage gemacht, auf der du gerade liest. In diesem Jahr an Apps. Das ist (k)eine Midlife-Krise mit Tastatur, sondern eine Reihenfolge: Erst versteht man, wie man Inhalte ins Netz bringt. Dann, wie man eigene Daten strukturiert. Und irgendwann, wie man beides mit Modellen verbindet, die einem beim Denken helfen.

Das eigentliche Fernziel

Denn die App ist ein Zwischenschritt. Wohin ich eigentlich will, ist ein lokal betriebenes Sprachmodell – KI, die im Haus bleibt.

Der Grund dafür ist berufsbedingt naheliegend. In einer Steuerberatungskanzlei sind die interessantesten Anwendungsfälle immer die mit den heikelsten Daten. Genau dort verbieten sich Dienste, bei denen man nicht mit letzter Sicherheit sagen kann, wo die Eingaben landen und was mit ihnen geschieht. Ein Modell, das auf eigener Hardware läuft, löst dieses Problem an der Wurzel statt über Zusicherungen Dritter.

Bis dahin ist es ein weiter Weg, und ich bin ihn noch nicht zu Ende gegangen. Aber jeder Schritt darauf – Datenmodelle entwerfen, Schnittstellen anbinden, verstehen, wo ein Modell zuverlässig ist und wo es nur zuverlässig klingt – ist ein Schritt, den man einmal gemacht haben muss.

Reine Fingerübungen halten mich nicht am Ball

Nur: Lernen um des Lernens willen funktioniert bei mir nicht. Tutorials mit Beispieldaten sind nach drei Abenden erledigt, weil nichts davon weh tut, wenn es verlorengeht. Ich brauchte ein Projekt, das ich wirklich benutzen würde. Und bei dessen Nutzung, dann auch neue Ideen kommen, also ein Alltagsproblem.

Das lag näher, als ich dachte. Denn bei aller Sortierung im Regal fehlte uns seit Jahren die Übersicht über das eigene Hobby. Vier Fragen, die wir uns immer wieder stellten und nie sauber beantworten konnten:

  • Was haben wir eigentlich alles? Inklusive der Erweiterungen, die in fremden Schachteln stecken.
  • Was mögen wir davon? Und zwar wer genau, denn Josef, Maja und ich sortieren dieselbe Sammlung sehr unterschiedlich. Und das schon seit vielen Jahren.
  • Worüber haben wir schon berichtet? Eine Frage, die sich mit jedem Monat Blog dringlicher stellt.
  • Welche Kampagnen stehen eigentlich noch aus? Bei inzwischen rund 100 unterstützten Projekten auf Kickstarter und Gamefound eine Frage, die niemand mehr aus dem Kopf beantwortet.

Vier Fragen sind noch kein Lastenheft, aber sie sind ein Anfang. Und sie haben den Vorteil, dass falsche Antworten sofort auffallen.

Karteikarten, 2016

Die fünfte Frage ist die älteste und die einfachste: Was spielen wir heute Abend?

Wir haben sie uns vor knapp zehn Jahren zum ersten Mal ernsthaft gestellt, damals noch mit deutlich kleineren Kindern und einem Regal voller Kinderspiele, das keiner mehr überblickte. Meine Lösung war analog: Ich habe von jedem Spiel ein Bild gemacht, die Bilder auf Karteikarten gebracht und die Karten zur Auslosung gestellt. Was gezogen wurde, wurde auch gespielt (Zumindest meistens). Das hat erstaunlich gut funktioniert, denn es nahm die Diskussion aus der Entscheidung und brachte Spiele zurück auf den Tisch, die sonst hinten im Regal verstaubt wären.

Was es nicht konnte: mitzählen. Es wusste nicht, wer wen wie oft geschlagen hat, wie lange ein Spiel wirklich dauert, wann wir es zuletzt gespielt haben und wer es überhaupt mag.

Zehn Jahre später kann das eine App. Sie fragt, wer mitspielt, wie viel Zeit wir haben und worauf wir Lust haben. Danach kommt ein strukturierte Vorschlag: Fünf Titel aus der Schnittmenge der persönlichen Ranglisten vor. Plus einen, den wir lange nicht auf dem Tisch hatten. Die Karteikarten von damals, nur dass sie sich merken, wie der Abend ausgegangen ist und noch etwas Luft für die eigene Entscheidung lassen.

Wie es dazu kam

Gebaut habe ich sie zwischen dem 8. und dem 17. August, im Urlaub, überwiegend abends und nachts. Auf einem iPad. Ohne Mac. Ohne je zuvor eine Zeile Swift geschrieben zu haben. Und mit einem KI-Modell als Gegenüber, das den Code schrieb, während ich entschied, was er können sollte.

Wie das ablief, was am Ende dabei herauskam und wo die Sache gehörig schiefging — davon handeln die beiden folgenden Teile.

Teil 2: Zehn Tage, ein iPad, kein Mac.

Die Hügelzelter-App im Rundgang

Offtopic und zugleich der Auftakt. In den kommenden Wochen erzähle ich in drei Teilen, wie diese App entstanden ist: in zehn Urlaubsabenden, auf einem iPad, ohne je zuvor eine Zeile Swift geschrieben zu haben. Vorher aber das Ergebnis: sieben Bildschirme, was sie zeigen und warum sie so aussehen, wie sie aussehen.

Stand der Dinge: Die App läuft in Swift Playground auf einem iPad. Sie liegt in keinem App Store und wird dort auch nie liegen. Sie verwaltet aktuell 151 Spiele und 16 erfasste Partien.

Die Sammlung

Der erste Reiter ist der, den ich am häufigsten öffne. Jede Zeile trägt das Cover, den Titel, den Verlag, die Spielerzahl und die Spieldauer — darunter die BGG-Bewertung, die Komplexität und das Erscheinungsjahr.

Zwei Details, die im Bild leicht untergehen: Bei Spielen mit abweichendem englischen Titel steht dieser klein unter dem deutschen — bei 7 Wonders Architects etwa 7 Wonders: Architects, bei Alhambra Family Box das Alhambra: Family Box von BGG. Ohne diese zweite Zeile findet man in einer deutschen Sammlung nichts wieder, was in einer englischen Datenbank steht.

Und die Liste ist ehrlich: Aventuria mit einer BGG-Wertung von 4,6 steht genauso drin wie Ark Nova mit 8,5. Eine Sammlung ist keine Bestenliste.

Das einzelne Spiel

Die Detailansicht ist bewusst dreigeteilt, und die Reihenfolge ist Absicht.

Oben unsere eigenen Angaben: Verlag, Spielerzahl, Spielzeit — dazu der Redaktionsstatus und unsere Bewertung. Bei Deep Regrets stehen dort noch zwei Striche, weil wir zwar zwei Partien gespielt, aber noch nichts geschrieben haben.

Darunter der Block von BoardGameGeek: Autor und Grafik (bei diesem Titel beides Judson Cowan), Jahr, Altersfreigabe, Komplexität, Bewertung, Rang und die Mechaniken. Wichtig ist die letzte Zeile: Stand: 17. Aug 2026. BGG-Werte altern, Ränge verschieben sich. Wer eine Zahl aus einer Datenbank zitiert, sollte dazusagen, wann er sie geholt hat — das gilt für einen Blogartikel genauso wie für einen Prüfbericht.

Ganz unten der Verlagstext, überschrieben mit „Verlagstext von BGG“. Er steht bewusst am Ende und bewusst mit Herkunftsangabe. Was der Verlag über sein Spiel sagt, ist eine Information — aber eben nicht unsere.

Die Partien

Jede Partie mit Datum und Teilnehmenden, absteigend nach Datum. Was hier nach einer schlichten Liste aussieht, ist die Grundlage für alles Weitere: Ohne erfasste Partien gibt es keine Statistik, keine Siegquoten und keinen „lange nicht gespielt“-Vorschlag.

Zu sehen ist übrigens auch, wie ein Urlaub aussieht, in dem nebenbei eine App entsteht: dreimal dnup an zwei Tagen, dreimal Quantik, zweimal Flip 7. Kurze Spiele gewinnen, wenn abends noch programmiert wird.

Ein Eintrag heißt „Unbekanntes Spiel“. Auch das bleibt drin — es ist ein Testdatensatz aus den ersten Tagen, und er erinnert mich daran, dass jede Datenbank ihre Altlasten hat.

Die Statistik

Der Überblick oben ist schnell erzählt: 151 Spiele, 16 Partien, 9 Stunden 35 Minuten Spielzeit. Darunter der laufende Monat, die meistgespielten Titel und eine Zeile pro Person mit Partien und Siegen.

Interessanter ist der untere Teil, der nichts mit Statistik zu tun hat: Sicherung exportieren, Sicherung einlesen, BGG-Abgleich starten, Spiele einzeln nachbearbeiten, BGG-Kennzahlen aktualisieren. Das sind die Werkzeuge, die aus Schaden/Fehlern entstanden sind: ein verrutschtes Einfügen, zwei gelöschte Dateien, drei Stunden Reparatur. Die Geschichte dazu kommt im dritten Teil der Serie; die Export-Funktion steht jedenfalls nicht ohne Grund an erster Stelle.

Ganz unten steht das „Powered by BGG“-Logo. Das ist keine Höflichkeit, sondern die Bedingung, unter der BoardGameGeek seine Schnittstelle für private Zwecke freigibt.

Das Ranking

Hier liegt die Idee, auf die ich am meisten stolz bin, und sie ist geklaut — aus dem Schach.

Niemand bringt 151 Spiele in eine Reihenfolge. Aber jeder kann sagen, welches von zwei Spielen ihm besser gefällt. Genau das fragt die App, immer wieder, mit zwei Coverbildern nebeneinander: dnup oder The Witcher: Old World? Dazu „Unentschieden“, „Überspringen“ und — für jede Seite einzeln — „Kenne ich nicht“.

Aus diesen Paarvergleichen entsteht eine Elo-Wertung, wie man sie von Schachranglisten kennt. Unten sieht man das Ergebnis, und man sieht auch, wie jung es noch ist: An der Spitze stehen Dune: Imperium, Voidfall und Terra Nova mit 1.572 Punkten, aber der lange Rest hängt bei 1.548 — dem Startwert. Diese Spiele wurden schlicht noch nicht verglichen. Eine Rangliste braucht Zeit, und das ist in Ordnung: Sie soll ja das Ergebnis vieler kleiner Entscheidungen sein, nicht eines langen Abends.

Der Vorschlag

Und hier kommen die Karteikarten von 2016 zurück, nur mit Gedächtnis.

Man stellt ein, wer mitspielt, wie viel Zeit zur Verfügung steht und ob eine bestimmte Mechanik gefragt ist. Die App nimmt daraufhin die persönlichen Top 50 aller Beteiligten, bildet die Schnittmenge und prüft, was zur Spielerzahl und zur Zeit passt.

Herauskommen fünf Vorschläge — im Bild Photosynthese, 7 Wonders Architects, Borderlands, Wizard und Agent Avenue, jeweils mit Mechaniken darunter. Wem das nicht gefällt, drückt auf „Nochmal würfeln“; der Name ist eine Verbeugung vor den Karten.

Darunter steht die Rubrik, die mir am wichtigsten ist: Lange nicht gespielt. Ein einzelner Titel, der es aus eigener Kraft nie in die Auswahl schaffen würde. Im Bild ist es Zug um Zug — ein Spiel, das jeder kennt, jeder mag und trotzdem seit Ewigkeiten im Regal steht.

Das Funding

Der siebte Reiter ist der, der außerhalb dieses Blogs vermutlich niemanden interessiert und für uns der wertvollste ist: zahlreihe unterstützte Crowdfunding-Projekte mit Plattform, Verlag, Status und gezahltem Betrag in Euro.

Tainted Grail: The Fall of Avalon für 127,44 €, Frosthaven für 125,32 €, Munchkin Dungeon für 77,79 € und dazwischen VOYAGES als Print-and-Play für 4,63 €. Genau diese Zahlen verschwinden nach ein paar Jahren gern aus dem Netz, wenn Kampagnenseiten umgebaut oder gelöscht werden. Was hier steht kann von uns später noch genutzt werden.

Oben lässt sich nach ausstehenden Projekten filtern. Die Antwort auf „Was kommt eigentlich noch?“ dauert jetzt zwei Sekunden statt zwei Stunden.

Hinter den Kulissen

Zum Schluss ein Blick auf das, worin das alles steckt: Swift Playground auf dem iPad, links die Dateiliste, rechts die ContentView — jene Datei, in der die sieben Reiter definiert werden, die durch diesen Artikel geführt haben.

Man sieht in der Seitenleiste ganz gut, wie so ein Projekt wächst: BGGService, BGGImport, BGGSearchView, CampaignFormView, ExpansionPickerView, HuegelzelterStore. Aus den drei Dateien, für die diese Umgebung gedacht ist, sind rund dreißig geworden.

Was noch fehlt

Alles, was hier zu sehen ist, liegt auf genau einem Gerät. Die Ranglisten der anderen entstehen nur, wenn ich ihnen das iPad reiche — für ein Werkzeug, dessen ganzer Sinn die unterschiedlichen Perspektiven auf dasselbe Regal sind, ist das der eigentliche Mangel.

Der nächste Schritt steht deshalb fest, und er hat mit Brettspielen wenig zu tun: ein Mac, Xcode statt Playground, eine Synchronisierung über die Geräte hinweg und eine Verteilung an die Familie. Wenn das läuft, melde ich mich wieder.

Zuvor aber die Geschichte dahinter. Warum ein Steuerberater überhaupt anfängt, Apps zu bauen; wie aus „welche App lade ich eigentlich?” in zehn Abenden das hier wurde; und was dabei gründlich schiefgegangen ist — in drei Teilen, hier auf der Spielwiese.