Использование C ++ и совместное использование сценариев - PullRequest
3 голосов
/ 28 октября 2010

Я занимаюсь разработкой простых игр как хобби.Для моего нового проекта я хочу, чтобы некоторые части были сценариями.Я знаком с Python, но не против изучения новых языков.Вот вопрос:

Я планирую реализовать поиск путей, поле зрения, обнаружение столкновений и т. Д. В C ++, но хочу использовать сценарии для машин состояний ИИ, сценариевые события.Какой тип структуры используется для такой работы?Я полагаю, что могу заставить программу на C ++ запускать процесс python, который в свою очередь вызывает методы C ++, но это кажется неэффективным.Другая идея состоит в том, чтобы разработать библиотеку, которая будет вызываться из python, что тоже не очень привлекательно.Как обычно это делается (кроме написания моего собственного языка и синтаксического анализатора?) Я слышал, что lua популярен для встраивания в программы на Си.

Ответы [ 4 ]

6 голосов
/ 28 октября 2010

Из моего личного опыта, lua и tcl имеют фантастические C API для встраивания. Оба языка очень просты. Если вы пишете командный интерфейс, я бы, вероятно, сказал пойти с tcl, но если вы просто используете встроенный интерпретатор, я бы порекомендовал lua. Учитывая, что вы используете C ++, вы также можете захотеть заглянуть в luabind API, я слышал об этом хорошие вещи.

Для сценариев ИИ или других вещей типа конечного автомата, это сообщение в блоге Зеда Шоу - хорошее чтение. Код AI на основе сопрограмм может выглядеть намного лучше для сложных сценариев, чем для управления огромной кучей состояний и их переходов.

Если вы используете python, вам лучше было бы расширять, а не встраивать .

4 голосов
/ 28 октября 2010

Запустить процесс Python? Нееет ....

Код .

3 голосов
/ 28 октября 2010

Из личного опыта я очень рекомендую движок Google Javascript V8.Он очень производительный, написан на C ++, тривиально прост для встраивания, не имеет других зависимостей и действительно красивый собственный интерфейс.

http://code.google.com/p/v8/

2 голосов
/ 28 октября 2010

Я согласен, что Tcl и Lua являются одними из самых простых для встраивания в приложение c / c ++. Главным образом потому, что это было дизайнерское решение с самого начала. Еще один язык, который был разработан для встраивания, это Guile.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...