Разработка игрLua / Luau

Как стать Roblox-разработчиком и собрать первое портфолио

Два проекта для старта в Roblox Studio, четыре пункта для карточки проекта и пример исправления бага, который стоит показать в портфолио.

Кодик

Автор

4 мин чтения
Два автора игр собирают миниатюрную полосу препятствий

Как стать Roblox-разработчиком, если пока есть только аккаунт игрока? Соберите игру, которую другой человек может пройти без вашего участия. Потом покажите, какую механику вы сделали сами, что обнаружили на тесте и как исправили ошибку. Из таких работ и складывается первое портфолио.

Выберите, что вам хочется делать в игре

В небольшой игре один автор может собрать уровень, написать правила и нарисовать интерфейс. Попробуйте каждую часть на одном коротком проекте. По нему станет понятно, где вам интереснее копать глубже.

  • Уровни. Поставьте точку старта, сделайте три препятствия и проведите игрока к финишу светом, цветом или формой дорожки. Проверьте, понятно ли с первого взгляда, куда прыгать.
  • Механики. Напишите на Luau, что происходит, когда игрок касается чекпоинта, нажимает кнопку или собирает предмет. Научитесь искать ошибки через Output в Roblox Studio.
  • Интерфейс. Покажите цель и прогресс прямо во время игры. Например, счётчик «2 из 3 ключей» подсказывает, сколько ещё нужно найти. Посмотрите, читается ли он на экране телефона.

Если программирование для вас в новинку, начните с событий. Одно нажатие вызывает одну функцию, а функция меняет один объект. Затем переходите к условиям, таблицам и модулям. Дорожная карта по Lua и Luau.

Сделайте два проекта с разными задачами

Проект 1. Полоса препятствий, которую хочется пройти

Соберите короткий obby, то есть полосу препятствий. Для первой версии хватит трёх прыжков, одного чекпоинта и финиша. Попросите человека, который не видел уровень, пройти его. Если игрок после падения возвращается слишком далеко и бросает попытку, передвиньте чекпоинт ближе и проверьте ещё раз.

В портфолио покажите один трудный участок до и после правки. Добавьте пару строк о том, где игрок застревал и что вы поменяли. Такой разбор показывает, как вы принимаете решения о сложности уровня.

Проект 2. Игра с ресурсом и улучшением

Сделайте маленькую ферму, мастерскую или космическую станцию. Пусть игрок добывает один ресурс, тратит его на одно улучшение и замечает разницу. Например, он выращивает морковь, продаёт урожай и покупает лейку, которая ускоряет рост следующей грядки.

Разделите обязанности между клиентом и сервером. Клиент показывает меню магазина и отправляет запрос на покупку. Сервер проверяет цену и баланс, списывает ресурс и выдаёт улучшение. Когда эта цепочка работает, добавьте сохранение прогресса и проверьте, что после повторного входа покупка на месте. Как устроен клиент и сервер в Roblox.

Покажите в портфолио конкретную правку

Представьте, что во время теста два игрока одновременно пытаются забрать одну монету. Оба получают награду, хотя монета одна. Запишите короткое видео с багом. Затем перенесите проверку на сервер и пометьте монету собранной до выдачи награды. Повторите тот же тест с двумя игроками и покажите результат.

В карточке проекта достаточно четырёх вещей.

  1. Цель игры. Что игрок должен успеть или собрать за первый заход?
  2. Ваш вклад. Какие скрипты, уровни или экраны вы сделали? Если работали в команде, укажите, кто за что отвечал.
  3. Одна находка с теста. Опишите, как повторить ошибку, что вы поменяли и как проверили исправление.
  4. Демо. Дайте ссылку на игру, если она открыта нужной аудитории. Добавьте короткое видео, где видно игру от старта до финиша.

Когда первая работа готова

Дайте тестировщику только ссылку или доступ к сборке. Если он сам понимает цель, доходит до финиша и может сыграть снова, у вас уже есть законченный проект. Запишите короткое видео и оформите карточку. Следующую идею можно проверить на новой игре.

В профессии Кодика по разработке игр в Roblox этот путь разбит на два проекта.

  • В Лавовой башне вы соберёте obby и настроите чекпоинты, монеты и таймер.
  • В Ферме на Марсе добавите посадку, урожай, магазин и сохранение.