Рейтинг

  • Страница 1 из 1
  • 1

Скрипты против Основного кода
[1] goldsphere [13 Марта 2014, 07:24]
Конкретно речь пойдёт о Lua и C++. В моём текущем проекте без скриптов довольно трудно обойтись, я использую их как хранилища данных и конфиги и тут уж только скрипты спасут, но всё же иногда легче написать код на C++, чем встраивать lua скрипты. Но некоторые вещи будет трудно отследить, например это бы сильно затруднило отладку, встраивание скриптов довольно муторный процесс, но реализуемый и уже реализованный, ещё я волнуюсь о защите данных, ибо любой .lua файл можно открыть и изменить, а из скомпилированного файла нельзя вытаскивать данные, их можно только запускать на исполнение, то есть появляется ещё один геморрой - кодирование и декодирование таких файлов.
суть вопроса: стоит ли выносить из основного кода что-то ещё кроме кучи данных, таких как хар-ки персонажей, например алгоритм поведения ботов, некоторые геймплейные фичи или использовать скрипты по максимуму? Как тогда защитить скрипты?

Как для меня у обоих вариантов есть следующие плюсы и минусы:
разработка на уровне C++
плюсы
Так как это часть основного кода, не надо париться со встраиванием
Информация защищена
минусы
Привязка многих элементов к основному коду, нет вариативности
В принципе необходимость трогать основной код, если хочется просто наклепать персонажей
встраивание скриптов Lua
плюсы
легко добавлять допустим персонажей в игру, написал скрипт, путь к нему прописал в другом скрипте и всё
не нужно лезть в основной код
упрощает жизнь
минусы
доп проблема сопоставления основного кода и скриптов
не защищённость, необходимость шифрования, что ещё добавить проблем


Сообщение отредактировал goldsphere - Четверг, 13 Марта 2014, 07:36
[2] -l33t-h4xx- [13 Марта 2014, 07:53]
Цитата goldsphere ()
а из скомпилированного файла нельзя вытаскивать данные

По-моему, вытаскивать данные напрямую из исходного файла - не очень хорошая практика. Значит стоит придумать какой-нибудь другой механизм взаимодействия. Lua достаточно мощен, чтобы позволить избежать ковыряния в коде на уровне символов, минуя интерпретатор. На мой взгляд, компиляция скриптов - самое лучшее решение.


Сообщение отредактировал -l33t-h4xx- - Четверг, 13 Марта 2014, 07:56
[3] goldsphere [13 Марта 2014, 08:10]
-l33t-h4xx-, да но вот тут есть проблема, скажем есть строчка
UserBackground = "Standart"
При старте игры значение переменной загружается из .lua в основной код встроенными средствами lua, но если скрипт скомпилирован, то здесь уже таким же образом вытащить переменную не получится, его можно только выполнить.

Добавлено (13.03.2014, 08:10)
---------------------------------------------
Для функционирования некоторых скриптов могут понадобиться переменные из основного кода, а их так же можно регистрировать только для .lua файлов.

[4] -l33t-h4xx- [13 Марта 2014, 08:26]
Ерунда. Делаешь lua_getglobal после выполнения и дальше по инструкции. Ты меня даже напугал, и я на всякий случай проверил: со скомпилированными файлами всё работает.


Сообщение отредактировал -l33t-h4xx- - Четверг, 13 Марта 2014, 08:28
[5] goldsphere [13 Марта 2014, 08:33]
Цитата -l33t-h4xx- ()
file.lub

ты скомпилировал через luac?
[6] -l33t-h4xx- [13 Марта 2014, 08:34]
Цитата goldsphere ()
ты скомпилировал через luac?

У меня не было выбора.
[7] goldsphere [13 Марта 2014, 08:47]
Всё, заработало, господи, такая глупая ошибка была, в батнике не тот файл указал) -l33t-h4xx-, Спасибо)

Добавлено (13.03.2014, 08:47)
---------------------------------------------
но остаётся вопрос, что же стоит выносить в скрипты, а что нет, учитывая что проект пока что не большой

[8] Saitei [15 Марта 2014, 15:28]
goldsphere, я считаю, что в скриптах должна быть игровая логика. ИИ, квесты и т.п.

  • Страница 1 из 1
  • 1