1

私は、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++
  • ガベージコレクション
  • セットアップのしやすさ:つまり、動作するソリューションが私のニーズに適合し、簡単な(要件に応じて移植可能な)コードを記述できる限り、これが動作するようにセットアップおよび構成するのが面倒な場合でも問題ありません。上記)そして私のユーザーにその苦痛を押し付けません。
4

3 に答える 3

2

Cocotronは、これまでの私のあらゆるニーズに合った、絶対に驚異的なソフトウェアです。ドキュメントは貧弱で、理解して機能させるのは難しいですが、それは非常に価値があり、非常に素晴らしいものです。

LLVM /blocks / libdispatchはまだ現実的ではないようですが、現実的かもしれませんが、Xcode 4に切り替えると、すべてが非常に現実的になると思います。それは本当にLLVMで動作するminGWに要約されます。

コアデータの実装もあります。すごい

于 2011-02-19T20:03:26.247 に答える
0

Objective-Cは、Appleが使用しているのと同じGCC Objective-Cコンパイラではない場合、GCCが利用可能なすべてのプラットフォームで利用できます。Cocoaとそれに付随するすべてのOSX/iOSの良さはそうではありません。これが、Objective-Cが非OSXプラットフォームで多くの取り込みを持たない主な理由であり、Cocoaのようなクロスクロス型の本当に堅牢なライブラリはありません。 -プラットホーム。GNUstepはCocoaに似たオープンソースの標準ライブラリですが、10年以上続いており、まだ完成していません。これは、Cocoaから遠く離れているため関連性がないOpenStepに基づいています。ココトロンと呼ばれるものもありますこれは最近のものですが、まだ不完全に見えます。Xcodeはおそらく唯一の優れたObjective-CIDEです。おそらくインターネットのどこかにあいまいなEclipseプラグインプロジェクトがあると確信していますが、Xcodeに匹敵することは決してありません。クロスプラットフォームのGUIアプリケーションのようなOSXが得られるとは思えません。最善の策は、クロスプラットフォームのGUI用にQTの周りにObjective-Cバインディングを作成することですが、そのためにはGCCコンパイラがObjective-C++をコンパイルできる必要があります。

于 2011-02-18T17:31:10.727 に答える
0

clang +ブロック(クロージャ)がlibdispatchを使用してLinuxで利用できるようになりました

sudo apt-get install libblocksruntime-dev

clang test.c -fblocks -lBlocksRuntime -o test

于 2013-12-30T04:54:36.620 に答える