
Логотип 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.
- ↑ Шедлетски, Джон (3 Августа 2012). "Bye Bye Bytecode". From Roblox Blog. Доступно с 10 февраля 2023 года. Архивировано из первоисточника 16 января 2022 года.
- ↑ Капулкин, Арсений (27 Августа 2019). "Faster Lua VM Released". From DevForum. Доступно с 10 февраля 2023 года. Архивировано из первоисточника 17 декабря 2022 года.