C ++でモバイルプラットフォーム用のゲームを開発できますか?


16

私はC ++とCをよく理解しており、C ++を使用してAAAゲームを開発した経験もあります。今、私は恥知らずにもiOSまたはAndroidのモバイルゲーム開発に飛び込むことを考えています。残念ながら、私はObjective-Cとjavaを知らず、またそれを学ぶ勇気もありません。したがって、前述の理由のように、JAVAとObjective-Cの単一のステートメントを使用せずにC ++でモバイル開発を行う可能性はありますか?

回答:


13

iPhoneアプリ用にいくつかの目標Cを作成する必要があります。そうは言っても、obj-cの非常に薄い層を記述してから、CまたはC ++でゲームコードをすべて実行できます。

AndroidでNDKを検索します。私は経験がありませんが、ネイティブSDKであることが約束されているため、ほとんどのことをCまたはC ++で記述できるはずです。

そうは言っても、あなたは人為的に言語の壁で自分自身を制限しています。iOSでは、OSレイヤー(GameCenter、ソーシャルプラットフォームなど)で何かをしたい場合、または何らかのミドルウェアを使用したい場合、おそらく客観的なC APIに直面するでしょう。

私は感情をある程度理解できます。特にC ++は巨大な言語です。しかし、obj-cは大きくありません。これはCへのボルトであるため(基本はおなじみです)、いくつかの追加事項が追加されています。C ++ほど複雑でも深いものでもありません。


2
Android NDKを使用すると、複数のプラットフォームでコードをコンパイルする必要があり、複数のビルドの問題が発生する可能性があるため、「どこにでもデプロイできる」という利点を残すことに注意してください。NDKは、アプリケーション全体を記述するためではなく、JavaコードからC関数を呼び出すために使用されることを意図しています(まだ可能です)。
FxIII

1
また、GoogleはNDKを完全なゲームの実装に使用しないことを明示的に述べていると思います。また、Java構文はC ++とほぼ同じであり、慣れるまでに数日かかるはずです。あなたがお金を稼ぎたいなら、おそらくiOSゲームに集中すべきです。
ネイラー

Unity#3Dについて何と言いますか、C#を学ぶなら
ジェームズベルン

1
Android 2.3以降、Googleはネイティブアクティビティを追加しました。これにより、完全なアプリを100%C ++で作成できます(主にゲーム用)。
5ound

特に複数のプラットフォームに展開する場合は、Unity3Dをお勧めします。C ++は、C ++を既に知っている場合、習得するのはそれほど難しくありません。また、フォーラムのコンテンツは、多くのサンプルコードで一流です(ほとんどのコードはJavaScriptにあります)。
ダグ。マクファーレン

7

私はAndroid用C ++でかなり長い間ゲームを書いてきました。私は数週間に一度Javaコードに触れる必要がありますが、ほとんどの場合、NDKに付属しているサンプルアプリの1つを変更し、それ以外の場合はc ++を作成しました。私も少しJNIの作業をしなければなりませんでしたが、決して楽しいことではありません。しかし、私は長年のJavaの経験を持っているため、JavaまたはJNIを記述しなくても、特に私を遅くすることはありません。

私のゲームは、テストデバイスで実行するのと同じように、Linuxボックスでも実行します。Linuxバージョンは純粋なC ++であり、この作業を行うために経験したトラブルは、ゲームに繰り返し変更を加えるたびに報われます。

私のプロジェクトには、836行のJavaコード、331行の恐ろしいjni Cコード、約40k行のC ++コードがあります。


自動化された方法で各ターゲットをビルドできるビルドシステムを使用していますか?クロスプラットフォームビルドを許可するためにCMakeを使用してきましたが、ndk-buildと統合できるかどうか疑問に思っていました。
マーティンフット

他のNDKプロジェクトがCMakeを使用しているのを見てきました。
notlesh

4

また、c ++を使用してiPhone、Android、Win Mobile、Badaなどの幅広いデバイス向けのモバイルアプリケーションを作成できるMarmaladeもあります。


2

私はしばらくの間cocos2d-xを使用していますが、これはc ++に基づいたゲームエンジンです。(実際にはcocos2d-iphoneのC ++ポートです)。このエンジンを使用すると、Windowsでコードを簡単に実行およびテストし、iPhone / Androidエクスポート用に同じコードをコンパイルできます。


また、現在バダが含まれており、一部の人々はマーマレードの上でそれを使用しています
アンディ・デント

1

本当にC ++だけが必要な場合は、 Marmaladeがいいかもしれません

ただし、完全な機能を使用するには、少なくともいくつかのObjective-C (またはjava、ただし「完全な機能」について話している)を使用する必要があります。しかし、Objective-Cの薄層を使用すると、多くのことができるので、Xcodeを使用したiOS開発を検討することをお勧めします。


MacでXcodeを見る場合は、そうでない場合は試してください代わりにluaでコロナを

iPhoneで実行するC ++コードを最大化する方法は多数あります。AMACアプリストア上のフリープログラムは、 Objective-Cのベースの製品でのC ++の使用を高めるのを助けることができます:

これはObjective-C ++ Preprocessor Headersと呼ばれます

これにより、Objective-CではなくC ++でさらに多くのことができます。

iOSプログラミング:


-3

はい、C ++プログラミング言語を使用してモバイルゲームを開発できます。C ++ゲームアプリケーションは、常に同じハードウェア上でJavaよりも少しキレイに感じます。したがって、C ++の専門家であり、Androidゲームの開発に興味がある場合は、Javaでのプログラミングと同じように簡単でゼロコストです。

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