Інтерактивні мобільні «гаджети» легко створювати, але важко ділитися поза платформою Meta.
Відносно нещодавній розвиток інструментів для кодування за допомогою ШІ та вся концепція «vibe coding» ефективно змінили цілі робочі процеси розробки програмного забезпечення. Хоча ці інструменти були доступні для кодерів-початківців, які готові докласти зусиль для їх налаштування, ті, хто має мінімальний або зовсім не має досвіду кодування, все ще могли бути трохи відштовхнуті від командного рядка, IDE та налаштувань терміналу, необхідних для створення складного проєкту, закодованого ШІ, сьогодні.
Останній проєкт Meta на основі ШІ хоче зробити такий «vibe coding» миттєво доступним, як публікація в соціальних мережах. Pocket — який запустився в США минулої п’ятниці, 21 серпня, після того, як Meta придбала команду розробників із тепер уже неіснуючого застосунку для «vibe coding» Gizmo в березні — це мобільний застосунок, який дозволяє користувачам створювати повноцінні інтерактивні «гаджети», просто вводячи підказки в текстове поле, навіть без можливості бачити будь-який рядок коду. Ці «гаджети» потім можна поширювати світом у нескінченній стрічці в стилі TikTok з лайками, коментарями, репостами та всіма іншими ознаками залежності від соціальних мереж.
Погравшись із Pocket протягом майже тижня, я виявив, що захопився простим процесом швидкого створення функціональних, відносно багатофункціональних прототипів ігор, просто спілкуючись із великою мовною моделлю. Але результатом усього цього часу та зусиль ШІ стали кілька інтерактивних іграшок, які фактично замкнені в новому «замкненому саду» Meta, без реальної можливості перетворити їх на щось окреме.
Приваблює мене
Щоб почати творити з Pocket, все, що вам потрібно зробити, це ввести текст у велике, дружнє на вигляд текстове поле з написом «Опиши ідею…». Після кількох невдалих спроб я зосередив свій перший справжній проєкт Pocket на ідеї гри, де ви натискаєте та утримуєте екран телефону, щоб розкрутити пращу, а потім відпускаєте її, щоб запустити тангенціальний постріл по наступаючих ордах ворогів.
Я намагався бути принаймні дещо детальним у своєму базовому запиті «двигуна» до Pocket:
«Вигляд зверху на чоловіка в центрі екрана. Коли ви натискаєте та утримуєте, він обертає пращу навколо себе по колу. Коли ви піднімаєте палець, праща випускає кулю перпендикулярно до пращі. Чим довше ви тримаєте, тим швидше вилітає куля.»

Після надсилання запиту та майже дво хвилин очікування я був здивований, наскільки швидко та точно Pocket відповідав моєму загальному баченню. Те, що зайняло б у такого недосвідченого програміста, як я, години, витрачені на боротьбу з моделями фізики та посиланнями на код, вже було у функціональному, готовому до тестування стані з мінімальними зусиллями. Pocket навіть додав кілька вибухових тюків сіна, які я не просив, а також другорядні функції інтерфейсу, як-от лічильник очок та екранний індикатор потужності, які, як я можу лише припустити, модель запропонувала як бажані доповнення на основі своїх навчальних даних.
Маючи цей початковий прототип, я занурився в години «vibe coding» доопрацювань. За понад 100 запитів я почав перетворювати базову ідею «стрільби з пращі» на щось більше схоже на повноцінну гру. Я попросив, щоб роботи марширували з краю екрана, потім попросив нові типи роботів для різноманіття. Я попросив систему боєприпасів, потім попросив її скасувати на користь мінімальної «швидкості пращі», що ефективно запобігає спаму пострілів. Я попросив предмети та електричну огорожу навколо гравця, а також нескінченні дрібні правки до системи підрахунку очок, звукових ефектів, швидкості пращі та шаблонів ворогів — функцій великих і малих.
Коли цей проєкт був у належному стані, я відчув бажання продовжувати творити за допомогою ШІ. Майже одразу я почав створювати просту гру в стилі аркадних жонглерів, з яскравими м’ячами, які потрібно було утримувати, відбиваючи їх від ракеток, керованих великими пальцями. Протягом кількох годин я експериментував із додаванням набору предметів, складної системи множників очок та набору графіків кінця гри для відстеження прогресу.

На цьому етапі я маю невиразні спогади про боротьбу за те, щоб навіть прості комп’ютерні програми робили щось корисне, коли я здобував ступінь з комп’ютерних наук. Порівняно з цим, процес створення ігор за допомогою Pocket здавався майже магічним. Все, що мені потрібно було зробити, це подумати про нову функцію, яку я хотів би протестувати, і Pocket надавав версію гри з цією функцією приблизно через хвилину після того, як я її ввів.
У більшості випадків результат запиту був саме тим, на що я сподівався, без потреби в додаткових доопрацюваннях. У меншості випадків мені потрібно було пройти кілька додаткових запитів, щоб уточнити, що я мав на увазі, або змінити вигляд чи поведінку функції, яка працювала краще в теорії, ніж на практиці. Лише кілька запитів призвели до того, що Pocket, здавалося, повністю проігнорував моє прохання або зламав гру, у таких випадках один дотик міг повернути до останньої версії, дозволивши мені спробувати знову.
Іноді я намагався бути відносно детальним у своїх запитах, наприклад, точно вказуючи, як я хотів би, щоб працював множник очок, або коригуючи відсотковий поріг потужності пострілу. Іншим разом я залишав свої запити відносно короткими та розпливчастими — наприклад, «додай виявлення зіткнень для маленьких м’ячів» або «додай трохи потужності до звукового ефекту втраченого м’яча», — і виявляв, що Pocket інтерпретував те, що я мав на увазі, з дивовижною точністю.

Pocket також має вкладку «Ідеї», яка може запропонувати запити, що додають цілі набори функцій, ще до того, як ви про них подумали. Ці ідеї були досить різноманітними: багато з них не мали сенсу для гри, яку я створював, або повторювали функції, які вже були частиною гри (іноді в гіршому вигляді). Але деякі ідеї Pocket, як-от додавання ключових презентаційних ефектів або цікавих нових ігрових варіацій, про які я навіть не думав, змусили мене поставити під сумнів, наскільки я справді необхідний у всьому цьому процесі.
Чувак, де мій код?
Створення простих ігор виключно за допомогою запитів ШІ має свої недоліки. Навіть таке просте завдання, як переміщення елемента інтерфейсу на кілька пікселів праворуч, вимагає повного запиту та приблизно хвилинного очікування, поки ШІ повністю перебудує програму. У грі, закодованій вручну, те саме доопрацювання зайняло б кілька секунд і не вимагало б, безсумнівно, скандальної кількості токенів ШІ, що спалюються за лаштунками.
Тестування Pocket також може бути трохи складним. Без можливості налаштовувати трасування пам’яті або встановлювати точки зупинки виконання, я іноді мусив покладатися на уважне спостереження та екранні дисплеї, щоб зрозуміти, чому щось не працює так, як я хотів. Навіть тоді мене завжди турбувало, що може існувати якийсь прихований баг або дивний крайній випадок, який я просто не помітив. Не маючи можливості бачити код, я б не довіряв цьому нічому, крім простих іграшкових проєктів.

Також існує певна «найнижча спільна знаменникова» тенденція до вигляду та відчуття «гаджетів», які генерує Pocket. Система за замовчуванням використовує емодзі або прості форми для багатьох графічних елементів, а звукові ефекти WebAudio схиляються до «піків та бупів». Ви можете додавати власні записані звуки або просити Pocket генерувати графіку на основі запитів ШІ, щоб трохи виправити цю проблему, але базове «загальне» відчуття всього, що він генерує, важко подолати.
Попри ці незначні проблеми, я виявив, що покладаюся на цикл Pocket «запитай функцію та протестуй результат». Існує спокусливий захват від того, що ШІ-агент для кодування виконує всю важку роботу за лаштунками, поки ви просто обмірковуєте ідеї, не турбуючись про примхи фізичних двигунів, дерев коду чи синтаксичних помилок. Я знаходив себе, мозковий штурм нових ігрових ідей, навіть коли Pocket працював над реалізацією моєї останньої, прагнучи якомога швидше подавати свої концепції в машину для створення ігор. І весь процес був достатньо простим і оптимізованим, щоб я міг робити все це, приділяючи половину уваги бейсбольному матчу, що транслювався по телевізору на задньому плані.
Стрічка «гаджетів»
Наскільки магічним здається процес створення ігор у Pocket, настільки ж обмеженим є спосіб, яким Pocket дозволяє ділитися цими іграми зі світом. Єдиний спосіб дозволити іншим людям випробувати ваше творіння Pocket — це поділитися ним як «Публікація», поєднавши ваш маленький інтерактивний «гаджет» із коротким підписом та обкладинкою.
Ви можете поділитися посиланням на цю публікацію будь-де, де ви зазвичай ділитеся посиланнями в Інтернеті, і ті, хто перейде за посиланням, можуть навіть відтворити HTML5-версію вашого «гаджета» в своєму браузері без необхідності завантажувати додаток Pocket. Це може працювати навіть на настільних браузерах, якщо ваш додаток не покладається на мобільні вхідні дані, як-от мультитач або датчики нахилу.

Однак основним методом для людей відкривати ваші «гаджети» є алгоритмічна стрічка Pocket, яка дозволяє вам гортати повний спектр творінь Pocket у напіввипадковому нескінченному скролі. Перегляд цієї стрічки надає рулетку стилю «скнерівської скриньки», знайому будь-якому користувачеві соціальних мереж — суміш найнижчого спільного знаменника, безглуздих жартів від підлітків та випадкової якісної ідеї.
Переглядаючи добірку «гаджетів» Pocket зараз, я перейшов від цікавого гібрида пінболу/Breakout до заплутаної імітації розмови бота в стилі WhatsApp, до базового, погано реалізованого клону Flappy Bird, до «гаджета», який нічого не робить, окрім того, що видає низькополігонального, крижано-синього тюленя, коли я натискаю на екран (під гігантським банером «Seal!»).
Ви можете підписуватися на улюблених творців або кураторів, які репостять якісні «гаджети», щоб трохи відокремити зерна від плевел. Але навіть найкращі «гаджети» Pocket, здається, не розраховані на тривалість більше хвилини чи двох. Як і TikTok, легка можливість миттєво переключитися на щось нове винагороджує яскравий, швидкий контент, який може захопити користувача за кілька секунд, а не глибокі, довготривалі враження. Я також бачив, як кілька «гаджетів» з’являлися знову в моїй стрічці лише за годину неактивного скролінгу, що свідчить про те, що Pocket також має проблему з кількістю «гаджетів» на додаток до непослідовної якості.
Хто контролює?
Попри ці проблеми, деякі люди, здається, досягають принаймні певної напіввірусної популярності для своїх «гаджетів», якщо судити з десятків коментарів та сотень лайків на найпопулярніших публікаціях. На жаль, два «гаджети», над якими я працював кілька годин, не належать до цих вірусних історій успіху, набравши лише кілька сотень «переглядів» та жменьку лайків за той короткий час, що вони були доступні.
Це нормально. Я не очікував миттєвої слави та успіху, дозволивши ШІ створювати мої блискучі ігрові ідеї (хоча я вважаю, що гра з жонглюванням м’ячами виявилася дещо захопливою). Справжня проблема полягає в тому, що, навіть якби мої «гаджети» були успішними, цей успіх був би повністю замкнений на платформі Pocket. Немає можливості експортувати код, згенерований Pocket, і розмістити його на моєму власному вебсайті або розробити його в повноцінний мобільний додаток, наприклад. Наскільки я можу судити, немає навіть способу переглянути будь-який код, згенерований Pocket.

Це створює досить великий розрив між Pocket та іншими соціальними медіа-додатками. Якщо я створюю відео для TikTok, я можу опублікувати його і на YouTube, або Facebook, або надіслати безпосередньо в текстовому повідомленні своїм найближчим друзям. Якщо я публікую фотографію в Instagram, я також можу опублікувати її на X або в своєму власному напівприватному альбомі Google Photos. На багатьох із цих платформ я також можу поділитися будь-яким доходом від реклами, згенерованим моєю публікацією.
З іншого боку, якщо я створюю «гаджет» на Pocket, він є, і завжди буде, застряглий на Pocket. Ця ексклюзивність платформи, здається, є ключовою для угоди, яку Meta неявно укладає з користувачами Pocket. Ви можете безкоштовно використовувати наші потужні інструменти для кодування ШІ, але натомість усе, що ви створите, буде під нашим повним контролем і використовуватиметься лише для збагачення та просування нашої соціальної медіа-платформи (хоча, без реклами чи будь-яких підписок, мені незрозуміло, як сам Pocket оплачує, без сумніву, значні витрати на моделі ШІ, що забезпечують роботу програми).
Можливо, є майбутнє, коли Pocket стане настільки популярним, що перспектива зробити творіння ШІ поміченим його величезною аудиторією буде достатньою причиною для того, щоб взяти на себе зобов’язання щодо його специфічного типу потужного, керованого ШІ кодування міні-ігор. Однак наразі Pocket допоміг мені переконатися як у цінності агентів кодування, керованих ШІ, так і в цінності повного контролю над результатами, які ці агенти можуть генерувати.
Оригінал статті: arstechnica.com
