Осуществить рефакторинг код C++ для использования языка сценариев?

Фон:

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

Вопрос:

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

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

5
задан Justin Ardini 13 June 2010 в 19:30
поделиться

2 ответа

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

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

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

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

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

6
ответ дан 14 December 2019 в 04:30
поделиться

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

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

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

  • Я обнаружил части кода C ++, которые постоянно менял.

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

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

2
ответ дан 14 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: