Como arriba realmente,
Estoy escribiendo un juego basado en Android en mi tiempo libre (Android porque es gratis y no tengo aspiraciones reales de hacer nada comercial).
La lógica del juego proviene de un modelo basado en componentes muy típico por el cual las entidades existen y tienen componentes unidos a ellas y se envían mensajes de un lado a otro para que las cosas sucedan.
Obviamente, la capa para el rendimiento real es delgada, y si tuviera que escribir una versión para iPhone de esta aplicación, tendría que volver a escribir el renderizador y el controlador central (de este sistema basado en componentes) en el Objetivo C.
Las entidades son solo archivos planos que determinan los nombres de los componentes que se agregarán, y los componentes en sí mismos son objetos simples de un solo propósito que contienen la lógica de la entidad.
Ahora, si escribo toda la lógica para esos componentes en Java, entonces tendría que volver a escribirlos en el Objetivo C si decidiera hacer un puerto para iPhone. Como la mayor parte de la lógica de la aplicación está contenida dentro de estos componentes, en un mundo ideal, se escribirían en un lenguaje / script / DSL independiente de la plataforma que luego podría cargarse en la aplicación en cualquier plataforma.
Sin embargo, me han hecho creer que este no es un mundo ideal, y que el rendimiento de Lua, etc. en dispositivos móviles todavía no está a la altura, que la sobrecarga es demasiado y que me vería en problemas más tarde si fue por esa ruta?
¿Es este realmente el caso? Obviamente, esta es solo una pregunta hipotética, estoy feliz de escribirlos todos en Java, ya que es simple y fácil despegar, pero digamos que realmente disfruto haciendo este juego (poco probable, dado lo mucho que no me gusta tener que lidiar actualmente) con todos esos dispositivos móviles diferentes) y quería hacer un juego comercialmente viable: ¿usaría Lua o simplemente recibiría el golpe cuando se trata de portar y volver a escribir todo el código?