Zrób własną grę
moood to żywa scena rysowana przez kod i strona, na której nad nią działa twój kod — czym się stanie, zależy od ciebie. Co jest otwarte, w czym pomaga studio i jak się do niego dostać.
W sercu moood są dwie rzeczy. Żywa scena rysowana przez kod: miejsce ze światłem, pogodą, ludźmi i muzyką. I strona, na której nad tą sceną działa kod twojej gry. Cała reszta — jaka to będzie gra — zależy od autora.
Nasze gry wyszły jako historie z wyborami: rozdział za rozdziałem, wypowiedziane kwestie, minigry. Ale to tylko jeden ze sposobów. Scena może być miejscem, w którym po prostu chce się pobyć. Gra może być łamigłówką, zabawką, spacerem bez celu, rozmową — czymkolwiek, co zmieści się w kodzie. Tu opisujemy, co do tego jest i jak z tego korzystać.
Świat w moood to zestaw scen. Każda jest miejscem: molo o świcie, kuchnia, step pod śniegiem. Rysuje ją kod — światło, wodę, mgłę, wiatr, odbicia — a mieszkają w niej ludzie: chodzą, siadają, odwracają się. Kamera sama filmuje tego, na kogo patrzy scena. Każda scena ma własną muzykę.
Scena żyje też sama z siebie. Jej stan — świt czy noc, deszcz czy pogoda, kto gdzie stoi — zmienia się przez klucze i ta sama scena potrafi w minutę przejść od zmierzchu do ciemności. Scenę można pokazać bez żadnej gry, po prostu jako żywy obraz: takie szkice też są na moood.me.
Gra to kod, który piszesz sam, a ile go będzie, to też twoja sprawa. Strona daje mu sceny i wszystko, co w nich można zmieniać: pokazać inną scenę, zmienić pogodę, poprowadzić człowieka, pozwolić mu wypowiedzieć kwestię jego głosem, włączyć dźwięk, zapisać, zatrzymać. Reszta — jak sobie wymyślisz.
Możesz pisać rozdziały i wybory, tak jak my. Jest do tego gotowa pomoc: mapa rozgrywki, powtórki, język minigier — gesty, znaczniki i odpowiedzi, które gracz rozumie bez podpisów. Możesz nie brać z tego nic: zostawić jedną scenę i pozwolić człowiekowi coś w niej robić. Możesz pokazywać grę na własnej stronie i pozwolić jej kodowi rozmawiać z czym chcesz — nawet z modelem językowym, który prowadzi postać.
Na początku każda gra miała własne minigry i gracz za każdym razem na nowo zgadywał, co tu nacisnąć. Potem ze skarg i życzeń wyrósł wspólny język: znacznik na przedmiocie, gest ręki, odpowiedź sceny, plakietka u góry — i dźwięk, który podpowiada, czy się udało. Szczegóły w artykule [«Język minigier»](/stories/minigame-language). Nie musisz z niego korzystać, ale oszczędza mnóstwo sił.
Od folderu. Świat, gra i artykuł to po prostu foldery w repozytorium git: twoim, na twoim GitHubie, z twoimi współautorami, gałęziami i historią. W jednym repozytorium może ich być, ile chcesz.
Najwygodniej pisać je razem z agentem AI — Claude Code, ChatGPT, Gemini, dowolnym. Do tego jest otwarte repozytorium [moood](https://github.com/moood-me/moood): silniki, strona sceny i strona gry, język minigier, sprawdzanie i mały odtwarzacz, żeby grać u siebie. Wkładaliśmy tam wszystko według jednej zasady: jeśli coś jest potrzebne, żeby zrobić grę i w nią zagrać, jest tam. A także dokumentacja, napisana tak, żeby mógł według niej pracować agent: co jest ważne w scenie i czego nigdy nie robić, jak ustawiać światło i ludzi, jak jest zbudowana gra, jak pisać scenariusz, jeśli go potrzebujesz.
A żeby agent miał na co patrzeć, otworzyliśmy też własne prace — repozytoria [works](https://github.com/moood-me?q=works). Są tam światy i gry z moood.me z kodem scen i historią tego, jak powstawały, plac zabaw minigier, gdzie każdy gest można wypróbować osobno, i wczesne małe światy — próby tego, jakie mogą być sceny. Bierz, co się przyda.
Wszystko — świat, scena, gra, artykuł — nazywa się jedną linijką: `twoje-repozytorium@gałąź:folder`. Gałąź można zastąpić commitem. Tak otwiera się to w studiu, tak odwołuje się do tego z innej gry, tak daje się to agentowi. Gra może też stać na cudzym świecie — pod takim adresem.
Na początku było trudniej: każdy świat miał własne gałęzie robocze dla każdej strony, na którą był wypuszczany. Agenci byli do tego przyzwyczajeni. Pavel popatrzył i powiedział: «Jakoś to trudne poznawczo)… A nie da się bez gałęzi?)» — i poprosił, żeby myśleć nie o tym, jak to połatać, ale jak zrobić to prosto. Okazało się, że poza gitem nic nie jest potrzebne: twoje gałęzie to i są twoje szkice.
U siebie — w odtwarzaczu z moood: uruchamia się nad twoim folderem i gdy tylko zapiszesz plik, strona odświeża się sama, a gra toczy się dalej od tego samego miejsca. Albo w studiu: każda gałąź jest tam widoczna zaraz po pushu, na komputerze i na telefonie. Poprawiłeś coś w trakcie gry? Studio zaproponuje kontynuować na nowej wersji, bez zaczynania od początku.
Są rzeczy, których na własnym komputerze nie zrobisz: potrzebna jest karta graficzna i modele, które mówią, komponują muzykę i poruszają ludźmi. Po to jest studio. Możesz używać go w całości, wziąć z niego jedną rzecz albo nie korzystać wcale.
**Zobaczyć.** Studio rysuje scenę na karcie graficznej: obraz, arkusz klatek co sekundę, wideo. To potrzebne nie tylko tobie. Agent ogląda swoją pracę w obrazach i sam ją poprawia, gdy ty zajmujesz się czym innym. Do studia podłącza się raz: zgadzasz się na stronie, na której prostymi słowami napisano, co będzie mógł, i dalej pracuje w twoim imieniu.
**Ożywić ludzi.** Ruch człowieka opisuje się słowami: «idzie powoli do przodu», «siada i patrzy na wodę». Robi go model wytrenowany na nagraniach prawdziwych ruchów, a studio pokazuje go na różnych ludziach, zanim trafi do sceny.
**Dać głos.** Każdą linijkę można udźwiękowić: każdy bohater ma swój głos i sposób mówienia, a pojedyncza kwestia może mieć własny — «z zazdrością i zachwytem, a nie drwiąco». Wszystkie kwestie gry są w jednym miejscu i można ich posłuchać.
**Dać muzykę.** Muzykę sceny opisujesz słowami i mieszasz opisy według wag: «cichy fortepian o zmierzchu» głośniej, «deszcz na liściach» ciszej. Posłuchać można od razu, jeszcze niczego nie zapisując. To, co zrobiono raz, zostaje zachowane: ta sama kwestia i ta sama muzyka nie powstają dwa razy.
**Zacząć bez kodu.** W studiu jest artysta — AI, do którego można po prostu napisać: «niech będzie wieczór i niech latarnia na molo się pali». Sam poprawia scenę, a każda zmiana jest od razu widoczna. Jest po to, żeby świat dało się zacząć prosto w przeglądarce, bez edytora i bez własnego agenta. Nawet tylko z ciekawości: zrobić parę scen i zobaczyć, co z tego wyjdzie.
**Nie zacinać się.** Żywa scena powinna iść płynnie i na słabym laptopie, i na telefonie. Studio mierzy ją na różnych maszynach i pokazuje, gdzie się nie mieści. Dlaczego jest to dla nas tak ważne — w artykule [«Dlaczego przycinało»](/stories/why-it-was-slow).
**Mówić we wszystkich językach.** Gry na moood mówią w dwunastu językach i twoja też może. Sprawdzanie znajduje to, co nieprzetłumaczone, linki prowadzące donikąd, sceny, które się nie budują — i pokazuje, których głosów, muzyki i obrazów brakuje. Brakujące robi się jednym przyciskiem. Sprawdzanie jest szybkie: sceny na karcie graficznej przerysowuje tylko na prośbę — w końcu sprawdzać chce się często.
Gotową grę można poprosić o opublikowanie na moood.me. Przed pokazem ktoś na nią spojrzy, a potem stanie na stronie obok innych — z obrazami scen, głosami i muzyką.
A można i bez nas. Strony moood pokaże każda witryna albo aplikacja, która odpowiada na kilka ich prostych zapytań. Można wziąć silnik i zrobić na nim coś zupełnie własnego.
Staraliśmy się, żeby w studiu nikt się nie gubił. Jest zbudowane jak portal: po lewej usługi — repozytoria, światy, gry, artykuły i pracownia: rendery, pomiary, mowa, muzyka, ruchy, artysta, sprawdzenia, publikacje. Na górze wyszukiwarka po wszystkim naraz: wpisujesz «latarnia» i widać i grę, i artykuł, i scenę. To, czego potrzebujesz, można oznaczyć gwiazdką. Jest ciemny motyw i wersja na telefon, a samo studio mówi w tych samych dwunastu językach.
Łapaliśmy też drobiazgi. Naciskasz pozycję menu, a odpowiedzi nie ma — nacisnęło się czy nie? Teraz pozycja podświetla się od razu, a jeśli strona ładuje się dłużej niż chwilę, pojawia się «Ładowanie…». Jeśli szybciej — nic nie miga.
Osobny agent przeszedł całe studio jako kilka zmyślonych osób: doświadczony autor, nowicjusz, ktoś, kto dopiero wszedł. Każdą stronę otwierał w dwóch językach, w jasnym i ciemnym motywie, na komputerze i na telefonie — i zapisywał, gdzie się potyka.
Znalazło się śmieszne i przykre. Autor naciskał «Zmierz» — i trafiał na «nie znaleziono»: własnego pomiaru nie dało się otworzyć. Gra po angielsku w rosyjskim studiu pokazywała się bez tytułu i bez przycisku «Graj». Nowicjusz wpadał w ślepy zaułek: wchodzi — a dalej nic. Wszystko to poprawiono, zanim studio otwarto.
Dostęp do studia daje Pavel. Napisz do niego na [Telegramie](https://t.me/pavel_zhur) albo na [[email protected]](mailto:[email protected]) — otworzy, po prostu tak. A jeśli zechcesz pomóc samemu moood — silnikowi, stronom, dokumentacji — ucieszy się: issues i pull requesty w [moood](https://github.com/moood-me/moood) są otwarte dla wszystkich.