Como acima, realmente,
Estou escrevendo um jogo baseado no Android no meu tempo livre (Android porque é gratuito e não tenho nenhuma aspiração real de fazer nada comercial).
A lógica do jogo vem de um modelo baseado em componentes muito típico, no qual as entidades existem e têm componentes anexados a elas e as mensagens são enviadas para lá e para cá, a fim de fazer as coisas acontecerem.
Obviamente, a camada para executar realmente é fina e, se eu escrevesse uma versão para iPhone deste aplicativo, teria que reescrever o renderizador e o driver principal (deste sistema baseado em componentes) no Objetivo C.
As entidades são apenas arquivos simples que determinam os nomes dos componentes a serem adicionados e os componentes são objetos simples e de propósito único que contêm a lógica da entidade.
Agora, se eu escrever toda a lógica desses componentes em Java, teria que reescrevê-los no Objective C se decidisse fazer uma porta para o iPhone. Como a maior parte da lógica do aplicativo está contida nesses componentes, eles seriam, em um mundo ideal, escritos em alguma linguagem / script / DSL independente de plataforma que poderia ser carregada no aplicativo em qualquer plataforma.
No entanto, fui levado a acreditar que este não é um mundo ideal e que o desempenho de Lua etc. em dispositivos móveis ainda não está preparado, que a sobrecarga é excessiva e que eu teria problemas mais tarde se eu foi por esse caminho?
Este é realmente o caso? Obviamente, essa é apenas uma pergunta hipotética. Fico feliz em escrevê-las todas em Java, pois é simples e fácil fazer as coisas acontecerem, mas digo que realmente gosto de fazer esse jogo (improvável, dado o quanto atualmente não gosto de ter que lidar com todos esses dispositivos móveis diferentes) e eu queria criar um jogo comercialmente viável - eu usaria Lua ou aceitaria o sucesso quando se tratasse de portar e apenas reescrever todo o código?
A implementação C de Lua foi projetada especificamente para ser executada em dispositivos incorporados. É pequeno e rápido (para uma linguagem de script). Eu teria pensado que era bom para pelo menos tarefas leves.
fonte
Certo. É muito improvável que a lógica de script seja seu gargalo (você realmente criará um perfil com Shark ou Instruments, certo?). Eu trabalhei na versão para iPhone do Marooned, que usava muito Lua para a lógica do jogo. Eu fiz muitos ajustes de desempenho, e basicamente Lua foi de 0%.
(Lua era uma área cinzenta quando lançamos o Marooned, mas desde então foi oficialmente abençoada pelo desenvolvimento do iOS.)
fonte
Consulte http://code.google.com/p/android-scripting/ para obter a maneira recomendada de criar scripts no Android. Lua ainda não se encaixa muito bem na plataforma Android, pois requer C. É claro que você pode usar o NDK, mas isso não é uma bala de prata.
fonte
Depende um pouco de quanto da lógica do seu jogo está incorporada nos scripts. Em geral, o LUA é usado como cola de alto nível, mas muito do trabalho pesado ocorre através de C (++). Sim, o LUA é rápido no que diz respeito às linguagens de script - você ainda está olhando para uma desaceleração em comparação com os idiomas nativos de cerca de 30 a 50 vezes, por isso depende realmente de quanto está acontecendo no LUA.
fonte
Você pode escrever todo o jogo em Lua e evitar Java / ObjectiveC / C / C ++ completamente.
Para o desenvolvimento de plataforma cruzada, use Corona . É gratuito para uso até que você planeje enviar para a App Store ou Android Marketplace.
Se você deseja segmentar o iPhone / Pad / Touch, dê uma olhada na cera .
Como nota lateral @Sean Edwards: estive envolvido no envio de cinco títulos para Nintendo DS, Wii, Sony PSP e Xbox360, que usavam o mesmo mecanismo e foram roteirizados em Lua. É amplamente utilizado em consoles e celulares.
fonte