Конкретно речь пойдёт о Lua и C++. В моём текущем проекте без скриптов довольно трудно обойтись, я использую их как хранилища данных и конфиги и тут уж только скрипты спасут, но всё же иногда легче написать код на C++, чем встраивать lua скрипты. Но некоторые вещи будет трудно отследить, например это бы сильно затруднило отладку, встраивание скриптов довольно муторный процесс, но реализуемый и уже реализованный, ещё я волнуюсь о защите данных, ибо любой .lua файл можно открыть и изменить, а из скомпилированного файла нельзя вытаскивать данные, их можно только запускать на исполнение, то есть появляется ещё один геморрой - кодирование и декодирование таких файлов. суть вопроса: стоит ли выносить из основного кода что-то ещё кроме кучи данных, таких как хар-ки персонажей, например алгоритм поведения ботов, некоторые геймплейные фичи или использовать скрипты по максимуму? Как тогда защитить скрипты?
Как для меня у обоих вариантов есть следующие плюсы и минусы: разработка на уровне C++ плюсы Так как это часть основного кода, не надо париться со встраиванием Информация защищена минусы Привязка многих элементов к основному коду, нет вариативности В принципе необходимость трогать основной код, если хочется просто наклепать персонажей встраивание скриптов Lua плюсы легко добавлять допустим персонажей в игру, написал скрипт, путь к нему прописал в другом скрипте и всё не нужно лезть в основной код упрощает жизнь минусы доп проблема сопоставления основного кода и скриптов не защищённость, необходимость шифрования, что ещё добавить проблем FinderX - Android Аркада
Сообщение отредактировал goldsphere - Четверг, 13 Марта 2014, 07:36
а из скомпилированного файла нельзя вытаскивать данные
По-моему, вытаскивать данные напрямую из исходного файла - не очень хорошая практика. Значит стоит придумать какой-нибудь другой механизм взаимодействия. Lua достаточно мощен, чтобы позволить избежать ковыряния в коде на уровне символов, минуя интерпретатор. На мой взгляд, компиляция скриптов - самое лучшее решение. Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Четверг, 13 Марта 2014, 07:56
-l33t-h4xx-, да но вот тут есть проблема, скажем есть строчка UserBackground = "Standart" При старте игры значение переменной загружается из .lua в основной код встроенными средствами lua, но если скрипт скомпилирован, то здесь уже таким же образом вытащить переменную не получится, его можно только выполнить.
Добавлено (13.03.2014, 08:10) --------------------------------------------- Для функционирования некоторых скриптов могут понадобиться переменные из основного кода, а их так же можно регистрировать только для .lua файлов.
Ерунда. Делаешь lua_getglobal после выполнения и дальше по инструкции. Ты меня даже напугал, и я на всякий случай проверил: со скомпилированными файлами всё работает.
Всё, заработало, господи, такая глупая ошибка была, в батнике не тот файл указал) -l33t-h4xx-, Спасибо)
Добавлено (13.03.2014, 08:47) --------------------------------------------- но остаётся вопрос, что же стоит выносить в скрипты, а что нет, учитывая что проект пока что не большой