Інтерактивні мобільні «ґаджети» легко створювати, але складно ділитися поза платформою Meta.
Нещодавній розвиток інструментів кодування за допомогою ШІ та вся концепція «vibe coding» фактично перевернули робочі процеси розробки програмного забезпечення. Хоча ці інструменти були доступні новачкам, які готові докласти зусиль для їх налаштування, ті, хто має невеликий або зовсім не має досвіду кодування, все ще могли бути трохи збентежені CLI, IDE та термінальними маніпуляціями, необхідними для створення складного проєкту ШІ-кодування сьогодні.
Останній проєкт Meta на базі ШІ хоче зробити подібне «vibe coding» настільки ж миттєво доступним, як і публікація в соціальних мережах. Pocket — який запустився в США минулої п’ятниці, 21 серпня, після того, як Meta придбала команду розробників скасованого додатка для «vibe coding» Gizmo в березні — це мобільний додаток, що дозволяє користувачам створювати повністю функціональні інтерактивні «ґаджети», просто вводячи підказки в текстове поле, без можливості навіть дивитися на рядок коду. Ці ґаджети потім можна поширювати серед світу у нескінченній стрічці в стилі TikTok із лайками, коментарями, репостами та всіма іншими ознаками залежності від соціальних мереж.
Погравшись із Pocket протягом значної частини тижня, я виявив, що мене захопив простий процес швидкого створення функціональних, відносно багатофункціональних ігрових прототипів, просто спілкуючись із LLM. Але результатом усієї цієї витраченої часу та зусиль ШІ є кілька інтерактивних іграшок, які фактично ув’язнені в новому «замкненому саду» Meta, без реального способу перетворити їх на щось окреме.
Привабливість
Щоб почати творити за допомогою Pocket, все, що вам потрібно зробити, це ввести текст у велике, доброзичливе на вигляд текстове поле з позначкою «Опишіть ідею…». Після кількох невдалих спроб я зосередив свій перший справжній проєкт Pocket на ідеї гри, де ви торкаєтеся та утримуєте екран телефону, щоб розкрутити пращу, а потім відпускаєте її, щоб кинути тангенціальний постріл у ворожі орди, що насуваються.
Я намагався бути хоча б дещо детальним у своєму базовому «рушійному» запиті до Pocket:
«Вигляд згори на чоловіка в центрі екрана. Коли ви торкаєтеся та утримуєте, він обертає пращу навколо себе по колу. Коли ви відпускаєте палець, праща випускає кулю, перпендикулярну до пращі. Чим довше ви тримаєте, тим швидше вилітає куля».
Початковий прототип гри Sling Shot, згенерований ШІ. Я не просив про тюки сіна чи стрілку прицілювання. Джерело: Pocket / Kyle OrlandПісля надсилання запиту та майже двовилинного очікування я був здивований, наскільки швидко та точно Pocket відповідає моєму загальному баченню. Те, що новачку, як я, який давно не програмував, знадобилося б години, витрачені на боротьбу з моделями фізики та кодовими довідниками, вже було у функціональному, готовому до тестування стані з мінімальними зусиллями. Pocket навіть додав кілька вибухових мішеней з тюків сіна, які я не просив, а також додаткові елементи інтерфейсу, як-от лічильник очок і показник потужності на екрані, які, я можу лише припускати, модель запропонувала як бажані доповнення на основі своїх тренувальних даних.
Маючи цей початковий прототип, я занурився в години «vibe-coded» доопрацювань. Через понад 100 запитів я почав удосконалювати базову ідею керування «пращею» до чогось, що більше нагадує повноцінну гру. Я попросив, щоб роботи марширували з краю екрана, потім попросив нові типи роботів для різноманітності. Я попросив систему боєприпасів, потім попросив її видалити на користь мінімальної «швидкості пращі», що ефективно запобігає спаму пострілів. Я попросив предмети та електричну огорожу навколо гравця, а також нескінченні дрібні редагування системи підрахунку очок, звукових ефектів, швидкості пращі та патернів ворогів — великих і малих функцій.
Коли цей проєкт досяг пристойного стану, я відчув непереборне бажання продовжувати створювати за допомогою ШІ. Майже відразу я почав працювати над простою аркадною грою з підкидання м’яча, з барвистими кулями, які потрібно тримати в повітрі, відбиваючи їх від ракеток, керованих великими пальцями. Протягом кількох годин я експериментував, додаючи різноманітні предмети, складну систему множників очок і набір графіків по завершенню гри для відстеження прогресу.
Утримувати один м’яч легко, але три або більше швидко стають вправою в хаосі. Джерело: Pocket / Kyle OrlandНа цьому етапі я маю невиразні спогади про боротьбу за те, щоб змусити навіть прості комп’ютерні програми робити щось корисне під час роботи над ступенем з комп’ютерних наук у коледжі. Порівняно з цим, процес створення ігор за допомогою Pocket здавався трохи магічним. Все, що мені потрібно було зробити, це подумати про нову функцію, яку я хотів би протестувати, і Pocket надавав версію гри з цією функцією приблизно через хвилину після того, як я її ввів.
Більшість часу результат запиту був саме тим, на що я сподівався, без потреби в додаткових доопрацюваннях. Менша частина часу потребувала кількох додаткових запитів, щоб уточнити, що я мав на увазі, або змінити зовнішній вигляд чи поведінку функції, яка краще працювала в теорії, ніж на практиці. Лише кілька запитів призвели до того, що Pocket, здавалося, повністю ігнорував моє прохання або ламав гру, у таких випадках один дотик міг повернути останню версію та дозволити мені спробувати знову.
Іноді я намагався бути відносно детальним у своїх запитах, точно вказуючи, як я хотів би, щоб працював множник очок, або налаштовуючи відсотковий поріг потужності пострілу, наприклад. Іншим часом я залишав свої запити відносно короткими та нечіткими — «додати виявлення зіткнень до малих куль» або «додати трохи потужності до звукового ефекту втраченої кулі», наприклад — і виявляв, що Pocket інтерпретував те, що я мав на увазі, з дивовижною гостротою.
Приклад детального запиту на доопрацювання, який я використовував під час створення Sling Shot. Джерело: Pocket / Kyle OrlandPocket також має вкладку «Ідеї», яка може пропонувати запити, що додають повні набори функцій, ще до того, як ви про них подумали. Ці ідеї були доволі неоднозначними: багато з них не мали сенсу для гри, яку я робив, або дублювали функції, які вже були частиною гри (іноді гірше). Але деякі ідеї Pocket, як-от додавання ключових презентаційних ефектів або веселих нових ігрових варіацій, які я навіть не розглядав, призвели мене до екзистенційної кризи щодо того, наскільки я насправді необхідний у всьому цьому процесі.
Друже, де мій код?
Створення простих ігор виключно за допомогою ШІ-підказок має свої недоліки. Щось таке просте, як переміщення елемента інтерфейсу на кілька пікселів праворуч, наприклад, вимагає повного запиту та приблизно хвилинного очікування, поки ШІ повністю перебудує додаток. У грі, написаній вручну, таке саме доопрацювання зайняло б кілька секунд і не вимагало б, безсумнівно, скандальної кількості спалювання ШІ-токенів за лаштунками.
Тестування Pocket також може бути дещо клопітким. Без можливості налаштовувати трасування пам’яті або встановлювати точки зупину виконання, я іноді мусив покладатися на ретельне спостереження та дисплеї на екрані, щоб з’ясувати, чому щось не працює так, як я хотів. Навіть тоді мене завжди турбувала підозра, що може існувати якийсь прихований баг або дивний граничний випадок, який я просто не помітив. Без можливості бачити код, я б не довіряв йому для чогось більшого, ніж простий іграшковий проєкт.
Початкова «розмова», яка запустила мій проєкт гри з підкидання м’яча. Джерело: Pocket / Kyle OrlandТакож є щось на кшталт найнижчого спільного знаменника у вигляді та відчутті ґаджетів, які Pocket схильний генерувати. Система за замовчуванням використовує емодзі або прості форми для багатьох графічних елементів, а звукові ефекти WebAudio схиляються до «біпів та бупів». Ви можете додавати власні записані звуки або просити Pocket генерувати графіку на основі ШІ-підказок, щоб трохи виправити цю проблему, але базове «загальне» відчуття всього, що він генерує, важко подолати.
Незважаючи на ці незначні проблеми, я виявив, що покладаюся на цикл Pocket «запитай функцію та протестуй результат». Існує спокусливий трепет у дозволі ШІ-агента з кодування виконувати всю важку роботу за лаштунками, поки ви просто обмірковуєте ідеї, безтурботно ставлячись до примх фізичних двигунів, кодових дерев або синтаксичних помилок. Я виявляв, що мозковий штурм нових ігрових ідей навіть тоді, коли Pocket працював над реалізацією моєї останньої, прагнучи якомога швидше передати свої концепції машині для створення ігор. І весь процес був настільки простим і оптимізованим, що я міг робити все це, приділяючи половину уваги бейсбольному матчу, що транслювався по телевізору на задньому плані.
Стрічка ґаджетів
Наскільки магічним здається процес створення ігор у Pocket, настільки протилежним є обмежений спосіб, яким Pocket дозволяє ділитися цими іграми зі світом. Єдиний спосіб дозволити іншим людям випробувати ваше творіння Pocket — це поділитися ним як «Постом», поєднавши ваш маленький інтерактивний ґаджет з невеликим підписом і обкладинкою.
Ви можете поділитися посиланням на цей пост будь-де, де ви зазвичай ділитеся посиланнями в Інтернеті, а ті, хто перейде за посиланням, можуть навіть зіграти в HTML5 «попередній перегляд» вашого ґаджета у своєму браузері, не завантажуючи додаток Pocket. Це навіть може працювати на настільних браузерах, якщо ваш додаток не покладається на мобільні вводи, як-от мультитач або датчики нахилу.
Як виглядає одне з моїх творінь Pocket, коли відкривається «попередній перегляд» у настільному веб-браузері. Джерело: PocketОднак основним способом для людей виявити ваші ґаджети є алгоритмічна стрічка Pocket, яка дозволяє вам прогортати весь спектр творінь Pocket у напіввипадковій нескінченній стрічці. Перегляд цієї стрічки надає свого роду рулетку Скіннера, знайому будь-якому користувачеві соціальних мереж — суміш банального вмісту, безглуздих жартів від підлітків та випадкових добре реалізованих якісних ідей.
Проглядаючи вибірку ґаджетів Pocket зараз, я перейшов від цікавого гібриду пінболу/Breakout до заплутаного фальшивого чат-бота в стилі WhatsApp, до мінімалістичного, погано реалізованого клона Flappy Bird, до ґаджета, який робить лише низькополігонального, світло-блакитного тюленя, що плаває, коли я торкаюся екрана (під величезним банером «Seal!»).
Ви можете підписуватися на улюблених творців або кураторів, які репостять якісні ґаджети, щоб трохи відокремити пшеницю від полови. Але навіть найкращі ґаджети Pocket, здається, не розроблені для гри більше ніж хвилину-дві. Як і TikTok, легка можливість миттєво переключитися на щось нове винагороджує яскраві, швидкі матеріали, які можуть захопити користувача за кілька секунд, а не глибокі, довготривалі враження. Я також бачив, як кілька ґаджетів з’являлися знову в моїй стрічці лише за годину неквапливого прокручування, що свідчить про те, що Pocket також наразі має проблему з кількістю ґаджетів на додаток до нерівномірної якості.
Хто контролює?
Незважаючи на ці проблеми, деякі люди, здається, досягають принаймні деякого напіввірусного успіху для своїх ґаджетів, якщо судити з десятків коментарів та сотень лайків на найпопулярніших постах. На жаль, два ґаджети, над якими я працював кілька годин, не є серед цих вірусних історій успіху, зібравши лише кілька сотень «переглядів» та жменьку лайків за той невеликий час, що вони були доступні.
Це нормально. Я не очікував досягти миттєвої слави та успіху, дозволивши ШІ створювати мої блискучі ідеї для ігор (хоча я думаю, що гра з підкиданням м’яча виявилася дещо захопливою). Справжня проблема полягає в тому, що, навіть якби мої ґаджети були успішними, цей успіх був би повністю ув’язнений на платформі Pocket. Немає можливості експортувати код, згенерований Pocket, і розмістити його на моїй власній вебсторінці або розробити його в повноцінний мобільний додаток, наприклад. Наскільки я можу судити, навіть немає можливості переглянути будь-який код, згенерований Pocket.
Цільова аудиторія Pocket, здається, має слабкість до версії Snake від Nokia, судячи з показників поширення в соціальних мережах. Джерело: Pocket / trudyЦе створює досить великий розрив між Pocket та іншими соціальними мережевими додатками. Якщо я зроблю відео для TikTok, я також можу опублікувати його на YouTube або Facebook або надіслати безпосередньо в текстовому повідомленні своїм найближчим друзям. Якщо я опублікую фотографію в Instagram, я можу опублікувати її на X або у власному напівприватному альбомі Google Photos. На багатьох із цих платформ я також можу ділитися будь-якими рекламними доходами, отриманими від мого допису.
Якщо ж я створю ґаджет на Pocket, він буде, і завжди буде, застряглий на Pocket. Ця ексклюзивність платформи, здається, є ключовою для угоди, яку Meta неявно укладає з користувачами Pocket. Ви можете використовувати наші потужні інструменти кодування ШІ безкоштовно, але натомість усе, що ви створите, буде під нашим повним контролем і використовуватися виключно для збагачення та просування нашої соціальної медіа-платформи (хоча, без реклами чи будь-яких підписок, мені незрозуміло, як сам Pocket оплачує, безсумнівно, значні витрати на моделі ШІ, що підтримують додаток).
Можливо, є майбутнє, де Pocket стане настільки популярним, що перспектива бути поміченим своєю величезною аудиторією для творіння ШІ буде достатньою причиною для прихильності до його специфічного стилю потужного, ШІ-підтримуваного кодування міні-ігор. Але поки що Pocket допоміг мені переконатися як у цінності агентів кодування на базі ШІ, так і в цінності повного контролю над результатами, які ці агенти можуть генерувати.
Оригінал статті: arstechnica.com
