Zurück zu Labs

Waypoint -> Von der Idee zur Veröffentlichung

Drei Wochen von der ersten Zeile bis zum fertigen Kartenplaner: was dabei entschieden wurde, was sich als falsch herausstellte und was heute steht.

Zum Projekt

Waypoint ist ein Kartenplaner für taktische Shooter: Karte wählen, Angriffswege zeichnen, Stellungen markieren, den Link in den Discord werfen und zwanzig Minuten später gemeinsam davorsitzen. Er ist am 3. August 2026 entstanden, in gut drei Wochen, und läuft seitdem öffentlich. Dies ist der Bericht darüber, was dabei entschieden wurde - und welche dieser Entscheidungen sich als falsch herausgestellt hat.

Der Anlass

Ein Angriff wird vorher besprochen. In der Praxis heißt das: jemand macht einen Screenshot der Karte, malt mit dem nächstbesten Werkzeug drei Pfeile darauf und wirft das Bild in den Kanal. Beim nächsten Mal ist es zwanzig Nachrichten weiter unten, niemand weiß mehr, welche Fassung galt, und wer zu spät kam, bekommt es noch einmal erklärt.

Es gibt ein etabliertes Werkzeug dafür. StratSketch läuft seit 2015, wurde 2023 komplett neu gebaut und zählt über eine Million angelegte Briefings. Es ist gut, es ist gepflegt - und es liegt außerhalb von allem, was diese Community sonst benutzt. Genau das war der Anlass: ein Planer, der in derselben Anwendung liegt wie die Events, die Squads und die Ränge, und der sich trotzdem an jemanden weitergeben lässt, der hier kein Konto hat und keins will.

Eine Zeile pro Strich

Die erste Entscheidung fiel, bevor die erste Linie gezeichnet war, und sie hat alles Weitere getragen. Ein Zeichenprogramm legt seinen Inhalt normalerweise als einen Block ab: ein Dokument, ein Datensatz, ein Speichern-Knopf. Hier bekam stattdessen jede Linie, jedes Symbol, jeder Text eine eigene Zeile in der Datenbank - und es gibt keinen Speichern-Knopf, sondern einen Schreibvorgang je Strich.

Der Grund lag zu diesem Zeitpunkt noch in der Zukunft: gemeinsames Zeichnen verteilt genau diese Einzelvorgänge. Mit einem Block hätte jeder Strich das ganze Dokument verschickt, und zwei Leute, die gleichzeitig zeichnen, hätten einander überschrieben. Die Bauart der ersten Woche war also bereits die Antwort auf ein Problem der zweiten.

Dieselbe Überlegung an der Zeichenfläche: keine Grafikbibliothek, sondern ein SVG über dem Kartenbild. Damit bleibt die Umrechnung zwischen Bildschirm und Karte eine schlichte lineare Abbildung, jedes Element ist ein Knoten im Dokument - Trefferprüfung, Tastaturfokus und Textbearbeitung übernimmt der Browser - und der Export rastert am Ende genau das SVG, das man vor sich sieht. Kein zweiter Renderer, der eines Tages anders aussieht als der erste.

Phase zwei kam einen Tag später

Am 4. August stand die Echtzeit. Der Empfang läuft über einen Ereigniskanal des Servers; alles Flüchtige - Mauszeiger, halbfertiger Strich, Ping, Vortragsstand - geht über eine offene Verbindung daneben. Die darf ausfallen: dann geht dieselbe Meldung den langsameren Weg, und man merkt eine Verzögerung statt eines Fehlers.

Ein Detail hat länger gedauert als die halbe Mechanik darunter: ein Strich soll beim Zuschauer wachsen, nicht fertig erscheinen. Der Unterschied ist keine Spielerei. Ein fertiger Strich sagt: hier war jemand. Ein wachsender sagt: hier ist jemand, gerade jetzt, und er ist noch nicht fertig - warte kurz.

Die andere Hälfte ist das Funkloch. Wer die Verbindung verliert, bekommt beim Zurückkommen nicht die Seite neu geladen, sondern nachgeliefert, was in der Zwischenzeit passiert ist. Wer schon einmal mitten in einem Briefing ein Neuladen erlebt hat, weiß, warum das ein eigener Punkt ist.

Die zweite Woche

Danach kam das, was ein Planer außer Zeichnen noch können muss. Der Reihe nach, weil jeder Punkt aus einer konkreten Situation entstand:

  • Eine Nadel mit einer Notiz. Der Plan lebt nach dem Briefing weiter - jemand widerspricht an genau der Stelle, um die es geht. Kommentieren darf, wer lesen darf, nicht nur, wer zeichnen darf: der Einwand kommt oft von dem, der nur zusieht.

  • Eine Legende, die niemand pflegt. Sie rechnet sich aus dem, was auf dem Plan liegt. Eine Legende, die man von Hand nachträgt, ist nach der zweiten Änderung falsch, und falsch ist schlechter als gar nicht.

  • Ein Messwerkzeug. Eine Strecke aufziehen und wissen, ob man rechtzeitig da ist. Dafür braucht die Karte einen Maßstab - eingetragen wird nicht, wie viele Meter ein Pixel sind, sondern wie breit das Gebiet ist. Nur das lässt sich von einer Karte auf die nächste übertragen.

  • Ebenen. Erst drei feste, dann frei anlegbar, benennbar, sperrbar, mit Deckkraft. Der Plan, die erwartete Gegenbewegung und der Notfall gehören nicht übereinander in einer Farbe.

  • Eine eigene Karte je Folie. Die Anfahrt gehört auf die Übersichtskarte, der Sturm auf den Detailausschnitt, und beides in einen Plan.

  • Bedienung ohne Maus. Auswählen, verschieben, zoomen, Folien umsortieren - alles über die Tastatur. Das häufigste Gerät bei einem Briefing ist ein Tablet am Beamer, das zweithäufigste ein Laptop ohne Maus.

Der Umweg, der sich gelohnt hat

Ein Plan auf einem Tisch im Raum statt auf einer flachen Fläche - dieselbe Planung, dieselben Werkzeuge, nur räumlich. Der erste Bau dafür war eine Homographie: die Perspektive einer ebenen Fläche ist mathematisch eine Projektivität, und genau die kann der Browser mit einer einzigen CSS-Zeile. Die Rechnung war hergeleitet, gegen die Handrechnung geprüft und in beide Richtungen aufgelöst.

Sie war richtig, und sie sah aus wie eine gestreckte Karte. Drei Dinge fehlten, und keines ließ sich nachrüsten:

  • Eine Kamera. Es gab eine Zahl zwischen null und eins. Man konnte den Blick heben und senken, aber nicht um den Tisch herumgehen - und daran merkt das Auge sofort, dass da nichts steht.

  • Ein Raum. Ein Trapez auf dunklem Grund ist kein Körper. Ohne Dicke, Kante und Schatten fehlt jeder Hinweis, dass die Karte auf etwas liegt.

  • Eine Textur. Der Browser rastert eine gekippte Ebene ungefähr in Bildschirmgröße und streckt sie dann. Bei flacher Kamera trifft ein Bildschirmpunkt ein Dutzend Kartenpunkte - heraus kommt Rauschen. Ausgerechnet dort, wo eine Perspektive am meisten verspricht, sah sie am schlechtesten aus.

Der Ersatz ist eine echte Szene: eine Platte mit Dicke, Kante und Schatten, zwei Lichter, eine perspektivische Kamera und das Kartenbild als gefilterte Textur, die auch flach betrachtet scharf bleibt. Der entscheidende Teil ist aber, was nicht nachgebaut wurde: der Plan liegt weiterhin als lebendes SVG darauf, durch dieselbe Kamera projiziert wie die Szene darunter. Alle Werkzeuge, die Trefferprüfung, die Anfasser und die Textbearbeitung funktionieren unverändert - auf dem gekippten Tisch zeichnet man mit demselben Stift wie auf der flachen Karte.

Danach ließ sich etwas bauen, das vorher gar nicht in Reichweite war: eine Kulisse, die sich die Karte selbst ansieht. Aus Farbflächen werden Umrisse, aus Umrissen werden Wälder, Wasserflächen, Häuserblocks und Felder, die als Stufe über dem Boden liegen. Das ist ausdrücklich als Alpha gekennzeichnet, weil es rät - eine Bahnstrecke ist kein Haus, und das musste man ihm erst beibringen. Wo der Browser es hergibt, rendert die Szene inzwischen über die neuere Grafikschnittstelle; wer sie nicht hat, bekommt unverändert das Bild, das er kennt.

Was ein Test nicht beantwortet

Die Rechnungen und die Bedienlogik sind gedeckt: allein die Oberfläche des Planers bringt 673 Tests in 33 Dateien mit. Was sie nicht beantworten, ist die Frage, wie es auf einem echten Bildschirm aussieht. Ein Beispiel, das sich hartnäckig hält: die Breite eines Textrahmens wird mit einem festen Wert je Zeichen geschätzt. Ein Test prüft, dass überall dieselbe Zahl benutzt wird - ob sie bei IIIII und WWWWW erträglich danebenliegt, sieht man nur, indem man hinsieht.

Deshalb geht jede Änderung erst auf eine zweite, vollständige Umgebung mit eigener Datenbank, und wird dort durchgegangen. Die auffälligsten Korrekturen der letzten Wochen kamen genau von dort und aus der Nutzung: der Ping war auf einer vollen Karte zu leicht zu übersehen und ist heute fast doppelt so groß. Ein Zeigefinger, den man suchen muss, ist keiner.

Was heute steht

  • Elf Werkzeuge, 53 eigene Symbole ohne Fremdlizenzen, Folien mit Inhaltsübernahme, Präsentationsmodus, Export als Einzelbild und als Bogen mit allen Folien.

  • Gemeinsames Zeichnen mit sichtbaren Zeigern, Anwesenheitsliste und der Anzeige, auf welcher Folie jemand gerade ist.

  • Kommentare an einer Stelle der Karte, Ebenen, Gitter und Maßstab am Plan, eigene Karte je Folie, eigene Symbolsätze samt Marktplatz zum Freigeben und Übernehmen.

  • Der Lagetisch als Beta, die Kulisse als Alpha - beide je Nutzer umlegbar, weil sie den Blick ändern und nicht den Plan.

  • Ohne Konto benutzbar, in zehn Sprachen, und ein geteilter Plan bleibt aus dem Suchindex heraus. Wer taktische Pläne für ein Turnier zeichnet, will sie nicht in Suchergebnissen finden.

Was fehlt

Der ehrliche Teil. Der Abstand zum etablierten Werkzeug liegt längst nicht mehr bei den Funktionen, sondern bei Inhalt und Betrieb: dort liegen Karten in Spielqualität mit eingezeichneten Basispositionen, dort stehen Server auf mehreren Kontinenten, und dort haben zehn Jahre Gewöhnung stattgefunden. Karten muss jemand pflegen, und das ist Arbeit, die kein Umbau ersetzt.

Ein Stück davon ist inzwischen abgetragen, und zwar an der Stelle, an der es am meisten wehtat: wer für ein Event ein eigenes Bild hochlädt, trägt Raster und Maßstab am Plan selbst nach und kann beides von einer bestehenden Karte übernehmen. Damit fällt der Nachteil genau bei den Karten weg, die es in keinem Katalog gibt. Was bleibt: die Rechteverwaltung ist gröber als dort, und fünfzehn Sprachen gegen unsere zehn sind fünfzehn Sprachen.


Waypoint ist ohne Anmeldung erreichbar. Karte wählen oder ein eigenes Bild hochladen, zeichnen, den Link weitergeben - wer ihn öffnet, ist im selben Plan.

Themen

WaypointKartenplanerEchtzeitthree.jsWerkstattbericht