Schreiben Sie es in C / C ++ - das ist das Größte, was Sie tun können. Beide Plattformen unterstützen C und C ++ auf unterschiedliche Weise. Unter Android verwenden Sie das NDK. Auf dem iPhone kann es zusammen mit dem Objective-C-Code kompiliert werden.
Sie müssen einige Zeit investieren, um das Gerüst um Ihren C / C ++ - Code für jede Plattform aufzubauen. Sie sollten in diesem Bereich ziemlich allgemein sein können, da es wirklich nur darum geht, die betriebssystemspezifische Funktionalität in Ihren Spielcode einzubinden. Sparen Sie in diesem Bereich nicht, es sei denn, Sie planen nur ein plattformübergreifendes Projekt oder es macht Ihnen nichts aus, das Rad für jedes Projekt neu zu erfinden.
Verwenden Sie OpenGL ES - beide Plattformen unterstützen OpenGL ES. Sich einen Vorteil verschaffen. Dadurch wird die Menge an Code minimiert, die Sie neu schreiben müssen. Sie werden immer noch einige Unterschiede auf jeder Plattform haben, aber insgesamt funktioniert der größte Teil Ihres Codes auf beiden.
Vermeiden Sie plattform- / sprachspezifische APIs - dies sollte selbstverständlich sein, aber es ist einfach, die Java-Auflistungsklassen zu verwenden, während Sie in Java arbeiten. Wenn Sie die erste Regel oben befolgt haben, werden Sie in Java natürlich nicht viel tun. Gleiches gilt für den umgekehrten Weg: So schön die Foundation-Klassen in iOS sind, wenn Sie auf eine andere Plattform portieren möchten, vermeiden Sie sie.
Wie Sie sehen, gibt es viele Dinge, über die Sie sich Sorgen machen müssen, wenn Sie plattformübergreifend arbeiten. Wenn Sie ein kleiner Indie-Entwickler sind, ist es möglicherweise nicht einmal Ihre Zeit wert. Sie müssen bewerten, ob Sie wirklich Ihren eigenen Weg bahnen möchten, damit Sie auf mehrere Plattformen zielen können. Es kann sich lohnen, das Angebot jeder Plattform zu nutzen, um einen schnelleren Entwicklungszyklus zu erreichen.
Viel Glück!