Как на самом деле выше,
В свое свободное время я пишу игру для Android (андроид, потому что он бесплатный, и у меня нет никаких реальных намерений делать что-то коммерческое).
Логика игры основана на очень типичной компонентной модели, в которой сущности существуют и к ним прикреплены компоненты, а сообщения отправляются туда и обратно для того, чтобы что-то произошло.
Очевидно, что слой для фактического выполнения является тонким, и если бы я должен был написать версию этого приложения для iPhone, мне пришлось бы переписать рендер и драйвер ядра (этой системы на основе компонентов) в Objective C.
Сущности - это просто плоские файлы, определяющие имена добавляемых компонентов, а сами компоненты представляют собой простые, универсальные объекты, содержащие логику для сущности.
Теперь, если я напишу всю логику для этих компонентов в Java, то мне придется переписать их в Objective C, если я решу сделать порт для iPhone. Поскольку основная часть логики приложения содержится в этих компонентах, в идеальном случае они будут написаны на не зависящем от платформы языке / script / DSL, который затем может быть просто загружен в приложение на любой платформе.
Однако я был убежден, что это не идеальный мир, и что производительность Lua и т. Д. На мобильных устройствах все еще не до конца понятна, что накладные расходы слишком велики и что я столкнусь с проблемами позже, если я пошел по этому маршруту?
Это действительно так? Очевидно, что это всего лишь гипотетический вопрос, я рад написать их все на Java, так как это просто и легко начать работу, но скажу, что мне действительно нравится создавать эту игру (маловероятно, учитывая, насколько я в настоящее время не люблю иметь дело с со всеми этими различными мобильными устройствами) и я хотел сделать коммерчески жизнеспособную игру - буду ли я использовать Lua или просто получу удар, когда дело доходит до портирования, и просто переписать весь код?
Lua's C implementation is specifically designed to run on embedded devices. It's small and fast (for a scripting language). I would have thought it was fine for at least light tasks.
источник
Sure. Scripting logic is highly unlikely to be your bottleneck (you will actually profile with Shark or Instruments, right?). I worked on the iPhone version of Marooned, which used a lot of Lua for game logic. I did a lot of performance tuning, and basically Lua was 0%.
(Lua was a grey area when we released Marooned, but it’s since been officially blessed for iOS development.)
источник
See http://code.google.com/p/android-scripting/ for the recommended way of doing scripting on Android. Lua still doesn't fit very well on the Android platform, since it requires C. Of course, you could use the NDK, but that is no silver bullet.
источник
It does depend a bit how much of your game logic is embedded in scripts. In general LUA is used as high level glue but a lot of the grunt work happens through C(++). Yes, LUA is fast as far as scripting languages go - your still looking at a slowdown compared to native languages of about 30 to 50 times, so it really depends how much is happening in LUA.
источник
You can actually write your entire game in Lua and avoid Java/ObjectiveC/C/C++ altogether.
For cross platform development use Corona. Its free to use until you plan to ship to the App Store or Android Marketplace.
If you want to target the iPhone/Pad/Touch take a look at wax.
Just as a side note @Sean Edwards: I've been involved in shipping five titles targeting Nintendo DS, Wii, Sony PSP, and Xbox360, all of which used the same engine and were scripted in Lua. Its widely used on consoles and mobiles.
источник