Скриптовая система в приложении - PullRequest
1 голос
/ 19 февраля 2011

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

Теперь у меня есть абстрактный класс Объект , который наследуется всеми игровыми объектами.Я должен написать много технического кода, добавить новый тип объекта в enum , зарегистрировать функцию парсера для каждого объекта (эта функция анализирует параметры объекта из файла).

Я не хочусделать такую ​​работу.Так что идея состоит в том, чтобы получить некоторую систему сценариев (например, boost.python, потому что я использую boost в своем проекте).Каждый объект будет простым python-скриптом, на стороне c ++ я просто загружаю и запускаю все эти скрипты.

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

Верны ли мои идеи?

1 Ответ

0 голосов
/ 20 февраля 2011

Можете ли вы дать нам приблизительное представление о том, насколько большой будет игра?

Если вы не будете осторожны, вы можете дать себе много дополнительной работы без особой пользы, но при некотором планировании это звучит так, как будто может помочь. Важные вопросы: «Какие части программы я хочу упростить?», «Нужен ли мне язык сценариев для их упрощения?» И «Может ли язык сценариев упростить их?».

Вы упомянули, что вам не нужно анализировать файлы вручную. Модуль Python Pickle может обработать сериализацию для вас, но так же .NET. Если вы используете Visual Studio, то вам будет проще написать код на C #, чем на Python.

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

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