// TODO: write actual code

Як я вісім днів викручував гру з ШІ

2026-01-07 | Alex Kucherenko | 4 min read

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

Я оцінив механіку й поставив собі задачу. Маю рівно вісім днів — ні більше, ні менше. Мушу зробити гру з допомогою ШІ якомога швидше і якомога якісніше. Увесь код, уся графіка, концепт-арт і так далі — ШІ. Я лише диригую: організовую геймплей і вирішую, що робити і як. Так з'явився Screw Master: моя перша спроба зробити гру, не роблячи її руками.

Я ж не тварина — кнопочки тицяти

Почав із коду: ODIE (один із наших внутрішніх рушіїв, класичний ECS) і PixiJS 8 на рендері. Першим ділом я затягнув усі валідації TypeScript так туго, як тільки можна, і одразу вирішив для себе: тестування буде автоматичним, гра з першого дня робиться з прицілом на самоперевірку. Я ж не тварина — кнопочки тицяти.

Ідея була така: у гру грає Playwright. Він отримує весь харнес та інструментарій, щоб це робити: доступ до інпуту, до рендер-графа, до ECS. Кожну фічу підтверджую відео: ШІ щось будує, відкриває PR, прикладає запис — я дивлюся, чи все мені до вподоби, і даю фідбек. Жодних «повір мені, працює» — ось тобі ролик, дивися сам.

Ось, власне, що з цього вийшло. Можна викрутити пару гвинтиків, не відходячи від статті:

Figma, MCP і боротьба за здоровий глузд

Увесь інтерфейс робився через Figma. Я збирав сцени такими, якими вони мають бути на вигляд, потім Figma MCP віддавав моделі доступ до даних і ресурсів — і вже на цьому будувався UI.

Окремою проблемою було навчити цей MCP і модель дружити між собою й не городити дурниць. Довелося добряче закопатися у Figma: вибудовувати всі компоненти гранично логічно і структуровано, щоб на тому кінці замість нісенітниці виходило щось притомне. Довго мучився, добираючи компоненти так, щоб вони трималися більш-менш одного стилю. З генерацією однакових модельок, але іншого кольору, — ті самі страждання.

Баги — те, що ШІ генерує найкраще

А ось і найбільша проблема.

Баги — це те, що ШІ генерує найкраще. І баги такі, що тільки стоїш і чудуєшся.

Справжнім челенджем було навіть пояснити, у чому баг. Особливо коли ШІ робить щось конкретне: скажімо, кілька анімацій мають покласти болтики на свої місця одночасно. Він на цьому просто з'їжджав із глузду. Ну не можна це зробити красиво, через чергу чи стек — треба саме всю цю херню вичворити: зі скасуванням промісів, з їх зупинкою. Коротше, найпряміший спосіб наробити купу проблем. Сотні промптів. Це був справжній біль.

То що, можна так робити ігри?

Я вважаю, експеримент удався: я довів його до кінця. Для себе зрозумів: зробити прототип на ШІ цілком окей. Робити продукт… ну, тут я чесно не знаю. Треба бути нахабним. Ду-у-уже нахабним.

Генерація картинок теж була не фонтан: замовляєш червоні болтики — отримуєш гриби. Чому? Не знаю. Може, форма, а може, колір. Але, як і все в цьому світі, багато праці, нервів і матюків — і маєш щось плюс-мінус не надто жахливе.

Чи швидше робити це руками? Якщо про код — навпаки, руками швидше. Але тільки якщо не рахувати тести, яких тут більше, ніж самого коду, — тож тут є нюанси. Про графіку — я б такого сам не намалював, але будь-який художник зробив би краще. Тож висновки робіть самі. Мабуть, із часом планка підніметься, і такі проєкти стануть реально можливими. Поки що ШІ витягує максимум MVP чи прототип. Далі — чиста лотерея.

Але сам я навчився багато чого: Figma, того, як робити e2e-тести, — і того, як їх не робити. Тож досвід оцінюю позитивно. Хотілося б мати більше часу на такі штуки, але дзуськи: у добі лише 24 години, а ще їсти треба, і дитину до школи. Тож відірвався — і годі.