Android開発者として、iPhoneに移植する際に何に注意すべきですか?


9

Androidゲーム開発者として、ゲームをiPhoneにクロスプラットフォーム化したい場合、ゲームを開発する際に何に注意すべきですか?これらのモバイルプラットフォームの両方への移植に関する戦略、ヒントなどはありますか?


コードの大部分はどの言語で書かれていますか?Java?C / C ++?
Jason Kozak

Android(と私のアプリ)はJavaで書かれています。iPhoneはObjective Cのです
ブライアン・デニー

回答:


12

C / C ++で書いてください -これがあなたができる最大のことです。どちらのプラットフォームもCとC ++をサポートしていますが、方法は異なります。Androidでは、NDKを使用します。iPhoneでは、Objective-Cコードとともにコンパイルできます。

各プラットフォームのC / C ++コードの周りに足場を構築するために、ある程度の時間を費やす必要があります。これは、OS固有の機能をゲームコードに接続するだけなので、この領域ではかなり一般的になるはずです。クロスプラットフォームプロジェクトを1つだけ実行することを計画している場合や、実行するすべてのプロジェクトのホイールを再発明することを気にしない場合を除き、この領域を軽視しないでください。

OpenGL ESを使用します -どちらのプラットフォームもOpenGL ESをサポートしています。それを活用してください。これにより、書き直す必要があるコードの量を最小限に抑えることができます。各プラットフォームでいくつかの違いはありますが、全体的なコードの大部分は両方で動作します。

プラットフォーム/言語固有のAPIは避けてください。これは言うまでもありませんが、Javaで作業しているときにJavaコレクションクラスを使用するのは簡単です。もちろん、上記の最初のルールに従えば、Javaで多くのことを行うことはできません。同じことが逆の場合にも言えます-FoundationクラスがiOSにあるのと同じように、別のプラットフォームに移植したい場合は避けてください。

ご覧のように、クロスプラットフォーム化することで気になることがたくさんあります。あなたが小さなインディー開発者であれば、それはあなたの時間の価値さえないかもしれません。複数のプラットフォームをターゲットにできるように、本当に独自の道を切り開くかどうかを評価する必要があります。開発サイクルを高速化するために、各プラットフォームが提供する機能を利用する価値があるかもしれません。

幸運を!


1
c ++コードの周りで足場を組むことによって、あなたが何を意味するかについて詳しく説明してもらえますか。可能であれば、何を取得しているのかよくわからないので、それが何を伴うかを示すチュートリアルをリンクしていただけませんか。
Skeith 2012

5

これは、Java> Objective-Cからの非常に困難なプロセスになります。

データ駆動型
主にデータ駆動のゲームを構築します。これはそれ自体で意味があると思いますが、この方向性は、完全に再実装しなければならない作業の削減につながります。

高とタイト
物事を非常に小さく、モジュール化します。これは、コンポーネントを簡単に取得して実装し、テストして繰り返すことができれば、移植がはるかに簡単になるためです。

契約作業
カードを正しくプレイすれば、あなたがこれを処理してくれる誰かを知っているかもしれません。あなたがiPhone開発者と親友なら、彼/彼女のいくつかの博士を買うことができるかもしれません。コードを移行するのに役立つ唐辛子。

マルチプラットフォームエンジンを使用する
プロジェクトがすでに動いている場合は、あまり意味がありません。しかし、プロジェクトをやろうとしている場合、他のプラットフォームに移植されることが確実にわかっている場合は、既存のテクノロジーを利用して世界を統合することは価値があります。Unity3Dは、Unity 3.0でAndroidサポートを取得します。

変換/ shudder /ツール
私が最も気に入っていないのは、ある種の変換ツールを使用して、少なくともJava> Cからモデルを変換できるということです。


3

iPhoneへの移植を考えていて、ゲームがまだ開発中の場合は、C ++に切り替えます(まだ行っていない場合)。時が来れば、コードの移植性が大幅に向上します。


1

私の2セントをこのスレッドに追加します-他の多くの人がここで言ったように、クロスプラットフォーム言語でゲームを書くことを検討してください...しかしC#を検討してください!これは強力な言語であり、管理され、C ++にはないゲーム開発に役立つ多くの優れた機能を提供します。MonoGameと呼ばれる優れたライブラリは、あらゆる種類のプラットフォームで実行されるXNAに似ています。バージョン3.0以降、この記事の執筆時点では、本格的なゲームを作成してすべてのモバイルプラットフォームに簡単に移植できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.