Make your own game

moood is a living scene drawn by code and a page where your code runs on top of it — what it becomes is up to you. What is open, what the studio helps with, and how to get in.

At the heart of moood there are two things. A living scene drawn by code: a place with light, weather, people and music. And a page where your game's code runs on top of that scene. Everything else — what kind of game it will be — is up to the author.

Our games turned out to be stories with choices: chapter after chapter, voiced lines, mini-games. But that is only one way. A scene can be a place where you simply want to stay a while. A game can be a puzzle, a toy, an aimless walk, a conversation — anything that fits in code. Here is what there is for it, and how to use it.

A world on moood is a set of scenes. Each is a place: a pier at dawn, a kitchen, a snowy steppe. Code draws it — light, water, mist, wind, reflections — and people live in it: they walk, sit down, turn around. The camera itself films whoever the scene is looking at. Every scene has its own music.

A scene lives on its own too. Its state — dawn or night, rain or clear, who stands where — changes by keys, and the same scene can go from dusk to darkness in a minute. A scene can be shown with no game at all, just as a living picture: there are such sketches on moood.me too.

A game is code you write yourself, and how much of it there is is up to you too. The page gives it the scenes and everything in them that can change: show another scene, change the weather, lead a person somewhere, let them say a line in their own voice, play a sound, save, pause. The rest is as you plan it.

You can write chapters and choices, as we do. There is ready-made help for that: a map of the play, replays, a language of mini-games — gestures, marks and responses a player understands without captions. You can take none of it: leave one scene and let a person do something in it. You can show the game on your own site and let its code talk to whatever you like — even a language model that plays a character.

At first every game had mini-games of its own, and the player had to guess each time what to press. Then, out of complaints and wishes, a common language grew: a mark on a thing, a gesture of the hand, the scene's response, a plate at the top — and a sound that tells whether it worked. More in the story [«The language of mini-games»](/stories/minigame-language). You don't have to use it, but it saves a lot of effort.

With a folder. A world, a game and a story are just folders in a git repository: yours, on your GitHub, with your co-authors, branches and history. One repository can hold as many of them as you like.

It is easiest to write them together with an AI agent — Claude Code, ChatGPT, Gemini, any. For that there is the open repository [moood](https://github.com/moood-me/moood): the engines, the scene page and the game page, the language of mini-games, the check and a small player to play on your own machine. We put things there by one rule: if something is needed to make a game and play it, it is there. And the docs, written so that an agent can work by them: what matters in a scene and what never to do, how to set light and people, how a game is built, how to write a scenario if you need one.

And so that an agent has something to look at, we opened our own work too — the [works](https://github.com/moood-me?q=works) repositories. There are the worlds and games of moood.me with the code of their scenes and the story of how they were made, a playground of mini-games where every gesture can be tried on its own, and early small worlds — tries at what scenes can be. Take what helps.

Anything — a world, a scene, a game, a story — is named by one line: `your-repository@branch:folder`. A commit can stand in for the branch. That is how it is opened in the studio, referred to from another game, handed to an agent. A game can stand on someone else's world too — by such an address.

At first it was more complicated: every world had service branches of its own for every site it was rolled out to. The agents were used to it. Pavel looked and said: «It's somehow cognitively complicated)… Can't we do without the branches?)» — and asked to think not about how to patch it but about how to make it simple. It turned out nothing but git is needed: your branches are your drafts.

On your own machine — in the player from moood: it runs over your folder, and as soon as you save a file the page reloads itself, and the game goes on from where it was. Or in the studio: any branch is there right after a push, on a computer and on a phone. Changed something while playing? The studio offers to go on with the new version, without starting over.

Some things can't be done on your own computer: they need a graphics card, and models that speak, compose music and move people. That is what the studio is for. You can use all of it, take one thing from it, or not use it at all.

**See.** The studio draws a scene on a graphics card: a picture, a sheet of frames second by second, a video. It's not only for you. An agent looks at its own work in pictures and fixes it by itself while you are busy with something else. It connects to the studio once: you allow it on a page that says in plain words what it will be able to do, and from then on it works on your behalf.

**Bring people to life.** A person's motion is described in words: «walks slowly forward», «sits down and looks at the water». A model trained on recordings of real motion makes it, and the studio shows it on different people before it goes into a scene.

**Give a voice.** Any line can be voiced: every character has their own voice and manner, and a single line can have a manner of its own — «with envy and delight, not mockingly». All the lines of a game are in one place, and you can listen to them.

**Give music.** You describe a scene's music in words and mix the descriptions by weight: «quiet piano at dusk» louder, «rain on leaves» softer. You can listen at once, before saving anything. What is made once is kept: the same line or the same music is never made twice.

**Start without code.** The studio has an artist — an AI you can simply write to: «make it evening, and let the lantern on the pier be lit». It edits the scene itself, and every change is seen at once. It is there so a world can be begun right in the browser, with no editor and no agent of your own. Even just out of curiosity: make a couple of scenes and see what comes of it.

**Don't stutter.** A living scene should run smoothly on a weak laptop and on a phone too. The studio measures it on different machines and shows where it doesn't fit. Why this matters so much to us — in the story [«Why it was slow»](/stories/why-it-was-slow).

**Speak every language.** Games on moood speak twelve languages, and yours can too. The check finds what isn't translated, links that lead nowhere, scenes that don't build — and shows which voices, music and pictures are missing. What's missing is made with one button. The check is quick: it redraws scenes on a graphics card only if asked — after all, you want to check often.

A finished game can be put forward for publishing on moood.me. It is looked at before it is shown, and then it takes its place on the site beside the others — with pictures of its scenes, voices and music.

Or without us. The moood pages can be shown by any site or app that answers their few simple requests. You can take the engine and make something entirely your own on it.

We tried to make the studio a place where you don't get lost. It is built like a portal: services on the left — repositories, worlds, games, stories, and the workshop: renders, measurings, speech, music, motion, the artist, checks, publications. At the top, a search over everything at once: type «lantern» and you see the game, the story and the scene. What you need can be starred. There is a dark theme and a phone, and the studio itself speaks the same twelve languages.

Small things were caught too. You press a menu item and nothing answers — did it press or not? Now the item lights up at once, and if the page takes longer than a moment, «Loading…» appears. If it's quicker, nothing flickers.

A separate agent went through the whole studio as several made-up people: an experienced author, a newcomer, someone who had just come in. It opened every page in two languages, in the light and the dark theme, on a computer and on a phone — and wrote down where it stumbled.

There were funny finds and annoying ones. An author pressed «Measure» and landed on «not found»: their own measuring wouldn't open. A game in English showed up in the Russian studio with no title and no «Play» button. A newcomer hit a dead end: comes in — and nothing after that. All of it was fixed before the studio opened.

Access to the studio is given by Pavel. Write to him on [Telegram](https://t.me/pavel_zhur) or at [[email protected]](mailto:[email protected]) — he'll let you in, just like that. And if you'd like to help moood itself — the engine, the pages, the docs — he'll be glad: issues and pull requests in [moood](https://github.com/moood-me/moood) are open to everyone.