É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!