WordPerfect — A Multiplayer Word Game

Apr 2026 - Present ↗ Live site

WordPerfect is a real-time, competitive multiplayer word game inspired by Boggle. I wanted to capture the frantic, tactile excitement of shaking a physical letter grid and race against friends to discover hidden words, translating that exact energy into a browser environment.

The design challenge was to make a text-heavy game feel physical. Instead of displaying a boring list of submitted words, I implemented a rigid-body physics environment where words drop as tangible elements, making the act of finding and locking in a word feel satisfyingly heavy.
Context
Realtime Game
Stack
Matter.js, Supabase, Javascript
Role
Creative Technologist, Designer
Date
April 2026 - Present

Core Systems & Mechanics

Building WordPerfect meant designing and optimizing three interconnected layers: container physics, real-time presence synchronization, and anti-cheating window constraints. Let's look at the engineering under the hood:

Physics
Sync
Shuffle
Friction

Matter.js Container Physics

Drafted words are converted into physical capsule bodies (pills). They are spawned with a small horizontal scatter offset and soft gravitational forces, tumbling and stacking inside the display container. Chamfered rect corners enable bouncy, elastic collisions.

Insight: Displaying words as stacked physical cards turns a static reading list into a visual representation of progress, giving users immediate spatial awareness of their score.

Presence-Based Synchronization

Using Supabase Realtime Channels, player lobbies, readiness states, and active rounds are coordinated without database thrashing. Presence tracking maps guest connections, while broadcast triggers authorize countdown starts and score collection.

Insight: Synchronous multiplayer requires predictable state coordination. Peer-to-peer broadcasts keep 60-second round timers ticking in lockstep across all screens.

Spring Card Shuffles

Clicking the shuffle button translates all grid tiles to the exact center of the board with random rotational offsets, piling them into a messy card stack before springily dispersing them back to their grid positions. This replicates the tactile rumble of shaking a Boggle container.

Insight: Interface actions should mirror physical expectations. A spring-loaded grid translation creates a momentary sense of chaos that resolves into structured gameplay.

Honest Friction Anti-Cheat

To prevent players from looking up dictionaries in other tabs, the game enforces window focus tracking. Losing focus blurs the game board and triggers a penalty overlay. Returning to the tab initiates a 5-second lock countdown before active inputs are restored.

Insight: In digital party games, cheating is trivial but ruins social mechanics. Enforcing focus through active visual locks creates a fair playing field.

Interactive Physics Sandbox

Type any word below to see it dynamically sized and dropped as a physical capsule. The capsule bounds are calculated using the text width on the canvas, falling with natural gravity and colliding elastically.

Please fill in this field

Type words and click "Drop Word" to fill the physics container.

Grid Shuffling Simulation

To capture the tactile experience of shaking a physical Boggle cup, tiles fly to the center, stack like cards with messy rotations, and spring back into randomized positions. Try shuffling the grid below:

Click "Shuffle Grid" to see the springy translation and rotation animation in action.

Social Mechanics

Designing WordPerfect forced me to inspect Boggle's unique social mechanics:

If two or more players submit the same word, it is completely cancelled out and awards zero points. This completely shifts player behavior: instead of just writing down obvious short words, players must balance speed against obscurity, trying to find long, unique words that others are likely to miss.
Unlike native apps, browsers allow instant tab switching. To prevent dictionary lookups, the viewport-blur penalty modal stops timers and blocks tiles. It enforces "honest friction"—if a user attempts to look up a word, the 5-second penalty lock eats into their 60-second round, rendering cheating mathematically disadvantageous.