Какая библиотека рекомендуется для использования Lua из C ++? [закрыто]

13

В настоящее время я планирую интегрировать сценарии Lua в мой 2D Game Engine, и я хотел бы перейти непосредственно к наиболее адекватному решению для отображения классов и объектов C ++.

Я прочитал это (если это поможет вам помочь): http://lua-users.org/wiki/BindingCodeToLua

Если у вас есть лучший язык сценариев, чтобы порекомендовать, пойти на это; D

Вся помощь приветствуется, мне нужно выбрать лучшее решение, чтобы начать реализацию Спасибо

Гримшоу
источник

Ответы:

4

Если основное качество вашего языка сценариев легко связывается, попробуйте AngelScript . Он может вызывать зарегистрированные функции напрямую, без необходимости писать прокси-функции, и поддерживает соглашения о вызовах самых разных компиляторов. Сам язык похож на c / c ++, который может быть хорошим или плохим, в зависимости.

Яри ​​Комппа
источник
7

Я слышал хорошие вещи о LuaPlus . Он оборачивает низкоуровневый C API в более высокий уровень C ++.

Коммунистическая утка
источник
4

Пока вы делаете достаточно обычное связывание, LuaBind будет делать все, что вам нужно. Связывание классов и функций, как правило, является соглашением по одной строке на функцию. Если вам нужен пример, вот соответствующий файл из игрового движка, над которым я работал (ищите модуль (L) для запуска интерфейса LuaBind, DontKillMeBro <> - небольшая система, которую я подключил, чтобы позволить мне точнее время уничтожения объекта для определенных чувствительных объектов.)

Если вы хотите что-то более сложное, вам, вероятно, понадобится использовать настоящий Lua API. К счастью, Lua API достаточно прост.

ZorbaTHut
источник
1

Мы используем OOLua для Pioneer . Он дает кучу макросов, которые вы используете для привязки Lua-классов к классам C ++. Он получил довольно много власти, но довольно прост. Я не использовал никаких других, поэтому я не могу комментировать, как он сравнивается. Вот пример .

Роб Н
источник
1

Я бы взял с рук скомпилированные библиотеки Nuclex и включил файлы для LuaBind. (то есть если вы работаете с VS2008)

Поскольку LuaBind требует, чтобы вы собрали его с помощью некоторых библиотек и инструментов Boost, этот пакет сэкономит вам драгоценное время (и, возможно, немного головной боли, кто знает). Я бы сказал, что вы сможете запустить Луа менее чем за час, если будете знать, что делаете.

Вы также можете рассмотреть возможность изменения по умолчанию Lua dll на LuaJIT dll, если вы ищете небольшой прирост производительности . Это всего лишь вопрос компиляции библиотеки и замены библиотеки lib / dll, с которой вы ссылаетесь в своем основном проекте, так что это довольно просто.

С этим, удачи!

tomzx
источник