Roblox вики
Roblox вики
2094
страницы
Lua language

Логотип Lua

В Roblox язык Lua (обычно RBX.lua) обозначает реализацию движком языка программирования Lua. Lua используется в основном в скриптах, изменяющих поведение сервера и клиента, а также в других программах, таких как плагины, расширяющие функциональность Roblox Studio. Ориентируясь на разработку игр, Roblox изменил свою реализацию Lua, введя новые типы данных и удалив/изменив стандартные библиотеки Lua. Roblox использует свой собственный диалект Lua, известный как Luau, который заимствован из Lua 5.1.4 со многими изменениями, включая оптимизацию производительности и последовательную типизацию.

История[]

Ранее Roblox поддерживал выполнение байт-кода Lua через стандартную функцию библиотеки Lua loadstring. 3 августа 2012 года Roblox прекратил поддержку этого метода выполнения по соображениям безопасности и совместимости версий.[1]

27 августа 2019 года Roblox переходит с языка сценариев Lua 5.1.4 на Luau.[2]

Реализация[]

Чтобы сделать игру пригодной для разработки в Roblox, реализация Lua в Roblox претерпела некоторые изменения, в первую очередь касающиеся стандартных библиотек Lua.

Многие функции, а также некоторые библиотеки были исключены (обращение к ним приведёт к nil):

  • io и библиотеки пакетов были исключены.
  • В частности, было исключено большинство функций библиотек debug и os:
    • Все остальные функции библиотеки debug (кроме debug.traceback)
    • debug.getinfo (в Roblox используется аналогичная функция debug.info)
    • os.execute
    • os.exit
    • os.getenv
    • os.remove
    • os.rename
    • os.setlocale
    • os.tmpname

Roblox также ввел в реализацию свои собственные типы данных, включая экземпляры.

Исполнение[]

Существует множество способов выполнения кода Lua в движке Roblox:

  • Скрипты, которые выполняются автоматически в зависимости от условий.
  • С помощью командной строки в Roblox Studio или в Консоли разработчика.
  • Файл, выбранный с помощью кнопки Run Script в Roblox Studio.

Интересные факты[]

  • Существует тип актива (ID 5) для активов, содержащих код Lua.
  1. Шедлетски, Джон (3 Августа 2012). "Bye Bye Bytecode". From Roblox Blog. Доступно с 10 февраля 2023 года. Архивировано из первоисточника 16 января 2022 года.
  2. Капулкин, Арсений (27 Августа 2019). "Faster Lua VM Released". From DevForum. Доступно с 10 февраля 2023 года. Архивировано из первоисточника 17 декабря 2022 года.