ROBLOX STUDIO · Игра

Остров звёзд — игра с монетами и магазином

Учебный платформер: семь звёзд, игровая валюта, ускорение, лава, контрольная точка и финиш. Разберите генерацию карты, серверные правила, HUD и сохранение прогресса.

В архиве находятся исходные файлы Luau и инструкции, не готовая игра .rbxl. Перед использованием ознакомьтесь с README.

ПОДРОБНЫЙ ОБЗОР

Полное учебное руководство · 10 глав

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

Игровой процесс

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

7 звёздПо 5 монет за каждую
МагазинУскорение за 20 монет
ЧекпоинтВозрождение после препятствий
Финиш30 монет и 1 победа

Что умеет проект

  • Генерация острова. IslandWorldBuilder создаёт карту и основные игровые объекты при запуске.
  • Сбор коллекционных предметов. Звёзды учитываются сервером, чтобы разные игроки не получали одну награду одновременно.
  • Покупка бонуса. Ускорение действует ограниченное время; повторная покупка во время действия бонуса не списывает монеты.
  • Препятствия. Лава завершает попытку, а контрольная точка меняет место возрождения в рамках текущей сессии.
  • Счётчики. HUD показывает монеты, победы и сообщения о действиях.
  • Сохранение. Монеты и победы могут сохраняться через DataStore; чекпоинт и временный бонус между сессиями не сохраняются.

Состав архива

  • IslandWorldBuilder.server.luau — создание острова;
  • IslandGameServer.server.luau — монеты, звёзды, магазин, препятствия, финиш и сохранение;
  • IslandHUD.client.luau — интерфейс и уведомления;
  • README.md — правила игры, установка и проверочные сценарии.

Установка: шаг за шагом

  1. Создайте в Roblox Studio чистую Baseplate.
  2. В ServerScriptService добавьте два обычных Script: IslandWorldBuilder и IslandGameServer.
  3. В StarterPlayer → StarterPlayerScripts создайте LocalScript IslandHUD.
  4. Перенесите код из трёх файлов в соответствующие скрипты. Не добавляйте другие примеры магазинов, leaderstats или HUD в ту же игру.
  5. Нажмите Play. Соберите четыре звезды, купите ускорение, проверьте лаву, контрольную точку и финиш.
  6. Для проверки DataStore используйте опубликованную тестовую игру. Затем проверьте двух игроков через Test → 2 Players.

Чему научится ученик

Вы потренируетесь разделять серверную и клиентскую логику, создавать объекты кодом, обрабатывать касания, вести игровую валюту, работать с событиями и проверять правила на нескольких игроках. Проект удобно проходить после практик №96–98 раздела «Скрипты 2.0».

Задания для развития игры

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

Важно. Архив содержит исходный код, не готовый .rbxl. Система сохранения учебная и не защищает от всех случаев одновременного входа на разные серверы. Скрипты не проходили полноценное тестирование в Roblox Studio.

Что вы создадите и чему научитесь

Построить компактный платформер, в котором исследование карты связано с экономикой, временными бонусами, опасностями и понятным финалом.

Для кого: После знакомства с координатами, событиями касания и основами Luau. Можно проходить последовательно по урокам 96–98 и затем выполнить самостоятельный мини-проект.

Формат: исходные файлы Luau с README; это не готовая сцена .rbxl и не подтверждённый игровой билд.

Из чего состоит проект

Перед началом работы откройте архив и прочитайте README. Ниже — назначение файлов, которые действительно входят в поставку.

Файл Для чего нужен
IslandWorldBuilder.server.luau Создаёт остров и препятствия при Play; изменения в генераторе видны при следующем запуске.
IslandGameServer.server.luau Серверная логика семи звёзд, монет, ускорения, лавы, чекпоинта, финиша и сохранения.
IslandHUD.client.luau Экранные счётчики, подсказки и обратная связь игроку.
README.md Порядок установки, правила экономики и тестовый сценарий для одного и двух игроков.

Практическая лаборатория: пять занятий

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

Занятие 1. Планируем платформер как маршрут

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

Проверка. Проверьте, можно ли пройти карту стандартным прыжком без покупки бонуса. Если бонус обязателен, прямо объясните это игроку.

Результат. Маршрут имеет читаемую последовательность, а сложность растёт постепенно.

Занятие 2. Семь звёзд и честный сбор

Задача. Запустите Play и соберите одну звезду. В исходной сборке она даёт пять монет и возвращается через двенадцать секунд.

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

Результат. Награда не дублируется, а повторное появление соответствует заданному правилу.

Занятие 3. Экономика и временное ускорение

Задача. Соберите четыре звезды: ожидаемый баланс — двадцать монет. Купите ускорение за двадцать монет и засеките двадцать секунд действия.

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

Результат. Ученик объясняет разницу между отображением цены и серверным списанием.

Занятие 4. Лава, контрольная точка, возрождение

Задача. Сначала упадите в лаву до чекпоинта, затем активируйте контрольную точку и повторите попытку. Сравните места появления персонажа.

Проверка. Выйдите из игры и зайдите заново. В этой версии чекпоинт действует только внутри текущей сессии.

Результат. Ученик различает временное состояние уровня и постоянные данные профиля.

Занятие 5. Финиш и повторная награда

Задача. Дойдите до финиша, запишите Coins и Wins. Затем несколько раз коснитесь финишной детали.

Проверка. Ожидается +30 монет и +1 победа один раз за сессию. Повторные касания не должны выдавать дополнительные награды.

Результат. Игра корректно завершает попытку и не позволяет бесконечно получать награду.

Если что-то не работает: таблица диагностики

Не переписывайте весь проект при первой ошибке. Откройте View → Output, найдите сообщение, воспроизведите проблему и проверьте сначала тип и расположение Script, затем имена объектов.

Симптом Вероятная причина Что проверить
Карта отсутствует IslandWorldBuilder помещён не в ServerScriptService или выключен Проверьте расположение, Enabled и Output.
Баланс растёт неожиданно Запущены дополнительные скрипты leaderstats или звёзд Уберите сторонние системы валюты и используйте один IslandGameServer.
Покупка не срабатывает Недостаточно монет либо бонус уже активен Проверьте баланс, время эффекта и серверное событие.
После перезахода нет чекпоинта Чекпоинт в этой версии намеренно не сохраняется Не воспринимайте это как ошибку DataStore; это правило проекта.
Прогресс перезаписывается Одновременные сессии и учебная реализация UpdateAsync без блокировки Не используйте систему для платной валюты; запланируйте защиту данных перед публичным запуском.

Контрольные вопросы

Ответьте устно или письменно, прежде чем переходить к следующему проекту. Важно не просто назвать команду, а объяснить, зачем она используется.

  1. Почему мир создаётся при Play, а не хранится как постоянная карта?
  2. Сколько звёзд нужно для покупки ускорения и почему?
  3. Как предотвратить двойную награду за один предмет?
  4. Какие данные сохраняются между сессиями, а какие нет?
  5. Почему финиш выдаёт награду только один раз?
  6. Как проверить игру двумя клиентами в Studio?
  7. Что произойдёт, если DataStore временно недоступен?
  8. Как сделать второй маршрут, не нарушив баланс игры?

Чек-лист готовности

Поставьте отметку после самостоятельной проверки каждого пункта:

  • ☐ Три скрипта расположены в правильных службах.
  • ☐ Семь звёзд появляются и корректно обновляются.
  • ☐ За одно появление звезды награда не дублируется.
  • ☐ Ускорение стоит 20 монет и длится 20 секунд.
  • ☐ Лава и чекпоинт работают в ожидаемой последовательности.
  • ☐ Финиш выдаёт награду только один раз за сессию.
  • ☐ HUD показывает актуальные значения и сообщения.

Как развить проект дальше

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

Перед публикацией. Архивы не были проверены запуском в Roblox Studio в рамках этой сборки. Протестируйте проект на компьютере и телефоне, в одиночном и многопользовательском режимах; отдельно проверьте сохранение, обработку ошибок и поведение после перезахода.

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

Важное ограничение: файлы Luau не являются готовой игрой .rbxl; исходники пока не прошли полноценный запуск в Roblox Studio. Иллюстрации ниже — обложка и фрагменты исходного кода, не подтверждённые скриншоты игрового процесса.

ГЛАВА 01 / 10

Знакомство с островом и правилами

Разбираемся

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

Практика в Roblox Studio

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

Как проверить результат

Объясните, почему четыре звезды достаточно для покупки и сколько монет останется после неё.

Самостоятельное задание

Предложите собственный маршрут острова с дополнительным препятствием, но без изменения экономики.

На что обратить внимание. Числа относятся к текущему README v1.0; при изменении кода необходимо обновлять и учебник.

↑ К началу руководства

ГЛАВА 02 / 10

Три файла и устройство проекта

Разбираемся

IslandWorldBuilder строит карту; IslandGameServer управляет валютой, препятствиями, бонусом, сохранением и финишем; IslandHUD отображает интерфейс. Серверная и клиентская части разделены, чтобы ученику было проще понять ответственность каждого файла.

Практика в Roblox Studio

Создайте Baseplate. Поместите IslandWorldBuilder и IslandGameServer как Script в ServerScriptService; IslandHUD как LocalScript в StarterPlayerScripts. Не добавляйте в тот же Place другие примеры leaderstats или магазинов.

Как проверить результат

После Play должна появиться карта, а в Output не должно быть ошибок отсутствующих объектов.

Самостоятельное задание

Составьте таблицу: файл, где расположен, что создаёт, какие данные использует.

На что обратить внимание. В ZIP нет .rbxl; игровой мир строится при запуске.

↑ К началу руководства

ГЛАВА 03 / 10

Автоматическая карта острова

Разбираемся

Генератор создаёт учебную карту из Roblox-деталей. Для занятий это удобно: координаты и размеры становятся управляемыми параметрами, а изменение кода можно увидеть сразу после Play. Однако слишком большой прыжок между платформами делает маршрут непроходимым.

Практика в Roblox Studio

Найдите в IslandWorldBuilder создание платформ и препятствий. Измените цвет одной платформы и переместите безопасный декоративный объект. Перезапустите игру и сравните результат.

Как проверить результат

Убедитесь, что SpawnLocation не перекрыт, а каждая необходимая площадка достижима стандартным прыжком.

Самостоятельное задание

Добавьте вторую дорожку к чекпоинту и обозначьте её другим материалом.

На что обратить внимание. Если генератор создаёт объект по фиксированному имени, согласуйте изменения с IslandGameServer.

↑ К началу руководства

ГЛАВА 04 / 10

Сбор звёзд и серверный учёт

Разбираемся

Каждая звезда выдаёт пять монет и исчезает на двенадцать секунд. Одну звезду в одном цикле получает только один игрок. Это пример критической секции: обработчик должен запретить повторное начисление, пока предмет недоступен.

Практика в Roblox Studio

В Play соберите звезду и засеките время до появления. Затем запустите двух игроков и попробуйте одновременно коснуться одного предмета. Найдите в IslandGameServer участок, который закрывает повторный сбор.

Как проверить результат

Убедитесь, что суммарная награда за одно появление звезды не удваивается.

Самостоятельное задание

Добавьте золотую звезду с отдельной ценностью; предварительно опишите её серверные правила.

На что обратить внимание. Слишком частые касания Touched не должны давать дополнительные монеты.

↑ К началу руководства

ГЛАВА 05 / 10

Валюта, магазин и ускорение

Разбираемся

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

Практика в Roblox Studio

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

Как проверить результат

Баланс после покупки равен нулю, а повторная покупка не снимает средства.

Самостоятельное задание

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

На что обратить внимание. Несколько разных бонусов скорости потребуют общего менеджера состояний.

↑ К началу руководства

ГЛАВА 06 / 10

Лава и контрольная точка

Разбираемся

Лава завершает попытку, а чекпоинт задаёт место следующего возрождения. Контрольная точка сохраняется только на текущую игровую сессию: после нового входа игрок начинает с обычного старта. Это важное различие между временным состоянием и постоянными данными.

Практика в Roblox Studio

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

Как проверить результат

Ожидаемый результат: внутри сессии возрождение рядом с чекпоинтом, после перезахода — стандартный старт.

Самостоятельное задание

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

На что обратить внимание. Не сохраняйте координаты персонажа без проверки, что точка безопасна и находится внутри уровня.

↑ К началу руководства

ГЛАВА 07 / 10

Финиш и защита от повторной награды

Разбираемся

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

Практика в Roblox Studio

Пройдите маршрут и зафиксируйте Coins и Wins. Несколько раз коснитесь финиша и сравните счётчики. В режиме двух игроков проверьте, что каждый может получить собственную награду.

Как проверить результат

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

Самостоятельное задание

Добавьте экран поздравления, который появляется только после серверного подтверждения победы.

На что обратить внимание. Не переносите проверку «победа уже получена» исключительно на клиент.

↑ К началу руководства

ГЛАВА 08 / 10

HUD и понятная обратная связь

Разбираемся

IslandHUD показывает монеты, победы и уведомления. Хороший интерфейс объясняет результат действия: звезда собрана, средств недостаточно, ускорение включено, сохранение недоступно. Для школьной аудитории особенно важны крупные числа и ясные сообщения.

Практика в Roblox Studio

Откройте IslandHUD.client.luau, найдите создание экранных элементов. Измените цвета и отступы, не меняя имена событий. Проверьте интерфейс на узком экране и в режиме двух игроков.

Как проверить результат

Ни одна кнопка не должна выходить за край экрана; баланс должен совпадать с серверным состоянием.

Самостоятельное задание

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

На что обратить внимание. Клиентский HUD не должен самостоятельно начислять Coins или Wins.

↑ К началу руководства

ГЛАВА 09 / 10

Сохранение прогресса и ограничения

Разбираемся

Монеты и победы сохраняются через DataStore, когда сервис доступен. Чекпоинт и временный бонус не сохраняются. В реализации используется UpdateAsync, но нет блокировки сессии: одновременная игра на разных серверах может привести к перезаписи прогресса.

Практика в Roblox Studio

Опубликуйте отдельный тестовый Place, при необходимости включите Studio API Services. Получите монеты, выйдите и зайдите снова. Проверьте, что Coins и Wins сохранились, а ускорение исчезло.

Как проверить результат

При недоступности DataStore интерфейс должен предупредить, а игровой процесс — продолжиться без аварийного завершения.

Самостоятельное задание

Составьте таблицу: какие данные должны жить только до смерти, до конца сессии или между сессиями.

На что обратить внимание. Не используйте учебную систему сохранения для платной валюты или ценных предметов.

↑ К началу руководства

ГЛАВА 10 / 10

Итоговый мини-проект и критерии оценки

Разбираемся

Ученик демонстрирует путь от звезды до финиша и объясняет связь трёх файлов. Это одновременно урок по программированию, экономике игры, тестированию и дизайну уровня. Главное — уметь обосновать правила, а не только показать красивую карту.

Практика в Roblox Studio

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

Как проверить результат

Критерии: карта запускается, экономика не дублирует награды, финиш выдаёт награду один раз, HUD понятен, сохранение проверено.

Самостоятельное задание

Добавьте альтернативный маршрут с более трудными прыжками и дополнительными наградами.

На что обратить внимание. Полная проверка в Roblox Studio не проводилась при создании исходного архива; перед публикацией необходимы реальные тесты.

↑ К началу руководства