Pull to refresh
5
Send message

Заметки на полях: Изолируем Lua окружение в C++ приложении. Ограничение ресурсов

Level of difficultyMedium
Reading time25 min
Reach and readers8.2K

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

В этой части разберём как из кубиков с буквами О, П, Ж и А while true do end

...составить слово "СЧАСТЬЕ".

Заметки на полях: Изолируем Lua окружение в C++ приложении. Скрипты, модули и контроль путей

Level of difficultyMedium
Reading time19 min
Reach and readers6.1K

В прошлый раз мы остановились на том, что в творческом порыве на всём скаку отсекли целый пласт потенциальных возможностей нашкодить при помощи функций стандартных библиотек Lua — доступ к файловой системе и функциям ОС, системным командам и переменным окружения, возможность подгрузки сторонних Lua-модулей и C-библиотек на стороне скриптов и чего только ещё не. Напрочь отсекли.

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

... но можно ослабить удавку.

Заметки на полях: Изолируем Lua окружение в C++ приложении. Стандартные библиотеки

Level of difficultyMedium
Reading time18 min
Reach and readers8K

Скриптовые языки уже давно и прочно заняли свою нишу в игрострое — они существенно упрощают описание игровой логики, уровней, ресурсов, диалогов, квестов, UI и чего только не. Что позволяет отдать эти задачи целиком и полностью в творческие руки гейм-/левел-/прочих-дизайнеров и других членов команды, которым не нужно обладать знаниями в том же C++. Разделение ответственности, ускорение разработки, облегчение моддинга, возможность по завершению разработки самого движка, вышвырнуть программистов на мороз и стричь купоны на бесконечных дополнениях — в общем, одни только плюсы. Да?

Да.

А ещё дыры в безопасности и ...

... уйма путей уронить стабильность.

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Backend Developer, Game Developer
Middle
C++
Linux
Game Development
Lua
Software development