TL; DR: Lua имеет накладные расходы, но при правильном использовании он незначителен и легко смягчается. Не используйте его для тяжелых математических операций или преобразования геометрии. Вы, вероятно, не увидите никаких проблем с производительностью, если будете использовать его для создания сценариев графического интерфейса.
Я сделал несколько базовых тестов производительности Lua как языка сценариев игры, и он чертовски быстр. Используя tolua ++ для привязки LuaJIT к моему игровому движку, я породил 2000 актеров, каждый из которых контролировался сценарием Lua, называемым каждым игровым циклом (с аргументом дельта-времени). У половины актеров был сценарий флокирования, а другая половина выполняла своего рода случайную прогулку (и стая их избегали).
Отключение компонента рендеринга дало мне чуть более 400 тиков в секунду на моем Opteron 170 (2x2,0 ГГц, хотя в то время мой двигатель был однопоточным). Я полагаю, что я мог бы выжать немного больше, чем это, если бы я копался и оптимизировал, возможно перенеся часть тяжелой работы обратно в C ++. Обновление 2000 актеров 400 раз в секунду было довольно впечатляющим и намного превзошло мои ожидания в то время.
Сейчас я использую Lua во всех своих проектах, и он на самом деле составляет довольно большую часть реального игрового кода (AI, макет / логика графического интерфейса, события / сообщения). Создание игр НАМНОГО веселее, когда вы можете быстро что-то изменить и протестировать без необходимости выходить, перекомпилировать и повторно инициализировать. Время от времени я сталкиваюсь с некоторыми проблемами с производительностью, но они легко решаются путем повторной реализации нарушающего кода в C ++ (а затем вызова его из Lua).
Хотя серверы EVE Online немного не по теме, они написаны почти полностью на Stackless Python (я полагаю, что они переносят большинство своих математических операций на библиотеку C ++), что значительно тяжелее, чем Lua, и, основываясь на моих личных исследованиях и нескольких доступных тесты, гораздо менее производительные, чем LuaJIT. Им удается обрабатывать более 30 тысяч одновременно работающих игроков без особых проблем. Конечно, у них есть тонна дорогого оборудования, на котором все это работает, но я полагаю, что большая часть затрат приходится на их кластер баз данных ...
Извинения за стену текста.