Comme ci-dessus vraiment,
J'écris un jeu basé sur Android pendant mon temps libre (android parce que c'est gratuit et que je n'ai aucune aspiration réelle à faire de la publicité).
La logique de jeu découle d'un modèle très typique basé sur des composants, dans lequel des entités sont associées à des composants et des messages sont envoyés pour faire avancer les choses.
Il est évident que la couche utilisée pour effectuer cette tâche est mince et que si je devais écrire une version iPhone de cette application, je devrais réécrire le moteur de rendu et le pilote principal (du système à base de ce composant) dans Objective C.
Les entités ne sont que des fichiers plats déterminant les noms des composants à ajouter, et les composants eux-mêmes sont de simples objets à usage unique contenant la logique de l'entité.
Maintenant, si j'écris toute la logique de ces composants en Java, je devrais les réécrire sur Objective C si je décidais de faire un port iPhone. Comme la majeure partie de la logique de l'application est contenue dans ces composants, ils seraient, dans un monde idéal, écrits dans un langage / script / DSL indépendant de la plate-forme, qui pourrait ensuite simplement être chargé dans l'application, sur n'importe quelle plate-forme.
J'ai été amené à croire cependant que le monde n'est pas idéal et que les performances de Lua, etc. sur les appareils mobiles ne sont toujours pas à la hauteur, que les frais généraux sont trop importants et que j'aurais des problèmes plus tard si je est allé dans cette voie?
Est-ce vraiment le cas? Évidemment, il s’agit là d’une question hypothétique. Je suis heureux de pouvoir les écrire tous en Java, car c’est simple et facile de faire décoller les choses, mais je me plais à faire ce jeu (improbable, vu à quel point je n’aime pas avoir à traiter avec tous ces différents appareils mobiles) et je voulais créer un jeu commercialement viable - utiliserais-je Lua ou prendrais-je juste le bon coup en ce qui concerne le portage et réécrire tout le code?
L'implémentation C de Lua est spécialement conçue pour fonctionner sur des périphériques intégrés. C'est petit et rapide (pour un langage de script). J'aurais pensé que c'était bien pour au moins des tâches légères.
la source
Sûr. Il est très peu probable que la logique de script soit votre goulet d’étranglement (vous profilerez réellement avec Shark ou Instruments, non?). J'ai travaillé sur la version iPhone de Marooned, qui utilisait beaucoup de Lua pour la logique de jeu. J'ai fait beaucoup de réglages, et Lua était à 0%.
(Lua était une zone grise lorsque nous avons publié Marooned, mais depuis, il a été officiellement béni pour le développement iOS.)
la source
Consultez la page http://code.google.com/p/android-scripting/ pour connaître la méthode recommandée pour effectuer des scripts sur Android. Lua ne convient toujours pas très bien sur la plate-forme Android, car elle nécessite C, bien sûr. Vous pouvez utiliser le NDK, mais ce n’est pas une solution miracle.
la source
Cela dépend un peu de la part de votre logique de jeu intégrée dans les scripts. En général, LUA est utilisé comme colle de haut niveau, mais une grande partie du travail difficile se fait par C (++). Oui, LUA est rapide en ce qui concerne les langages de script. Vous observez toujours un ralentissement par rapport aux langues natives de 30 à 50 fois environ, donc tout dépend de ce qui se passe dans LUA.
la source
Vous pouvez réellement écrire votre jeu entier en Lua et éviter complètement Java / ObjectiveC / C / C ++.
Pour le développement multi-plateformes, utilisez Corona . Son utilisation est gratuite jusqu'à ce que vous prévoyiez d'expédier sur l'App Store ou Android Marketplace.
Si vous souhaitez cibler l'iPhone / Pad / Touch, jetez un coup d'œil à la cire .
En guise de remarque @Sean Edwards: j'ai participé à la livraison de cinq titres destinés à la Nintendo DS, à la Wii, à la Sony PSP et à la Xbox360, qui utilisaient tous le même moteur et dont le script était écrit en Lua. Il est largement utilisé sur les consoles et les mobiles.
la source