En tant que développeur Android, que dois-je garder à l'esprit pour le portage sur iPhone?


9

En tant que développeur de jeux Android, que dois-je garder à l'esprit lors du développement de mon jeu si je voulais un jour multiplier le jeu sur l'iPhone? Avez-vous des stratégies, des conseils, etc. sur le portage vers ces deux plates-formes mobiles?


Dans quelle langue la plupart de votre code est-il écrit? Java? C / C ++?
Jason Kozak

Android (et mon application) est écrit en Java. iPhone is Objective C
Bryan Denny

Réponses:


12

Écrivez-le en C / C ++ - c'est la plus grande chose que vous puissiez faire. Les deux plates-formes prennent en charge C et C ++, bien que de manières différentes. Sur Android, vous utiliserez le NDK. Sur l'iPhone, il peut être compilé avec le code Objective-C.

Vous devrez investir un peu de temps à construire l'échafaudage autour de votre code C / C ++ pour chaque plate-forme. Vous devriez pouvoir être assez générique dans ce domaine, car il s'agit simplement de connecter les fonctionnalités spécifiques du système d'exploitation à votre code de jeu. Ne lésinez pas dans ce domaine, sauf si vous prévoyez de faire un seul projet multiplateforme ou que cela ne vous dérange pas de réinventer la roue pour chaque projet que vous faites.

Utilisez OpenGL ES - les deux plates-formes prennent en charge OpenGL ES. Prends le à ton avantage. Cela minimisera la quantité de code que vous devez réécrire. Vous aurez toujours quelques différences sur chaque plate-forme, mais dans l'ensemble, la plupart de votre code fonctionnera sur les deux.

Évitez les API spécifiques à la plate-forme / au langage - cela devrait aller de soi, mais il est facile d'être aspiré à utiliser les classes de collection Java pendant que vous travaillez en Java. Bien sûr, si vous avez suivi la première règle ci-dessus, vous ne ferez pas grand-chose en Java. Il en va de même dans la direction opposée - aussi agréable que les classes Foundation soient dans iOS, si vous voulez porter sur une autre plate-forme, évitez-les.

Comme vous pouvez le voir, il y a beaucoup de choses à craindre en allant sur plusieurs plateformes. Si vous êtes un petit développeur indépendant, cela ne vaut peut-être même pas la peine. Vous devrez évaluer si vous voulez vraiment tracer votre propre piste afin de pouvoir cibler plusieurs plates-formes. Il peut être utile de profiter de ce que chaque plateforme a à offrir pour accélérer le cycle de développement.

Bonne chance!


1
Pourriez-vous élaborer sur ce que vous entendez par échafaudage autour du code c ++. Si possible, pourriez-vous lier un tutoriel montrant ce que cela impliquerait, car je ne comprends pas vraiment où vous en êtes.
Skeith

5

Ce sera un processus très pénible allant de Java> Objective-C.

Piloté par les données
Créez un jeu qui est largement basé sur les données. Je pense que cela parle de lui-même, mais cette direction conduit à moins de travail que vous devez complètement réimplémenter.

Haute et étroite
Gardez les choses très petites et modulaires. Je dis cela parce qu'il sera beaucoup plus facile de porter si vous pouvez facilement prendre un composant et l'implémenter, le tester et le répéter.

Travail à forfait
Jouez bien vos cartes et vous pourriez connaître quelqu'un qui peut s'en occuper pour vous. Si vous êtes le meilleur ami d'un développeur iPhone, vous pourrez peut-être lui acheter du dr. poivre pour faciliter la migration de votre code.

Utilisez un moteur multiplateforme
Si vous avez déjà un projet en mouvement, cela n'a pas beaucoup de sens. Mais si vous êtes sur le point de réaliser un projet, dont vous savez absolument qu'il sera porté sur d'autres plates-formes, il pourrait être utile de tirer parti de la technologie existante pour vous aider à assembler votre monde. Unity3D bénéficiera du support Android avec Unity 3.0.

Conversion / frisson / outil
Et ma recommandation la moins préférée est que vous puissiez utiliser une sorte d'outil de conversion pour au moins convertir vos modèles à partir de Java> C ... Mais ... je ne partage pas cela.


3

Si vous envisagez de porter sur l'iPhone et que votre jeu est encore en développement, passez en C ++ si vous ne l'avez pas déjà fait. Cela rendra votre code beaucoup plus portable le moment venu.


1

Je vais ajouter mes deux cents à ce fil - envisagez d'écrire votre jeu dans un langage multiplateforme comme beaucoup d'autres l'ont dit ici ... mais pensez à C #! C'est un langage puissant qui est géré et fournit de nombreuses fonctionnalités intéressantes que le C ++ ne peut pas aider au développement de jeux - et une grande bibliothèque connue sous le nom de MonoGame existe pour lui, qui s'apparente à XNA qui fonctionne sur toutes sortes de plateformes. À partir de la version 3.0, au moment d'écrire ces lignes, il est possible d'écrire des jeux à part entière et de les porter sur toutes les plates-formes mobiles en toute simplicité.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.