Wish Village: A Free 3D Christmas Game Where You Hang a Wish on One Shared Tree

Cover Image for Wish Village: A Free 3D Christmas Game Where You Hang a Wish on One Shared Tree
Side Projects5 min read

🎄 Wish Village: make a chibi, hang a Christmas wish · ▶ Play at wishvillage.live · free, no sign-up, 10 languages

Wish Village by day and by night: the giant wish tree in the snowy village square, then the same tree lit up under the moon

The same square half an hour apart. Every hour the village goes from day to night and back, and the whole world shares the same sky.

Everyone has a wish they don't say out loud. A job they'd love, someone to love, passing the exams, a puppy, a pay rise the boss hasn't noticed they deserve.

So I built a place to put them: Wish Village, a tiny snowy village in your browser with one giant Christmas tree in the middle. You make a cute 3D chibi, walk up to the tree and hang your wish on it as a bright bauble. Then you wait for Santa, together with everyone else in the village.

It takes about a minute to hang your first wish. Coming back to see who lit a star on it is the part that keeps you.

What is Wish Village?

Wish Village is a free multiplayer 3D web game for the Christmas season:

  • You are a chibi. You pick the skin tone, hairstyle, sweater, hat and scarf, or roll the dice until one makes you smile.
  • The village is shared. Real players walk around the same square in villages of up to 40 people. When it is quiet, a few friendly villagers made by the game keep it lively and make room as real people arrive.
  • There is one tree. Every wish becomes a bauble on the same giant tree, with a timer that counts how long it has been waiting. Santa reads them all on the night of 24 December.
  • When a wish comes true, you mark it, the village sets off fireworks over your head and your bauble turns gold for good.

No app, no account, nothing to buy and no ads. It runs on a phone, a tablet or a computer.

How to hang your wish

Making a chibi with the dice, then choosing a wish: a job I love, someone to love, a pay rise, pass my exams, a safe happy family, good health, a trip somewhere new, a puppy

  1. Open wishvillage.live. It picks your language from your browser.
  2. Make your chibi. Tap the dice for a random look, or change each piece yourself, then tap Enter the village.
  3. Walk to the tree. On a phone, put your thumb anywhere on the scene and drag. On a computer, use WASD or the arrow keys.
  4. Tap Hang a wish and pick one, or write your own. You can add a photo if you like.
  5. Your bauble flies onto the tree and a card appears, ready to send to friends.

Light a star on someone else's wish

The share card "My Christmas Wish" with the chibi and its wish, and a villager's profile with buttons to star, wave, hug, throw a snowball, give a gift, dance together and follow

The tree is more fun when it isn't only yours. Tap any villager to see their wish and how long it has been waiting, then:

  • Light a star on it. A star says: I hope this comes true for you. One star per villager per wish.
  • Wave, hug, give a gift or dance together.
  • Follow them around the square.

The share card is a tall picture of your chibi and your wish, sized for Facebook, Instagram, Zalo and group chats. Send it to the people most likely to light a star.

Snowballs, fireworks and the night sky

A firework show over the tree at night, and the card that pops up when a wish comes true

Open the 🪄 tray and drag to aim. You start with snowballs and learn the rest by playing: hang a wish for blown kisses, collect three stars for fireworks, sit by the bonfire for presents, and see a wish come true for stardust. If you'd rather stay out of the snowball fights, a switch in the menu keeps skills from landing on you, on everyone's screen.

Night falls every hour. Minutes 0 to 29 are day; at minute 30 the sky turns blue, the moon rises, the windows, lamps and bonfire light up and the stars come out, until the next hour starts. The minutes are read in UTC, so everyone in the world stands under the same sky at the same time. Fireworks at night are the best part.

Safe for the kids at Christmas

Lots of children play at Christmas, so the village is built so there is nothing to worry about:

  • No chat. Villagers can wave, hug and throw snowballs, but nobody can send anyone a message.
  • Wishes are checked before they go up. A wish with a link, a phone number, a social handle, a chat app or rude words is refused, on the page and again on the server. Any villager can hide a wish they don't want to see.
  • No account and no personal data. No email, no phone number, no real name. Use a nickname.
  • Photos are cleaned. A photo on a wish is redrawn on your device before upload, which drops the camera data and the location. Three reports from different villagers delete it.
  • Nothing to buy. No shop, no prices, no prizes, no ads.

Ten languages

The game speaks English, Tiếng Việt, Español, Português, Français, Deutsch, Bahasa Indonesia, 日本語, 한국어 and 中文, and every language has its own address so you can send a friend the right one:

How it's built (for the developers)

This blog is mostly about building things, so here is the short version:

  • Three.js, Vite and TypeScript, no framework. The chibis are built entirely in code from rounded shapes. Each rigid part is baked into one vertex-coloured mesh with an inverted-hull outline, and the face is a canvas texture with one texture per expression, so a whole chibi is about a dozen draw calls.
  • A painted village. The tree, houses, pines and lamps are hand-picked paintings made with an image model, keyed and trimmed into upright cards. The camera never turns, so they always show their painted side. All the art is WebP, about 1.8 MB.
  • Day and night in one function. A tiny nightAt(time) returns 0 by day, 1 by night and a smooth step at dusk and dawn. Every frame tints the painted cards, the lights, the fog and the sky gradient from that one number, and fades in additive glow sprites for the windows, lamps and fire.
  • Cloudflare Workers and Durable Objects for the live village. A Lobby object places each player in a Room of up to 40 over hibernating WebSockets. Only what others may see travels (look, nickname, wish, stars, position, emotes), and rooms keep nothing after the sockets close.
  • The server checks the fun stuff too. A snowball travels as the spot it lands on; the Room checks it is within reach of the thrower and not faster than the skill allows, and each page works out who it hit.
  • No accounts, but your chibi can move. Your save lives in local storage. "Play on another device" shows a QR code; only then is a copy kept in a per-player Durable Object, and only a hash of its key is stored.

FAQ

Is Wish Village free?

Yes, completely. There is nothing to buy, no ads and no account to make.

Does it work on a phone?

Yes. It runs in any modern browser on a phone, tablet or computer, with nothing to install. Drag your thumb on the scene to walk.

Is it really multiplayer?

Yes. The other chibis you see are real players in the same village, up to 40 at a time. When a village is quiet, a few villagers made by the game fill in and leave as real people arrive.

Who can see my wish?

Everyone in the village: the ready-made wish you picked, or the words you wrote. Links, phone numbers, chat apps and rude words are refused, so never put your real name or how to reach you in a wish.

What happens on 24 December?

Santa reads the wishes on the tree that night. Until then, the timer on your bauble shows how long you have been waiting, and your friends can keep lighting stars on it.

What happens after Christmas?

The village changes with the seasons and your chibi stays with you. Lunar New Year, with lanterns and a blossom tree, is planned for February 2027.

Go hang yours

One tree, the whole village, a wish you don't have to say out loud:

👉 Hang your wish at wishvillage.live

Then send the card to the friend most likely to light a star on it. And if you see a wish for "someone to love" on the tree, give it a star. It helps.

Binh Nguyen

Work with me

Building something like this?

I'm Binh — an AI & cloud engineer with 11+ years shipping production software. I take on consulting and build work. Tell me what you're working on and where it's stuck.