Skip to content

About

Blickwinkel party game for Open Party Lab

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

Blickwinkel

Blickwinkel is an original, phone-first social party game for 1–16 people. Its separate repository belongs in local-games/blickwinkel beside the other Open Party Lab games. Each player takes a character selfie before the first task. A twelve-task session mixes four picks, two text prompts, two photo prompts and four drawing prompts. Every session includes transformations of another player's selfie and one's own selfie, a separate photo remix, and a one- or two-stroke challenge. A photo remix normally requires a camera or gallery image before drawing; an optional variant reuses photos from an earlier completed task. For a solo player, both selfie transformations use their own photo. Photo tasks allow 120 seconds and drawing tasks 150 seconds; voting is untimed.

The setup's Ü18 / 18+ switch is off by default (blickwinkelAdultContent: "off"). Enabling it guarantees two adult person-pick questions and one adult text task per session, selected from 12 original questions and six text prompts about flirting, sex and nightlife. All content is localized in German and English. The default session excludes adult content.

For picks, players select a person; the most-voted person wins. A solo player can select themselves. In creative tasks, everyone submits a short text or a compressed JPEG, and the most-voted entries win. Only winners receive points: 5 for a sole winner, 3 each for two tied winners, 2 each for three, and 1 each for four or more (max(1, round(5 / winnerCount))). Voting itself and votes received by non-winners award no points. No valid winner means no points. The host shows each result on its own with an animation and audio cue. After the last individual result, voting opens: text entries show the character photo and name to the left of the answer, while photo and drawing entries show only the author's name above the image. Phone ballots show names and character photos, with no answer previews and no vote timer; nobody can vote for their own entry. Before scoring, winning entries light up with their points, a short firework animation and sound. The host then displays the current scores as compact instant-photo cards in one, two, or three rows for up to 5, 10, or 16 players, with a clear round-award summary. One coin per awarded point falls with a synchronized metallic clink and remains on the winner's photo; a large +points badge appears after the coins land. The top three total-score frames then turn gold, silver, and bronze. Final standings do not replay the last task's points or coins.

Photos and drawings are kept in the room's transient game state. Creative content is revealed on the host; controllers receive only names and character photos for voting. The phone focuses on the input or ballot, without helper paragraphs, visible countdown, or score. Inputs and photo buttons are centered with top clearance for the fullscreen control; long ballots remain scrollable. Drawing tools use accessible icon buttons. Drawings can use a phone photo as a background, start from a blank canvas, or use the assigned person's current character selfie. Each submitted selfie edit becomes that person's new character photo after voting; missing submissions leave the old photo intact. Target assignments stay fixed for the whole task. Media is converted to a small JPEG on the phone before sending. Task-type helper labels are omitted on the host. Stage music crossfades over 1.5 seconds, and each individual answer enters with a sweep and bell cue. Questions and tasks are localized in German and English.

Photo handling

If every current player submitted a valid photo in an earlier photo task, the later photo remix has a 50% chance of using that task's photos instead of requesting new ones. The server keeps only the most recent complete photo-task batch; incomplete tasks do not supply photos. At remix start, a shuffled cycle gives each player another player's photo, using every photo once. Solo uses the player's own photo. A late joiner without a photo in that batch prevents this variant from being selected. Five original German/English prompts cover science-fiction scenes, unexpected visitors, parties, adventure posters and portals. Assignments stay fixed throughout editing and reconnects. Each controller receives only its assigned background; the full batch stays private on the server, and these edits do not replace character selfies.

Photo editing follows the original image aspect ratio, with a larger canvas and tools below it instead of white side margins. Clearing strokes keeps the photo. Separate camera and gallery controls support camera permission or capture limitations. JPEG compression accepts camera files without a MIME type and falls back from ImageBitmap to the browser's native image decoder, with timeouts. Sending waits for authoritative server confirmation; connection loss retains the local photo and an unconfirmed send can be retried after eight seconds. Media still must arrive before the host task timer expires. Unsupported source formats produce a readable error; device camera/HEIC compatibility needs real-phone verification.

Run

Progress updates keep the mounted host scene, photos and animations in place; only counters, progress bars and clocks change after submissions or ballots. Different tasks/results and changed visible content still render a new scene. The manifest opts into broadcast.reliableState, which requires the matching platform update: authoritative confirmations and stage changes queue while transports are busy instead of being discarded as volatile packets or skipped by host throttling. Input-only phone screens omit the other players' character images; ballots retain names and avatars, and assigned editing backgrounds remain private to their recipient. Focused Socket.IO checks with 16 simultaneous 80 kB photo submissions passed over both WebSocket and HTTP polling under simulated outbound backpressure, including duplicate rejection and final confirmation delivery. In-app host checks at 1280×720 retained scene/image DOM nodes through 16 progress updates and still switched scenes for the next result. Real-device camera, Wi-Fi and audio behavior remain to be checked.

From the platform root, run npm run games:sync-local, then npm run typecheck and npm run build. The game appears in the catalog for rooms with 1–16 players.

The matching platform update is required for camera/gallery decoding, submission confirmation and the enlarged photo editor. Camera/HEIC compatibility and Wi-Fi disconnect/retry behavior still require real-phone playtesting.

Package exports

@open-party-lab/game-blickwinkel exposes the manifest, protocol, authoritative server game, DOM host surface, and phone controller builder. The phone uses the platform's reusable social_party layout.

Lobby selfies

Blickwinkel uses optional GamePlayerSummary.avatar photos from the platform lobby. Players with a photo are already counted as submitted in the initial selfie phase; when everyone has a photo, the game proceeds to its first countdown.

About

Blickwinkel party game for Open Party Lab

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages