Под сценариями здесь я подразумеваю не только помещение данных конфигурации в сценарий, но и части сценариев проекта, такие как некоторые методы классов, тестирование определенного игрового цикла и т. Д. Это будет не только ускорить разработку, но и позволит игрокам увидеть некоторые из этих скрипты для настройки некоторых аспектов игры.
В некоторых языках, таких как Lua, есть некоторые оболочки, такие как luabind, но когда я использовал его в прошлом, у него были проблемы, потому что он не поддерживал переопределение методов в контексте наследования.
Каковы ваши предложения языка / оболочки, чтобы использовать или не использовать?
источник
Мне понравился Chaiscript ; Я не использовал его очень долго, но пока он выглядит довольно солидным.
В отличие от Python или lua, он построен с нуля для использования с C ++. Процесс связывания выглядит намного чище, чем с luabind / etc.
Вот резюме на сайте:
источник
Я бы порекомендовал Lua .
Питон тоже очень популярен. Его используют многие игровые движки (например, Blender).
C ++ :: Boost имеет библиотеку для работы с Python.
Я читал про Белку , но не использовал ее.
Вы можете прочитать этот обзор Game Engine . Есть
Scripting
колонка. Вы можете видеть, что Lua и Python являются наиболее популярными языками сценариев.источник
Почему бы не построить свой собственный?
Если у вас есть время, терпение и желание учиться - вы всегда можете попробовать разработать собственный движок сценариев со всеми необходимыми функциями и синтаксисом.
преимущества
Недостатки
Время. Не у многих это есть. Если вам нужно что-то СЕЙЧАС, попробуйте уже существующий движок (как один из уже предложенных).
Скорость. Многие существующие скриптовые движки работают очень быстро - индивидуальное решение может быть не таким быстрым.
Размер команды. Многие существующие скриптовые движки имеют большие группы людей, работающих над базой кода, будь то частные команды или глобальные добровольцы, есть что-то, что можно сказать о коде, который проверяется и перепроверяется многими другими людьми.
Механизм сценариев требует определенного объема первоначального планирования для эффективного выполнения. Существует много основ, которые также должны быть реализованы, которые могут вообще не иметь отношения к фактическому скриптовому движку.
Это ни в коем случае не исчерпывающий список. Если вам необходимо внести большое количество изменений в серверную часть существующего языка сценариев, чтобы получить желаемую функциональность, IMO вам, вероятно, следует поискать другой движок, более точно соответствующий вашим требованиям, или просто создать свой собственный.
Я понимаю, что людям нравится разбрасываться словами «лень» и «не изобретать велосипед», но я думаю, что можно кое-что сказать об изучении того, как это делается. И конкретная реализация, вероятно, будет лучше для вашего проекта, чем общая реализация.
«Создание систем сценариев в C ++», кажется, является любимой статьей (статьями), которой люди делятся при обсуждении темы: http://www.gamedev.net/reference/list.asp?categoryid=76
источник
Я пробовал Lua, Python, Scheme и Squirrel. Луа работал лучше всего; у него более широкое сообщество и лучшая поддержка, чем у Squirrel, и гораздо лучшие характеристики памяти и производительности, чем у Python. Схема тоже работала очень хорошо, и у нее был крошечный интерпретатор, но дизайнерам было трудно обдумать функциональный язык.
источник
Вот ссылки на luabind и tolua, обертки для lua / c ++
http://luabind.sourceforge.net/
http://www.tecgraf.puc-rio.br/~celes/tolua/
источник