All projects CDNMS · Write-up

A key only two people seeEin Schlüssel, den nur zwei sehen

CDNMS is our own Codenames for the afternoon meeting. Two spymasters see which card belongs to whom; everyone else turns cards over from one-word clues. The server builds each player’s view itself, checks every clue against the board, and keeps what a clue was meant for until the end.CDNMS ist unser eigenes Codenames für das Nachmittags-Meeting. Zwei Chefs sehen, welche Karte wem gehört; alle anderen decken Karten nach Hinweisen aus einem Wort auf. Der Server baut jede Ansicht selbst, prüft jeden Hinweis gegen das Brett und behält bis zum Schluss, was ein Hinweis gemeint hat.

cdnms.ewolution.cloud Source

Type
Web appWeb-App
Stack
Svelte 5 · Node · Server-Sent Events
Year
2026
Code
Public on GitHubÖffentlich auf GitHub

One word and a number

CDNMS is our own Codenames for the afternoon meeting. Two teams sit at one board of cards, each with a spymaster. Only the spymasters see the key: which cards are their team’s agents, which are bystanders, and which one is the assassin. In turn, a spymaster gives one word and a number, and their team turns cards over one at a time, up to the number plus one. Their own agent: they may go on. A bystander or the other team’s agent: the turn passes. The assassin: the game is lost. The first team to find all its agents wins.

Whoever starts a game gets a room with a four-letter code (no vowels, so no code spells a word), a link and a QR code. There are no accounts: a name and a face are enough, and a reload or a locked phone puts you back in your seat. Players pick a team and a seat in the lobby; the host can shuffle the teams, add bots and seat anyone, also mid-game when a spymaster has gone. A big-screen view at /<code>/screen shows the board for a projector or the screen shared in a call.

A key only two people see

The server builds every page’s view itself. Operatives, spectators and the big screen get only the cards that have been turned over; the two spymasters get the key. What a spymaster meant with a clue stays with them until the game ends. A spymaster who shares their screen on a call can hide the key on their own page and hold an eye to peek, and while their team is guessing they can’t send reactions: a poker face. The CI’s smoke test starts a game and checks that the big screen’s stream carries no key.

Clues checked as they’re typed

A clue is one word, never a word still on the board, and in strict mode not part of one either, nor containing one, until that card is covered. The rules live in one small module that the server checks every clue with and the spymaster’s page imports, so the field says why a word won’t do before it’s sent. Words are compared without case, umlauts, ß or accents. What no rule can check, a translation or a sound-alike, is for the other spymaster’s objection: the host decides, and an upheld objection ends the turn and covers one of the objecting team’s agents, as the rules have it.

The spymaster taps the cards a clue is meant for, and the number follows the choice until it’s set by hand; 0 and ∞ are a tap away. Sending types the clue out large and leaves three seconds to take it back.

827Words written for the game, 416 in German and 411 in English, most with two meanings, and none inside another.
165Line motifs for the picture cards; 49 have room for a second one inside.
3 sTo take a clue back after sending it.

Point first, then hold

An operative’s tap puts their face on a card for everyone to see, so the call can argue about it. Turning the card over takes a hold: a ring fills, and only a full one acts, so a slip of the thumb never costs the game. The host can require two pointers before a card turns. Two players turning the same card at once turn it once.

Pictures from two motifs

A picture board has 20 cards, five by four, as in Codenames Pictures, and a mixed board holds 13 words and 12 pictures. Every picture card puts two line motifs together, drawn on a 24-unit grid: one inside the other’s hollow (a fish in a light bulb), one riding on the other (a crown on a cloud), or two side by side. The odd pairs point in more than one direction, which is what a clue needs. The server deals the pairs, no motif twice on a board, and every page draws the same card from the same layout; each card also has a name, for screen readers and the log.

What was meant

At the end every page gets the whole key and, for each clue, the cards its spymaster meant beside the cards the team picked. A few numbers follow: the clue with the most hits, the closest call (how many pointed at the assassin without turning it), and how long the game took. The evening’s wins are tallied per team, and “Again” moves the spymaster’s seat on to the next player in each team.

A case file, light only

The page is a case file: manila folders, index cards, stencil lettering and a typewriter for the clues. The teams write in the office’s own inks, Grünstift green and Kopierstift violet, each with a shape as well, a circle and a square, so the key never depends on colour alone. The logo is the name with its missing vowels blacked out. The board keeps its cards’ shape and takes as much of the screen as fits, so the same board works on a phone, a laptop beside the call and the big screen; on a wide screen the clue sits large above it and the teams and log beside it. CDNMS has no dark theme: a file is paper.

Played by bots

The game is a state machine without a clock of its own, tested with a fake one and a seeded random: the key’s make-up, who may see what, clue checks, the guess limit, the assassin, clocks, objections and whole games played to the end. Bots give harmless clues and usually guess what was meant; they fill a room for trying it out. The page is in German and English and installs to a home screen.

Ein Wort und eine Zahl

CDNMS ist unser eigenes Codenames für das Nachmittags-Meeting. Zwei Teams sitzen an einem Brett voller Karten, jedes mit einem Chef. Nur die Chefs sehen den Schlüssel: welche Karten die Agenten ihres Teams sind, welche Passanten und welche der Attentäter. Reihum gibt ein Chef ein Wort und eine Zahl, und sein Team deckt Karten auf, eine nach der anderen, höchstens eine mehr als die Zahl. Ein eigener Agent: weiter. Ein Passant oder ein Agent des anderen Teams: der Zug ist vorbei. Der Attentäter: das Spiel ist verloren. Wer zuerst alle eigenen Agenten findet, gewinnt.

Wer ein Spiel startet, bekommt einen Raum mit einem Code aus vier Buchstaben (ohne Vokale, damit kein Code ein Wort ergibt), einen Link und einen QR-Code. Konten gibt es nicht: Ein Name und ein Gesicht reichen, und nach einem Neuladen oder mit gesperrtem Handy sitzt man wieder auf seinem Platz. In der Lobby wählt jeder ein Team und einen Platz; der Host kann die Teams mischen, Bots dazuholen und jeden umsetzen, auch mitten im Spiel, wenn ein Chef gegangen ist. Unter /<code>/screen zeigt eine Ansicht für den großen Bildschirm das Brett, für den Beamer oder den geteilten Bildschirm im Call.

Ein Schlüssel, den nur zwei sehen

Der Server baut die Ansicht jeder Seite selbst. Ermittler, Zuschauer und der große Bildschirm bekommen nur die Karten, die schon aufgedeckt sind; die beiden Chefs bekommen den Schlüssel. Was ein Chef mit einem Hinweis gemeint hat, bleibt bei ihm, bis das Spiel vorbei ist. Wer als Chef seinen Bildschirm im Call teilt, kann den Schlüssel auf der eigenen Seite verdecken und hält zum Spicken ein Auge gedrückt, und solange das eigene Team rät, kann ein Chef nicht reagieren: ein Pokerface. Der Smoke-Test der CI startet ein Spiel und prüft, dass im Stream des großen Bildschirms kein Schlüssel steckt.

Hinweise, die beim Tippen geprüft werden

Ein Hinweis ist ein einziges Wort, nie eines, das noch auf dem Brett liegt, und im strengen Modus auch kein Teil davon und keines, das eins enthält, bis die Karte aufgedeckt ist. Die Regeln stehen in einem kleinen Modul, mit dem der Server jeden Hinweis prüft und das die Seite des Chefs selbst importiert, so sagt das Feld schon vor dem Senden, warum ein Wort nicht geht. Verglichen wird ohne Groß- und Kleinschreibung, Umlaute, ß und Akzente. Was keine Regel prüfen kann, eine Übersetzung oder etwas, das nur gleich klingt, ist Sache des anderen Chefs: Er erhebt Einspruch, der Host entscheidet, und ein angenommener Einspruch beendet den Zug und deckt einen Agenten des einspruchnehmenden Teams auf, wie es die Regeln vorsehen.

Der Chef tippt die Karten an, die ein Hinweis meint, und die Zahl folgt der Auswahl, bis er sie von Hand setzt; 0 und ∞ sind einen Tipp entfernt. Beim Senden steht der Hinweis groß getippt da, und drei Sekunden lang lässt er sich zurücknehmen.

827Wörter, für das Spiel geschrieben, 416 auf Deutsch und 411 auf Englisch, die meisten mit zwei Bedeutungen, und keines steckt in einem anderen.
165Strichmotive für die Bildkarten; in 49 passt ein zweites hinein.
3 sUm einen Hinweis nach dem Senden zurückzunehmen.

Erst zeigen, dann halten

Tippt ein Ermittler auf eine Karte, liegt sein Gesicht darauf, für alle sichtbar, damit der Call darüber streiten kann. Aufgedeckt wird sie erst durch Halten: Ein Ring füllt sich, und nur ein voller deckt auf, so kostet ein abgerutschter Daumen nie das Spiel. Der Host kann verlangen, dass zwei auf eine Karte zeigen, bevor sie sich umdreht. Decken zwei dieselbe Karte im selben Moment auf, dreht sie sich einmal.

Bilder aus zwei Motiven

Ein Bilderbrett hat 20 Karten, fünf mal vier, wie bei Codenames Bilder, und ein gemischtes Brett 13 Wörter und 12 Bilder. Jede Bildkarte setzt zwei Strichmotive zusammen, gezeichnet auf einem Raster von 24 Einheiten: eines in der Höhlung des anderen (ein Fisch in einer Glühbirne), eines obenauf (eine Krone auf einer Wolke) oder beide nebeneinander. Die seltsamen Paare zeigen in mehr als eine Richtung, und genau das braucht ein Hinweis. Der Server teilt die Paare aus, kein Motiv zweimal auf einem Brett, und jede Seite zeichnet dieselbe Karte nach demselben Layout; jede Karte hat außerdem einen Namen, für Screenreader und den Verlauf.

Was gemeint war

Am Ende bekommt jede Seite den ganzen Schlüssel und zu jedem Hinweis die Karten, die sein Chef gemeint hat, neben denen, die das Team getippt hat. Dazu ein paar Zahlen: der Hinweis mit den meisten Treffern, der knappste Moment (wie viele auf den Attentäter gezeigt haben, ohne ihn aufzudecken) und wie lange das Spiel gedauert hat. Die Siege des Abends werden je Team gezählt, und „Nochmal“ gibt den Platz des Chefs in jedem Team an den nächsten weiter.

Eine Akte, nur hell

Die Seite ist eine Akte: Manila-Mappen, Karteikarten, Schablonenschrift und eine Schreibmaschine für die Hinweise. Die Teams schreiben in den Tinten des Büros, Grünstift und Kopierstift-Violett, jedes zusätzlich mit einer Form, einem Kreis und einem Quadrat, damit der Schlüssel nie allein an der Farbe hängt. Das Logo ist der Name, die fehlenden Vokale geschwärzt. Das Brett behält die Form seiner Karten und nimmt so viel vom Bildschirm, wie passt, so funktioniert dasselbe Brett auf dem Handy, auf dem Laptop neben dem Call und auf dem großen Bildschirm; auf einem breiten Bildschirm steht der Hinweis groß darüber und Teams und Verlauf daneben. Ein dunkles Design hat CDNMS nicht: Eine Akte ist Papier.

Von Bots gespielt

Das Spiel ist ein Zustandsautomat ohne eigene Uhr, getestet mit einer falschen Uhr und einem festen Zufall: die Zusammensetzung des Schlüssels, wer was sehen darf, die Prüfung der Hinweise, die Zahl der Versuche, der Attentäter, die Uhren, Einsprüche und ganze Spiele bis zum Ende. Bots geben harmlose Hinweise und raten meistens, was gemeint war; sie füllen einen Raum, um es allein auszuprobieren. Die Seite gibt es auf Deutsch und Englisch, und sie lässt sich auf den Home-Bildschirm legen.