Какая стратегия должна использоваться при представлении C++ Lua

У меня нет понятия "идеального" языка программирования, потому что нет всего одной задачи, которая будет выполнена.

Различные задачи удовлетворяют различным языкам и парадигмам.

9
задан DaedalusFall 8 September 2009 в 19:44
поделиться

2 ответа

Одним из соображений является то, как вы планируете распределять потоки. Если вы хотите, например, запускать код для двух игровых объектов параллельно, тогда они действительно должны иметь свои собственные отдельные lua_States, чтобы они оба могли работать одновременно. (Конечно, это также означает, что они действительно не могут совместно использовать какое-либо состояние, кроме как через код C, где вам нужно помнить о безопасности потоков.)

2
ответ дан 4 December 2019 в 22:29
поделиться

Хотя LuaBind, безусловно, очень изящен и удобен, по мере роста вашего движка резко увеличится и время компиляции.

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

Поскольку вы делаете движок на основе компонентов (Хороший выбор, кстати), имеет смысл интегрировать скрипты как компонент объекта. Таким образом, обычно имеет смысл сделать каждый компонент сценария новой сопрограммой, которая выполняет поведение для каждого конкретного объекта. Вам не нужно слишком беспокоиться о памяти, состояния Lua очень легкие,

5
ответ дан 4 December 2019 в 22:29
поделиться
Другие вопросы по тегам:

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