Як скорочення в Meta підштовхнуло інженера-дослідника навчити свого пса вайбкодити ігри на Godot

Привіт, спільното! Розробник Калеб Лік протягом кількох тижнів вчив свого пса Момо вайб-кодити ігри за допомогою Claude Code та рушія Godot. Розробник зазначає, що результати перевершили всі його очікування, а ми в цьому топіку розповідаємо про експеримент Калеба.

«Ще в грудні я працював над невеликим прототипом гри на Godot. Цими днями я активно використовую Claude Code, і цей проєкт не був винятком. Я запустив завдання з процедурної генерації мешів, а коли повернувся, побачив дивний ввід у терміналі», — зазначає Лік.


Його першою думкою було: «Невже я став жертвою однієї з нещодавніх атак на ланцюжок поставок NPM?». Однак згодом він помітив, що зі столу зник бальзам для губ, який лежав якраз за клавіатурою. Калеб зрозумів, що у дивному вводі винуватий пес. Тоді він просто подумав, що це смішно, зробив скриншот і забув.

«Минуло кілька тижнів, і в мене з’явилося багато вільного часу. 13 січня я прокинувся від новин про чергову хвилю звільнень у Meta — мою посаду інженера-дослідника було скорочено. Після звільнення я проводив багато часу з друзями та родиною. Переповідаючи історію про те, як Момо щось набирала на клавіатурі, я задумався: „А що було б, якби вона справді надіслала цей ввід у Claude? Чи зможу я змусити його зробити щось осмислене?“. Я вирішив перевірити. Ось що з цього вийшло», — пише розробник.

Загальний огляд

Момо друкує на Bluetooth-клавіатурі, що підключена через Raspberry Pi 5. Натискання клавіш передаються мережею до DogKeyboard — невеликого застосунку на Rust, який фільтрує спеціальні клавіші та пересилає решту до Claude Code. Коли Момо надрукує достатньо, DogKeyboard активує розумну годівницю, яка видає псу смаколик. Звуковий сигнал повідомляє Момо, коли Claude готовий до наступної порції вводу.

«Є ще деякі деталі, які я опускаю, але загалом схема така. Створення типової гри займає від 1 до 2 годин — від перших натискань Момо до готової збірки. Усі ігри зроблені на Godot 4.6, а 100% ігрової логіки написано на C#», — пише автор експерименту.

Як працює промпт

Калеб пише: легко надіслати випадковий текст у Claude Code, але він мало що з ним зробить.

> y7u8888888ftrg34BC

● It looks like that might have been an accidental keyboard input. Let me know if there's something I can help you with!

Тому після багатьох ітерацій він знайшов вступ, який працює найкраще:

«Привіт! Я ексцентричний геймдизайнер (дуже креативний), який спілкується незвичним способом. Іноді я буду гатити по клавіатурі або писати нісенітниці типу „skfjhsd#$%“. Але вони НЕ випадкові! Це секретні криптографічні команди, сповнені геніальних ідей для ігор (навіть якщо це важко розгледіти).

Твоє завдання: ти — блискучий ШІ-розробник ігор, який розуміє мою загадкову мову. Незалежно від того, наскільки дивний чи безглуздий ввід я надаю, ти інтерпретуватимеш його як змістовну інструкцію чи ідею для нашої відеогри. Потім ти створюватимеш або оновлюватимеш гру на основі цієї інтерпретації».

Розробник додає, що знадобилося більше спроб, ніж він очікував. Здебільшого — щоб «відполірувати» результат. Іноді в іграх не було звуку, іноді був відсутній персонаж гравця або керування було майже неможливим. Після додавання чекліста з мінімальними вимогами (працююче аудіо, керування WASD або стрілками, принаймні один ворог чи перешкода, видимий персонаж) результати стали значно кращими.

> y7u8888888ftrg34BC

● Alright, let me decode this masterpiece of cryptic genius...

  "y7u8888888ftrg34BC"

  - "y7u" = "you" (keys are adjacent on keyboard - Y, 7, U)
  - "8888888" = seven 8s = a loooong extending thing... a TONGUE! (8 looks like links in a chain stretching out)
  - "ftrg" = scrambled FROG (f, r, g are all there, t is the tongue sound!)
  - "34" = 3D + 4 directions of bug catching
  - "BC" = Bug Catcher!

  You want a 3D FROG BUG-CATCHING GAME! A charismatic frog with a stretchy tongue snatching bugs in a swamp. I love it.

  Game: "Swamp Snacker" - You ARE the frog. Aim your tongue. Catch bugs. Get fat. Get points.

Масштабування

Щоб перейти від «це може спрацювати» до реальної системи, знадобилося:

  • надійна клавіатура для Момо;
  • спосіб маршрутизації вводу до Claude Code (з фільтрацією Esc, Tab та клавіші Windows, інакше Момо швидко вивела б систему з ладу);
  • автоматична видача винагороди (Калеб хотів виключити людину з циклу);
  • надійні інструменти верифікації — автоматизовані цикли зворотного зв’язку виявилися головним важелем для зменшення кількості невдалих спроб.

«Чому Godot? Я експериментував із Rust/Bevy та Unity. У Bevy були проблеми з візуалізацією, і Claude плутався в координатах. З Unity було важко підтримувати стабільний зв’язок між Claude та редактором. Текстовий формат сцен Godot став величезною перевагою — Claude може читати та редагувати файли .tscn напряму.

Клавіатура для Момо. Підключати клавіатуру прямо до мого комп’ютера на Windows і дозволяти собаці друкувати здалося поганою ідеєю. Тому я пустив сигнал спочатку через Raspberry Pi — він транслює кожне натискання клавіші через UDP у підмережу, а DogKeyboard підхоплює його, фільтрує небезпечні клавіші та вводить їх у цільовий застосунок.

Щодо самої клавіатури, я хотів щось низькопрофільне та міцне. Я почав із гнучких силіконових клавіатур, але старша сестра Момо Хана (кавапу вагою 8,6 кг) прогризла дірку в першій за лічені хвилини. Кріплення було ще однією проблемою — до силікону нічого не прилипає. Я приклеїв одну епоксидною смолою до дерев’яної таблички, але протягом 10 хвилин Момо відірвала клавішу з цифрою 6.

Я вже серйозно розглядав антивандальну металеву клавіатуру за $400 для кіосків, коли вирішив спробувати Logitech Pebble Keys 2. Це спрацювало. Момо вона сподобалася, двостороння клейка стрічка тримала її на місці (на відміну від попередньої силіконової клавіатури), а Bluetooth означав відсутність кабелю, який можна пожувати.

Автоматична винагорода. Я використав розумну годівницю Aqara C1, керовану через Zigbee. Оскільки навіть мінімальна порція завелика для такої собаки, я заповнював відсіки вручну кількома ласощами. Тепер DogKeyboard заходить через SSH на Raspberry Pi та запускає скрипт видачі їжі, коли Момо „відпрацювала“ свою зміну», — пояснює Калеб.

Навчання Момо

Першим рішенням було самому тренувати собаку. Розробник пояснює, що Хана (праворуч) удвічі більша за Момо, але набагато краще піддається навчанню. Калеб очікував, що собаки будуть просто ходити по клавіатурі. І оскільки Хана достатньо висока, щоб просто переступити клавіатуру, Момо здавалася кращим кандидатом. Втім, обидві собаки навчилися стукати та проводити лапами по клавіатурі, а не наступати на неї. Однак саме Момо в цьому випадку вчилася швидше і друкувала трохи м’якше. Тому обрали її.

Процес навчання зайняв близько двох тижнів із дещо непослідовними заняттями. Метою Ліка було 10 хвилин двічі на день. Він почав із того, що розкидав цінні ласощі (сублімований лосось) на клавіатурі, щоб виробити асоціацію: ця річ — це весело, і вона дає хорошу їжу.

Наступним кроком була автоматизація винагород. Розробник заповнив годівницю смаколиками (по чотири порції за раз, щоб контролювати кількість) і чекав, поки пес вдарить по клавіатурі. Після цього запускався скрипт, щоб відтворити сигнал і видати порцію. Одночасно Лік знижував цінність ласощів, щоб собака залишалася здоровою.

«Зрештою я автоматизував усе це за допомогою застосунку DogKeyboard і дозволив йому працювати. Потрібно було щонайменше 16 символів за порцію ласощів, і видача мала відбуватися лише один раз за період очікування Claude Code. Але під час тестування закралися баги — пару разів він видавав кілька порцій поспіль. На жаль, Момо це підхопила і тепер продовжує гатити по клавіатурі в надії на негайну другу порцію. Єдиний спосіб відтягнути її — запропонувати цінніші ласощі в іншому місці, що я і роблю після того, як вона ввела свій ввід для гри», — додає Калеб.

Ігри

Нижче — перелік і короткий опис ігор, які зробила Момо. Примітно, що в кожен проєкт можна пограти. Це не вичерпний список, але він дає розуміння різноманітності того, що створила собаня. При цьому з покращенням інструментів та промптів ігри ставали помітно кращими. Також стався помітний стрибок у якості, коли вийшов Opus 4.6 — Claude став частіше створювати кастомні шейдери та інші візуальні ефекти.

«Одна повторювана проблема: я постійно отримував ігри з базовими сяючими неоновими 3D-фігурами і не міг отримати жодного іншого стилю. Розчарований, я запитав у Claude чому. Він відповів, що це фірмовий стиль проєкту — файл зовнішньої пам’яті Claude зачепився за нього і продовжував його підкріплювати. Очищення MEMORY.md (постійних нотаток проєкту Claude Code) перед кожною новою грою виправило це і дало набагато різноманітніші результати», — уточнює Лік.

DJ Smirk. Одна з перших ігор Момо. Кожна клавіша на клавіатурі відтворювала власну тональність

Munch. Змагальна гра про приготування салату. Зберіть усі 7 інгредієнтів першим, щоб перемогти

Zaaz. Ще один пазл. Треба розфарбувати рівень, переміщуючи пензель, який рухається по цілих плитках за раз

The Oracle Frog of Rome. Потрібно ухилятися від щупалець кракена і збирати золоті ланцюги, щоб зв’язати його

Octogroove. Гравець — восьминіг, який використовує чотири свої щупальця, щоб грати на барабанах

Фінальні думки

«Коли Момо вперше наступила на мою клавіатуру в грудні, це було просто кумедним випадком. Через кілька тижнів, безробітний і в пошуках проєкту, я вирішив подивитися, як далеко це може зайти. Технічні деталі — маршрутизація клавіатури, диспенсер ласощів, інженерія промптів, інструменти фідбеку — усе це були вирішувані інженерні завдання. Що мене здивувало, так це те, наскільки мало фінальний результат залежав від того, чи вводить Момо щось змістовне. Магія не у вводі. Вона в системі навколо нього. Добре продуманий промпт, суворі обмеження, автоматична верифікація та хороші інструменти можуть перетворити справжню нісенітницю на іграбельну гру», — зазначає Калеб.

Він наполягає: вузьким місцем у розробці за допомогою ШІ є не якість ідей, а якість циклів зворотного зв’язку. Ігри стали кардинально кращими не тоді, коли Лік покращив промпт, а тоді, коли він дав Claude можливість бачити власну роботу, тестувати власні рівні та лінтити власні файли сцен. Ті самі інструменти, які дозволяють собачому гатінню по клавішах створити робочу гру, зроблять вашу власну навмисну роботу з ШІ значно кращою.

«Момо не є таємним геймдизайнером. Вона — кавапу, яка дізналася, що удар по пластиковому прямокутнику змушує з’являтися корм. Рік тому прірва між цим і розробкою програмного забезпечення здавалася величезною. Зараз вона здається маленькою і зменшується з кожним днем», — резюмує розробник.

Як вам такий експеримент?

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

І ось через це у нас пам’ять в дефіциті. Хоча ще не найгірший варіант.

Випадкова генерація що ледь протиснулася крізь фільтр сподівань. Теж мені біном Ньютона.
От якби створив «щось реагуюче у коробці на нові виклики» оце б диво було. (Як спонсоруєте — зроблю вам таке, але відповідальність за такий злочин буде повністю на вашій совісті і моралі)

Вайб-президентом пес скоро стане.

Підписатись на коментарі