Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
#1

Lua vs Json

27.07.2016, 17:06. Просмотров 904. Ответов 29
Метки нет (Все метки)

Добрый день,

встречаю, который проект на ряду, которые связывают С++ с Lua, в частности конфигурационные файлы, которые легко могли бы быть обычными json файлами.

У кого-то есть опыт работы с связкой С++ и Lua - какой профит я не вижу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2016, 17:06
Ответы с готовыми решениями:

Lua и luabridge
Остались еще специалисты по столь древнему инструменту как luabridge? В...

Инжектор lua-скриптов
Хочу написать написать свой инжектор луа-скриптов для одной программы. Как...

Макросы и скрипты (Lua)
У меня тема курсовой - использование языка lua в качестве макросов в языке c++....

Code::Blocks 13.12 и Lua = ошибка lua_open
Привет, подскажите в чем проблема: этот код работает нормально: #include...

Runtime error при открытии lua-скрипта
Всем доброго времени суток. Есть функция, задача которой прочитать...

29
hoggy
Нарушитель
Эксперт С++
7054 / 3100 / 643
Регистрация: 15.11.2014
Сообщений: 7,063
Завершенные тесты: 1
27.07.2016, 17:07 #2
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
У кого-то есть опыт работы с связкой С++ и Lua - какой профит я не вижу?
если нужно скриптование - нужен lua.
если итак уже есть lua на борту,
тогда нет смысла подтягивать что-то ещё.
конфиги он жрет отлично.
и это уменьшает стек технологий.

если скриптование не нужно, значит не нужен lua.
это ортогонально джейсону.
1
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:10  [ТС] #3
Цитата Сообщение от hoggy Посмотреть сообщение
если нужно скриптование - нужен lua
а как определить?
0
hoggy
Нарушитель
Эксперт С++
7054 / 3100 / 643
Регистрация: 15.11.2014
Сообщений: 7,063
Завершенные тесты: 1
27.07.2016, 17:12 #4
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
а как определить?
что значит как?
как вообще определяется какие инструменты мы хотим использовать для решения задачи?
из постановки задачи и требований к решению.
0
HelicopterK52
781 / 211 / 32
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
27.07.2016, 17:15 #5
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
а как определить?
Простой способ отличить зайца от зайчихи:
поднять зайца (зайчиху) за уши, затем отпустить.
Если поскакал, значит заяц, если поскакала - зайчиха.


Ваш вопрос несколько абсурден.
0
hoggy
27.07.2016, 17:16
  #6

Не по теме:

Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Простой способ отличить зайца от зайчихи:
поднять зайца (зайчиху) за уши, затем отпустить.
Если поскакал, значит заяц, если поскакала - зайчиха.
)))))))))))

0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:22  [ТС] #7
hoggy, я о том, что всё что угодно можно написать на С++, включая скриптовый язык и интерпретатор к нему в придачу. Как понять, что твоему ПО или игре нужно что-то написать на Lua ? Вопрос если и смешной, то связан с тем, что не работал я еще в комбинаторике С++ и скрипты. Хоть для своего ПО пишу на Nodejs скрипты которые запускаю через bat'ники, и даже в мыслях не было думать как связать всё с С++.
0
HelicopterK52
781 / 211 / 32
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
27.07.2016, 17:22 #8
rikimaru2013, если Вы задаете глупые вопросы,
то это не значит, что нужно минусовать за глупые ответы.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Как понять, что твоему ПО или игре нужно что-то написать на Lua ?
Ваш вопрос из разряда "Когда мне использовать ведро, а когда не использовать".
И что тут можно ответить? Если нужно ведро - используй, не нужно - не используй.
Что там за задачи никому не ясно. Обсуждение коня в вакууме - полная лажа.
0
ct0r
Игогошка!
1789 / 690 / 44
Регистрация: 19.08.2012
Сообщений: 1,339
Завершенные тесты: 1
27.07.2016, 17:23 #9
Лучший ответ Сообщение было отмечено rikimaru2013 как решение

Решение

rikimaru2013,
пойдет?
https://github.com/boostcon/cppnow_p..._scripting.pdf
1
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:25  [ТС] #10
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
если Вы задаете глупые вопросы,
то это не значит, что нужно минусовать за глупые ответы.
Как вопрос может быть глупым в разделе С++ для начинающих?? Полистайте ветку, тут половина вопросов могут показаться для вас глупыми - так идите в каждый и жгите Петросян.
0
hoggy
Нарушитель
Эксперт С++
7054 / 3100 / 643
Регистрация: 15.11.2014
Сообщений: 7,063
Завершенные тесты: 1
27.07.2016, 17:27 #11
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Как понять, что твоему ПО или игре нужно что-то написать на Lua ?
ну простой пример из практики:
есть редактор чевотов.
там дизайнеры (которые ни бум бум) подкручивают гайки.
редактор роббит с луа, а она - с нативом на плюсах.

можно прямо налету видеть изменения в логике работы.


такая "алгоритмическая", "программная" кастомизация
без необходимости править(пересобирать) нативный код
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:30  [ТС] #12
Цитата Сообщение от hoggy Посмотреть сообщение
там дизайнеры (который ни бум бум) подкручивают гайки.
у меня есть опыт, когда мы писали батник на скриптовом языке, который скачивает google doc с сети, который заполняет юзверг, и превращает его в json-конфиг. И не было проблем. Где я не прав? Почему в данном примере, мы должны были подключать Lua адаптер и писать С++/Lua строчки кода?
0
HelicopterK52
781 / 211 / 32
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
27.07.2016, 17:30 #13
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Как вопрос может быть глупым в разделе С++ для начинающих?
Глупые вопросы можно написать где угодно.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
так идите в каждый и жгите Петросян.
Что мне делать я сам решу, без чужой помощи, так ведь?
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Полистайте ветку, тут половина вопросов могут показаться для вас глупыми
Может быть да, а может быть и нет.
В данной теме - да.
Я имею ввиду не вопрос в первом сообщении,
он не глупый, а тот который в сообщении #3.

Профит от скриптов, как минимум в том,
что Вы можете изменять поведение программы "на лету",
без компиляции приложения - просто поменяв скрипт.
Также можно, например, не только изменять,
но и добавлять/удалять функционал.
0
hoggy
27.07.2016, 17:32
  #14

Не по теме:

Цитата Сообщение от HelicopterK52 Посмотреть сообщение
если Вы задаете глупые вопросы,
то это не значит, что нужно минусовать за глупые ответы.
ша! стрекоза!
делай выводы и двигай дальше.

0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:35  [ТС] #15
Да и json-конфиг можно менять "налету". Попробуйте объяснить мне доводами посильнее отличающихся от json файла, который представляет с себя обычный txt - и тот самый txt конфиг-файл может редактор для юзвергов от hoggy, так же заполнять - зачем тут подключать другой язык и переплачивать программистов за чтение/редактирование "другого" языка прогарммирования.

Получается что я понял с ваших тезисов:
- если нету Lua, то конфиг на json самое оно
- если нету Lua, но можно написать функционал который берёт данные с локальное машине и можно сделать это в7 раз быстрее на скриптовом языке чем С++ - подключаем Lua
- если есть Lua, то конфиг можно написать на нём, чтобы не подключать rapidjson какой-то

Так?
0
hoggy
Нарушитель
Эксперт С++
7054 / 3100 / 643
Регистрация: 15.11.2014
Сообщений: 7,063
Завершенные тесты: 1
27.07.2016, 17:41 #16
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
у меня есть опыт, когда мы писали батник на скриптовом языке, который скачивает google doc с сети, который заполняет юзверг, и превращает его в json-конфиг. И не было проблем. Где я не прав? Почему в данном примере, мы должны были подключать Lua адаптер и писать С++/Lua строчки кода?
Lua распространенн в гейм-дефе.
позволяет дизигнерам кастомизировать правила игры,
поведение персонажей и тд,
без необходимости пересобирать все приложение.

например, можно выпустить игрушку.
а потом штамповать аддоны.

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

и в то же время он достаточно прост.
что бы его осилили гуманитарии-дизигнеры.

Добавлено через 3 минуты
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
- если нету Lua, то конфиг на json самое оно
да что угодно.
не обязательно джейсон.

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

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Так?
причина использования луа не в конфигах.
а в возможности писать высокоуровневую,
программную логику любых чевотов.
и применять эту логику "на горячую".
без пересборки приложения.
1
DrOffset
8006 / 4645 / 1129
Регистрация: 30.01.2014
Сообщений: 7,551
27.07.2016, 17:43 #17
rikimaru2013, что касается lua в итеграции с С++ в больших проектах, то предлагаю посмотреть на игры. Таких достаточно много, например S.T.A.L.K.E.R. или WoW. Поизучай их скрипты, увидишь на реальных примерах сферу применения.
1
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
27.07.2016, 17:45  [ТС] #18
Цитата Сообщение от hoggy Посмотреть сообщение
причина использования луа не в конфигах.
а в возможности писать высокоуровневую,
программную логику любых чевотов.
и применять эту логику "на горячую".
без пересборки приложения.
подозреваю, что всему есть цена - быстродействие падает при связки С++ с скриптовыми?

Добавлено через 1 минуту

Не по теме:

DrOffset, а кто исходники проектов то выложит? Коммерческая тайна же ж)

0
hoggy
Нарушитель
Эксперт С++
7054 / 3100 / 643
Регистрация: 15.11.2014
Сообщений: 7,063
Завершенные тесты: 1
27.07.2016, 17:49 #19
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
подозреваю, что всему есть цена - быстродействие падает при связки С++ с скриптовыми?
его киллер-фича - быстродействие в рантайме.
его слава в том, что это один из самых быстрых скриптов для крестов.
ну и плюс, он умеет нативный код (при этом утрачиваются его скрипто-качества).
0
DrOffset
8006 / 4645 / 1129
Регистрация: 30.01.2014
Сообщений: 7,551
27.07.2016, 17:49 #20
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
а кто исходники проектов то выложит? Коммерческая тайна же ж)
Ты бы разобрался сперва
Скрипты доступны для изучения. А в Варкрафте, так вообще официальная поддержка написания своих аддонов на lua.
Конечно плюсовый код тебе никто не покажет, но ты же хотел разобраться как применяется lua, а изучения скриптов вполне достаточно для этого.
0
27.07.2016, 17:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2016, 17:49

Как в visual studio 15 написать самый простой код на LUA
Хочу написать самый простой код на LUA в VS. Для этого взял готовый пример из...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception...

Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт
Здравствуйте. Разрабатываю интернет-магазин на Java. Мне нужно на фронте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru