[ディネシュ・クマール]

ISSUE #01 — 2026

Built by me · live

Namma Games

Three street games in one 3D village lane: Gilli-Danda, Lagori and Lattu. It runs in the browser, installs on a phone and works offline. Designed and directed by me, built with Claude Code.


[01. What I designed]

I defined the three games and their rules, art-directed the village, the kids and the colours, and tuned how every hit and throw feels.

[02. What I built]

TypeScript, Three.js and Vite in one small offline file. The physics are hand-written, and the music and fireworks are generated in code. 91 automated tests, plus bots that play every game end to end.

[03. Where AI helped]

I used the Spline MCP with Claude to create the 3D assets: the village environment, the characters and the props. Claude Code wrote most of the code. I did the directing: what to build, what feels right, what to throw away.

Stack:TypeScriptThree.jsViteSpline MCPClaude Code CLI· 2026Live site ↗
The productFig. 00 — product screens
A village lane at night with lit windows, bunting, kites, a temple tower at the far end and four kids playing near a drawn circleThe same lane by day with a blue sky, a green tree, a street stall and kids playing Gilli-DandaLagori from above: a glowing ring on the lane, kids running and a score bar showing three of seven stones carried

Act 1

The lane in my memory, as a link you can open

I grew up playing street games: Gilli-Danda in the lane, seven stones with a tennis ball, a spinning top wound with string. Those games live in memory and in the street, not on a phone. So I built them, as one small village lane that plays three of them in a browser.

  1. Anyone with a phone

    Opens from a link. No app store, no account, no ads, no tracking.

  2. Anyone offline

    Install it from the browser and it keeps working with no connection.

  3. Anyone who grew up with these games

    Each game keeps its street name, with the English game beside it.

Fig. 01
Namma Games title screen on a night village lane: the title Kittipul with Gilli-Danda in brackets, the line Flick it, time it, send it flying down the gully, a Play button and key hints
Title screen: the first game, with its controls and a day / night toggle

Act 2

Three street games, one village lane

Each game gets one clear instruction and one tap or drag that decides it. The lane stays the same, so moving between games feels like walking down the street.

Decision 01

Kittipul (Gilli-Danda)

Tip it, strike it, beat the fielders. A marker slides along the gilli and you tap when it is on a tapered tip; tap again when the ring closes in to strike. The hint is on screen at the moment you need it.

  • Timing
  • Tap to flick
  • Tap again to strike
Fig. 02
A kid with a stick over the gilli in a drawn circle, a caption reading Tap when the marker is on a tapered tip and a timing bar below
Gilli-Danda: tap when the marker is on a tapered tip
Decision 02

Ezhu Kal (Lagori)

Topple seven stones, then run, carry them and pile them back before you are tagged. It is played as a real team game: run, carry stones, dodge the throws and shout Lagori. The score bar shows the round, the time and how many stones you are carrying.

  • Team game
  • Dodge the throws
  • Shout Lagori
Fig. 03
Lagori seen from above: kids running along the lane, a glowing ring where the stones are piled, Round 1 of 3 and 3 of 7 stones carried, with a Lagori button and arrow keys
Lagori from above, carrying stones
Decision 03

Pambaram (Lattu)

Wind the string, spin the top, outlast the rival. The screen shows how well you threw, your top's spin in rpm and how your rival is doing, so you can see why you won or lost.

  • Throw 1 of 3
  • Spin in rpm
  • Rival
Fig. 04
Two spinning tops near a hole inside a large drawn ring, kids watching, with throw, best time, top, rival and rpm readouts at the top
Lattu: two tops spinning in the ring

Act 3

Nine kids, a village that feels alive, and a phone in your hand

The lane is not a backdrop. It has a temple tower at the end, bunting, lanterns and kites. It sways in the wind, lights up at night and ends with fireworks. The nine kids each look different: different heights, outfits, hair, glasses and a festival kurta.

Fig. 05
Nine kids in a row on a sunny village lane, each with different hair, clothes, height and glasses
The nine kids on the lane
Decision 04

3D assets made with the Spline MCP

I used the Spline MCP to create the 3D assets: the village environment, the characters and the props. Claude built shapes in the Spline editor from my direction, and I checked each one, changed colours and proportions, and sent back what looked wrong. Then the scene was brought into the game and animated.

  • Spline MCP
  • Environment
  • Characters
  • Props
Fig. 06
The Spline 3D editor with a green rounded shape selected, the colour picker open and the transform and shape settings on the right
A game asset open in the Spline editor
Fig. 07
Phone screen with the title Kittipul, a Play button, a Tap hint and a row of round tool buttons
Gilli-Danda on a phone
Fig. 08
Phone screen with the title Ezhu Kal, a Play button, a Drag back hint and fireworks in the night sky
Lagori on a phone, with fireworks over the lane

91

automated tests

Plus bots that play every game end to end.

0

ads, accounts or tracking

It installs from the browser and works offline.

Act 4

Designed and directed, built with Claude Code

This is a product designer’s project. Every design decision here is also an engineering decision: the camera, the way a hit feels, the gap between a button and a thumb. None of it fits in a spec; I had to play it and tune it. Claude Code did most of the typing, and the Spline MCP made the 3D assets. I defined the games and their rules, art-directed the village and the colours, tested on real phones and sent back screenshots of what looked wrong, and cut what did not earn its place, such as the leaderboard.

Role
Designer and director
Built with
Claude Code, Spline MCP
Stack
TypeScript, Three.js, Vite
Plays on
Phone and laptop, offline
Status
Live

The 'does it feel good?' loop is design work, even when the output is code.