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?