gamepadRoblox

Если вы создавали игры в Roblox, есть несколько ключевых отличий, которые вам нужно знать, чтобы начать работу в All Out!

Если вы приходите из Roblox Studio + Lua, эта страница поможет вам перенести вашу мысленную модель в All Out + CSL (скриптовый язык All Out).

Крупные различия (кратко)

  • Сущности + компоненты (вместо Экземпляров + Сервисов): миры строятся из сущностей в Иерархия, а поведение получается добавлением компонентов (встроенных или скриптовых).

  • Мультиплеер «встроен»: CSL спроектирован так, чтобы большую часть игрового кода можно было писать как для одиночной игры, в то время как движок синхронизирует релевантное состояние.

  • Рабочий процесс редактора ближе к «редактированию сцены»: вы размещаете сущности, настраиваете их компоненты в Инспектор, и повторно используете группы через Префабы.

  • CSL статически типизирован: он будет ближе к Go/Odin, чем к Lua. (См. Начало работы с CSL.)


Шпаргалка Roblox → All Out

Понятие Roblox
Понятие All Out / CSL
Примечания

Roblox Studio

Редактор All Out

Вы запускаете его из Creator Portal (см. Запуск редактора).

Место / Опыт

Проект All Out Game

В вашей локальной папке проекта есть скрипты каталог для .csl файлов.

Explorer / Workspace

Иерархия

Иерархия показывает все сущности в текущем мире/сцене.

Экземпляр / Модель / Часть

Сущность

Организация «как папки» осуществляется через родительские связи сущностей (см. «Папки» в Иерархия).

Окно свойств

Инспектор

Где вы редактируете поля сущности/компонента и добавляете компоненты.

Атрибуты

Сериализованные поля компонента

Откройте поля для редактора с помощью @ao_serialize (пример ниже).

Повторное использование модели

Префабы

Префабы ещё на ранней стадии и пока не поддерживают настраиваемые поля для отдельных экземпляров, кроме позиции (см. Префабы).

ProximityPrompt / ClickDetector

Компонент Interactable

Добавьте Interactable-производный компонент и реализуйте can_use/on_interact (см. Интерактивные объекты).

Touched / Region3 / GetPartsInPart

Запросы по диапазону (пока)

Обработчики входа/выхода столкновений ещё не доступны; используйте Scene.get_all_components_in_range (см. Навмеш и коллизии).

Инструменты / способности / кнопки на мобильных

Способности

Встроенный удобный для мобильных/ПК интерфейс кнопок + шаблоны перезарядки (см. Способности).

DataStoreService

Сохранение + JSON + экономические системы

ScreenGui / GuiObjects

Система UI All Out


Ваш первый час (рекомендуемый путь)

  1. Следуйте пошаговому руководству «коллекция яблок» в Создание базовой игры.

  2. Быстро ознакомьтесь с основами CSL в Начало работы с CSL (особенно ao_start, ao_update, и создание компонентов).

  3. Узнайте, как прикреплять ваши новые компоненты к объектам мира через Инспектор.


Мысленная модель скриптинга (Lua → CSL)

В Roblox вы часто пишете Script/LocalScript , который находит объекты (Workspace.Foo.Bar) и подключает события. В All Out вы обычно:

  • Пишете классы компонентов на CSL (поведение).

  • Прикрепляете их к сущностям в редакторе (или создаёте сущности и добавляете компоненты во время выполнения).

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

Вот небольшой пример, который ощущается как «Script, вложенный в объект», но выражен как компонент CSL:

Если вам нужен «игровой скрипт», который запускается один раз на сервер/сессию, вы обычно помещаете его в ваши основные процедуры жизненного цикла (ao_start, ao_update, и т.д.). См. шаблон в Начало работы с CSL.


Взаимодействия, которые вы узнаете (и как они переводятся)

ProximityPrompt → Interactable

Если вы использовали ProximityPrompt.Triggered в Roblox, ближайший эквивалент — это Interactable-производный компонент. Начните здесь:

«Касаемые» подборы / триггерные зоны

В Roblox BasePart.Touched — это очень распространённый шаблон для подборов, зон урона и контрольных точек. В All Out обработчики входа/выхода столкновений ещё не реализованы в CSL, поэтому стандартный подход таков:

  • Запрашивать близлежащих игроков/компоненты

  • Выполнять простую проверку расстояния

  • Отслеживать, кто был «внутри» в прошлом кадре, если нужны события входа/выхода

См. «Псевдо-поведение столкновений» в:


Действия игрока (Инструменты / привязки клавиш / мобильное управление)

Если вы привыкли к скриптам «инструментов» в Roblox или самописным системам ввода + перезарядки, используйте Способности вместо этого. Они разработаны так, чтобы хорошо работать и на мобильных, и на ПК с единообразным интерфейсом.


Сохранение данных (DataStoreService → Система сохранения)

Для персистентности (валюты, разблокировки, прогресс, косметика) начните с:


UI (ScreenGui → UI All Out)

Roblox UI часто начинается с ScreenGui и иерархий Frame/TextButton . В All Out начните здесь:


Распространённые подводные камни при портировании для разработчиков Roblox

  • Нет дерева «сервисов рабочего пространства»: не ищите эквиваленты ReplicatedStorage/ServerScriptService — используйте иерархию редактора + вашу проектную скрипты папку.

  • Не ждите событий Touched: используйте запросы по диапазону, пока обработчики столкновений не станут доступны в CSL (ссылка выше).

  • Экземпляры префабов ещё не полностью параметризованы: если вам нужно много копий с разными значениями, возможно, потребуется «отвязать» или создать уникальные сущности (см. Префабы).

  • Думайте «компоненты», а не «теги»: там, где вы бы использовали теги CollectionService, вы часто будете добавлять маркер/поведенческий компонент вместо них.


Куда идти дальше

Последнее обновление