Рефакторинг кода C ++ для использования языка сценариев? - PullRequest
5 голосов
/ 13 июня 2010

Фон:

Я работаю над платформерной игрой, написанной на C ++, несколько месяцев. Игра в настоящее время полностью написана на C ++, хотя я заинтригован возможностью использования Lua для вражеского ИИ и, возможно, какой-то другой логики. Тем не менее, проект был разработан без учета Lua, и я уже написал рабочий код C ++ для большей части ИИ. Я надеюсь, что Lua сможет улучшить расширяемость игры, но не знаю, имеет ли смысл преобразовывать существующий код C ++ в Lua.

Вопрос:

Когда, если вообще, уместно ли взять полностью функциональный код C ++ и преобразовать его в язык сценариев, такой как Lua?

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

Ответы [ 2 ]

6 голосов
/ 13 июня 2010

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

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

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

Если у вас уже все работает, если вы не собираетесь пытаться улучшить его или разрешить расширения, я действительно не вижу причин для его удаления; все готово Это будет что-то иметь в виду для вашего следующего игрового движка.

Тем не менее, если вы еще не закончили, и это хобби / практика, я бы порекомендовал вам это сделать. Это будет ваше введение в добавление скриптовых возможностей в игровой движок. Когда вы приступаете к созданию более крупных и сложных двигателей, вам не нужно беспокоиться о чем-то новом.

2 голосов
/ 14 июня 2010

Когда, если вообще, уместно ли взять полностью функциональный код C ++ и преобразовать его в язык сценариев, такой как Lua?

Редко. Вот когда яя сделал это:

  • Я хотел изменить дизайн или добавить функциональность таким образом, чтобы я все равно потребовал пересмотреть код C ++.

  • Я нашел части кода C ++, которые менялись многократно.

  • Я полагал, что, перейдя с C ++ на Lua, я смогу сделать код в пять или десять раз меньше.

Первые две пули - это то, что может сделать каждый.Третий требует некоторого опыта.

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