私は、OSXとiOS(Xcode 3.5 so、GCC)、Linux(GCC)、およびWindows(Vis Studio 2010)で実行されるC++を使用してほとんどのゲームエンジンを作成しました。オブジェクトのコレクションにstlベクトルを使用します。メッセージパッシングを実装します。エンジンはiOSプラットフォームでOpenGLを使用しており、最終的にはすべてのプラットフォームでOpenGLを使用し、WindowsではDirectXを使用する可能性があります。
私はC++を非常によく理解していますが、C++は本当に好きではありません。私はCプログラマーであり、1年前にObjective-Cを紹介した後、それが自分の仕事や考え方にとって理想的であることに気づきました。したがって、Objective-Cに切り替えることは私にとって大きな利点になります。残念ながら、OSX / Cocoaの美しい世界は、WindowsやLinuxの現実ではありませんか?
Cocoa / Apple/NeXTエバンジェリストがここで答えの傑作を私に提供すると確信しています
編集:
CocotronとGNUstepは2つのオプションのように見えます。GNUstepはより成熟していますが、ランタイムが必要になるなど、より多くの手荷物があるようです。
これらの要件を満たすことができるソリューションが必要です。
- すべてのプラットフォームでObjective-Cをコンパイル、実行、デバッグできる
- すべてのプラットフォーム(つまり、NSString、NSNumber ..)でCocoaAPI呼び出しを使用できます。
- エンドユーザーは、余分なものをインストールせずにアプリをインストールして実行できる必要があります。または、少なくとも、インストーラーは、GNUstepがランタイムを必要とするもの(ランタイムなど)を簡単かつ非普及的にインストールできる必要がありますが、Cocotronはそうではありません。
- 私が遭遇する可能性のある問題について説明します。たとえば、提供されているCocoaのものをXMLの解析に使用できますか?CFSocketはどうですか?CGはどうですか?ソリューションはどこで終わり、移植されていないOS固有のライブラリの領域に入りますか?
理想:
- すべてのプラットフォームでクロージャ(ブロック)をサポートできるため、非ネイティブプラットフォームで効率が低下した場合でも、GCDとlibdispatchが利用可能になったときに使用できます。
- 非ネイティブプラットフォームでの効率の悪い状況に要約された場合でも、コアデータ型のデータ管理を可能にするAPI(私はここで夢見ています)
- LLVMを使用する可能性のある将来を見据えたソリューションは、物事が進んでいる方法のようです。
必須ではありません:
- NSViewの描画などのGUI機能
- OSX以外のIDE機能
- Objective-C 2.0
- 目的-C++
- ガベージコレクション
- セットアップのしやすさ:つまり、動作するソリューションが私のニーズに適合し、簡単な(要件に応じて移植可能な)コードを記述できる限り、これが動作するようにセットアップおよび構成するのが面倒な場合でも問題ありません。上記)そして私のユーザーにその苦痛を押し付けません。