Коротко: Team Create дозволяє кільком дітям правити один проєкт одночасно. Працює це тоді, коли ролі поділені заздалегідь: хтось будує рівень, хтось пише скрипти, хтось відповідає за інтерфейс.

На одному із занять двоє учнів, 11 і 12 років, посварилися через двері. В буквальному сенсі — через те, чиї саме двері мають відчинятися в тестовій кімнаті. Здавалося б, дрібниця. Але саме з таких дрібниць і складається реальний досвід командної роботи, який рідко отримаєш, розробляючи гру самостійно.

Чому командна розробка — не про «розділити код навпіл»

Найпростіша (і найгірша) стратегія — один робить рівень, інший пише скрипти, і вони ніколи не перевіряють, чи стикується їхня робота докупи. Результат зазвичай: об'єкти з однаковими іменами, скрипти, які конфліктують, і фінальний вечір перед показом, витрачений на те, щоб все запрацювало разом.

Roblox Studio підтримує командну роботу через Team Create — функцію, яка дозволяє кільком людям редагувати один проєкт одночасно, в реальному часі. Технічно це не складно ввімкнути. Складно — домовитись, хто за що відповідає.

Як це вмикається

Team Create вмикає власник місця — той, у чиєму акаунті живе проєкт. Далі він додає учасників за іменами акаунтів, і ті бачать проєкт у себе в списку. Важлива деталь, яку діти з'ясовують швидко й неприємно: доступ дає саме власник, і якщо його немає онлайн, нового учасника додати нема кому.

Звідси перше правило команди — домовитись, у кого лежить проєкт, ще до того, як почали щось будувати. Переносити готову роботу в інший акаунт пізніше можна, але це зайва морока рівно там, де її легко було уникнути.

Розподіл ролей, який реально працює

  • Білдер — відповідає за геометрію рівня, розстановку об'єктів, освітлення
  • Скриптер — пише логіку: механіки, події, системи
  • UI/UX — інтерфейс, меню, кнопки (див. окрему статтю про GUI-дизайн)

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

Домовленість про межі: папки й імена

Дві прості угоди знімають більшість конфліктів ще до того, як вони виникнуть.

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

Друга — імена. «Part», «Part1», «ParTest» і ще три «Part» від другого учасника перетворюють сцену на кашу за один вечір. Домовленість може бути якою завгодно, аби спільною: назва говорить, що це і чиє — «Door_Main», «Coin_Level2», «UI_ShopButton». Перший раз це здається бюрократією, другий — рятує заняття. Додаткова вигода помітна пізніше: у проєкті з двохсот об'єктів потрібний знаходиться пошуком за секунду, а не перебиранням дерева вручну.

Конфлікти версій: перше зіткнення з реальною розробкою

Team Create синхронізує зміни в реальному часі, але це не означає відсутність конфліктів. Двоє редагують один і той самий об'єкт одночасно — і хтось із них втрачає свої зміни. Перше знайомство з поняттям «конфлікт версій» зазвичай відбувається саме тут, задовго до того, як дитина почує слово Git.

Практичний висновок, до якого діти доходять самі: перед тим як щось велике переробляти, треба сказати про це вголос. Це й є прообраз усього, що дорослі розробники роблять через гілки, коміти й обговорення змін.

Три речення на початку заняття

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

Виглядає формально, працює безвідмовно: половина суперечок помирає саме тут, бо з'ясовується, що обидва збиралися робити одне й те саме, а третину роботи ніхто не взяв. Дорослі команди роблять те саме щоранку й називають це стендапом — дітям цю назву можна не казати взагалі.

Коли один тягне все на собі

Найчастіший сценарій у парі — сильніший учасник мовчки робить усе, бо «швидше зробити, ніж пояснити». Гра при цьому виходить, а сенс командного проєкту втрачається: один втомився й ображений, другий не навчився нічого.

Лікується це не розмовою про справедливість, а структурою. Кожен показує свою частину на демонстрації сам — і розповідає, як вона влаштована. Коли захищати роботу треба вголос, «я просто поруч сидів» стає помітно одразу, причому насамперед самому учаснику.

Скільки людей має бути в команді

Двоє — найкращий формат для першого разу. Ролі ще можна тримати в голові, домовлятися доводиться постійно, і жоден не може сховатися за спиною інших. Троє працюють теж добре, якщо третій бере на себе інтерфейс або звук — щось видиме й окреме.

Від чотирьох починаються складнощі, і не технічні: хтось обов'язково залишається без чіткої задачі, а координація з'їдає більше часу, ніж сама робота. Тому великі класні проєкти ми ділимо на пари, а не збираємо в один гурт із восьми учасників.

Що з цього залишається назавжди

Через кілька років дитина забуде, як саме вмикається Team Create. Залишиться інше: звичка домовлятися про межі до початку роботи, розуміння, що чужу частину не чіпають без попередження, і вміння пояснити свій задум так, щоб інший його повторив.

Це те саме, чим займаються дорослі команди — просто з іншими інструментами. Гілки в системі контролю версій, огляд чужого коду, опис задачі перед тим, як її брати, — усе це та сама домовленість про межі, тільки записана строгіше. Дитина, яка пройшла це на грі про двері, приходить туди підготовленою.

Думка викладача

«Найцінніше в командних проєктах — не сама гра, яку зроблять. Найцінніше — момент, коли дитина вперше по-справжньому пояснює однокласнику логіку свого коду і розуміє, що «очевидне» для неї зовсім не очевидне для іншого. Це навичка, яка знадобиться в будь-якій професії, не тільки в геймдеві», — зазначає викладач курсу Roblox Studio.

А що, якщо команда посварилась?

Посварилась — це нормально, не привід закривати проєкт. Ми як викладачі втручаємось не для того, щоб «вирішити хто правий», а щоб показати механізм: чіткий розподіл зон відповідальності запобігає більшості суперечок ще до того, як вони почались.

Окремо проговорюємо різницю між «мені не подобається твоя ідея» і «це не працює ось тут». Перше — смак, і його вирішують домовленістю або жеребом. Друге — факт, і він перевіряється запуском гри. Уміння відрізняти одне від одного економить людям роки нервів далеко за межами Roblox.

На курсі Roblox Studio ми регулярно даємо командні проєкти саме тому, що ефект від них ширший за геймдев. Записуйтесь на пробне заняття — розповімо детальніше про формат командної роботи в групі.