Вторник, 27 Сентября 2022, 04:32

Приветствую Вас Гость

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

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


FinderX - Android Аркада

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

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


Как правильно задавать вопросы

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

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


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


Как правильно задавать вопросы

Сообщение отредактировал -l33t-h4xx- - Четверг, 13 Марта 2014, 08:28
goldsphereДата: Четверг, 13 Марта 2014, 08:33 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Цитата -l33t-h4xx- ()
file.lub

ты скомпилировал через luac?


FinderX - Android Аркада
-l33t-h4xx-Дата: Четверг, 13 Марта 2014, 08:34 | Сообщение # 6
участник
Сейчас нет на сайте
Цитата goldsphere ()
ты скомпилировал через luac?

У меня не было выбора.


Как правильно задавать вопросы
goldsphereДата: Четверг, 13 Марта 2014, 08:47 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Всё, заработало, господи, такая глупая ошибка была, в батнике не тот файл указал) -l33t-h4xx-, Спасибо)

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


FinderX - Android Аркада
SaiteiДата: Суббота, 15 Марта 2014, 15:28 | Сообщение # 8
старожил
Сейчас нет на сайте
goldsphere, я считаю, что в скриптах должна быть игровая логика. ИИ, квесты и т.п.
Форум игроделов » Программирование » Общие обсуждения программистов » Скрипты против Основного кода
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг