Inspiration
Most word games are designed around English and the Latin alphabet. When other languages are supported, their scripts often feel added as an afterthought.
I began Chathuraksharam as a Malayalam word game because I wanted something that felt playful and native to the language—not like a lesson or a translated English interface. While playing it, I realized that instructions and a separate learner mode were getting in the way of the most enjoyable part: pulling the lever, discovering letters, and solving the word.
That observation shaped the project into a focused multilingual game that people can understand by playing.
What it does
Chathuraksharam turns a five-letter word puzzle into a tactile slot machine.
Each round gives the player a localized clue and five attempts. The first letter is revealed and locked. Players pull the lever to spin the remaining reels, lock promising letters, drag a reel like a combination dial, or tap it to choose a specific letter.
The lever is dictionary-aware: it prefers real words that match the letters the player has locked. This combines luck with deliberate problem solving instead of generating meaningless combinations.
The current version supports:
- Malayalam, English, and Spanish
- Everyday, Arts, and Sports categories in every language
- 27 playable puzzles and 151 validated dictionary words
- Unlimited category-based rounds instead of one puzzle per day
- Localized clues, controls, categories, alphabets, and game titles
- Touch, mouse, keyboard, sound, sharing, and responsive mobile play
Language and category selection live in one compact control, keeping the rest of the screen focused entirely on gameplay.
How we built it
Chathuraksharam is built with Next.js, React, TypeScript, and custom CSS. Each language is represented by a reusable content pack containing its locale, direction, playable alphabet, categories, clues, puzzles, and dictionary.
Words cannot be validated by JavaScript string length because many scripts represent one visible character with multiple Unicode code points. The content pipeline uses Intl.Segmenter to validate grapheme clusters and confirms that every word can be constructed from the language's playable tiles.
GPT-5.6 is used as an authoring partner through the OpenAI Responses API. It generates culturally natural puzzle candidates using a strict JSON schema. The generated content is then independently checked for word length, playable characters, required fields, and duplicates before being saved for human review.
Generation happens asynchronously during content authoring—not during gameplay. Every player receives the same reviewed pack without model latency, runtime API costs, or unexpected generated content.
How Codex helped
Codex was my product and engineering collaborator throughout Build Week.
I used it to move from a single Malayalam daily puzzle to a reusable multilingual category system. It helped design the language-pack architecture, integrate GPT-5.6 structured generation, build deterministic validation, write regression tests, and repeatedly test the actual game in a browser.
The collaboration was especially valuable when debugging interaction problems that only appeared during real play: reels changing size after switching languages, Spanish alphabets cycling through only a few letters, the picker failing on a second attempt, mobile pointer gestures, and layouts that behaved differently before and after the first lever pull.
I made the product decisions—removing learner mode, reducing explanatory text, combining language and category selection, and keeping AI outside the gameplay request path—while Codex accelerated implementation, testing, and iteration.
Challenges we ran into
The largest technical challenge was treating each writing system correctly.
Malayalam characters can contain multiple Unicode code points, while English and Spanish use alphabets of different lengths. Reel ordering therefore had to be calculated for each alphabet using a coprime stride; otherwise, some alphabet sizes caused the reels to repeat only a small subset of letters.
The slot machine also combines animation, pointer gestures, locking, direct letter selection, dictionary constraints, and responsive layout. Small state or sizing errors could make the reels shrink on first load or leave the keyboard unavailable after a guess.
Mobile reliability required additional work. We reduced composited animation layers, prevented accidental pull-to-refresh behavior, and kept the reel strip short enough to avoid memory pressure on mobile browsers.
Accomplishments that we're proud of
I am proud that the same physical game mechanic now works naturally across three very different language systems.
The game has a complete, focused experience rather than feeling like an AI demonstration. GPT-5.6 expands what can be authored, while deterministic validation and human review protect the experience players receive.
I am also proud of the dictionary-aware lever. Randomness makes pulling it exciting, but every pull still respects the player's locked letters and tries to produce a real word.
The project was created and developed during Build Week. Its commit history documents the progression from the first Malayalam prototype on July 13 through the multilingual category engine and final cross-language gameplay fixes.
What we learned
The best place for generative AI is not always directly in the user's request path. For this game, using GPT-5.6 upstream as a structured content author—and then validating and reviewing its work—created a faster, safer, and more reusable product.
I also learned that multilingual support is more than translating interface text. A language's grapheme structure, alphabet size, fonts, clues, cultural categories, and physical layout all affect how the game must behave.
Most importantly, playing the game revealed product problems that specifications did not. Removing features and explanations sometimes made the experience more understandable than adding another instruction.
What's next for Chathuraksharam
The next step is to make the language-pack pipeline available to more languages, with native-speaker review and recorded provenance for every generated pack.
I also want to introduce rotating streams for current events, local culture, music, film, and regional sports. These packs can be generated asynchronously, validated once, and safely reused by every player.
Longer term, Chathuraksharam could become a community-authored collection of word games where each language is treated as a first-class experience rather than a translation.
Log in or sign up for Devpost to join the conversation.