4

そこで、MSDN で見つけたチュートリアルに従って、DirectX と C# を使用して、いわゆる「エンジン」を作成しました。私はこの種のこと (個人的には) が C# で行われているのをあまり見たことがなく、大多数が C/C++ を支持しているように見えるので、C# の使用が戻ってくるかどうか、または私が進むべきですか?

私が尋ねる理由は、チュートリアルがかなり突然停止したためです。そのため、何かの基礎がありますが、それほど手間をかけずに移植できるほど小さいです。私自身は C# が好きですが、他の人が知っていて私が知らない何かがあるかどうかはわかりません。

4

5 に答える 5

3

ピーター、主な理由はC ++がプラットフォームに依存しないことですが、MonoにもかかわらずC#は本当の意味ではありません(たとえば、ほとんどの携帯電話、ニンテンドーDSやPlaystation3でMono C#を実行できるとは思いません)。

とにかく、これらのエンジンのほとんどは、DirectXとOpenGL、および/またはソフトウェアレンダラーをサポートしているため、不可知論者になるようにゼロから設計されています。しかし、他の不可知論者のシステムと同様に、これには多くの労力とリソースが必要です。

今あなたが言うことから、あなたのエンジンはC#+ DirectXです。つまり、あなたのエンジンは現在PC、Xbox、Zune、そしていくつかのWindowのパワード携帯電話で動作するかもしれません。正直なところ、これは悪い範囲のプラットフォームではありません。したがって、この自由度に満足していて、C ++よりもC#を好む場合は、自分が持っているものに固執して、エンジンの改善に時間を費やすほうがよいでしょう。ただし、Microsoft以外でエンジンを実行する場合は、いつかC /C++にジャンプする必要があります。

私が話していることについては、私のチームのエンジンはXbox、PS3、Wii、PSP、PC、そしておそらく他のプラットフォームもサポートしていますが、私たちが努力すれば、15人のフルタイムのエンジニアが取り組んでいます。 ...あなたはそれが大きなコストであることがわかります。無料のプロジェクトでこのようなものが必要で、C ++を知っている場合は、OgreやIrrlichtなどの多くのオープンソースエンジンのいずれかを試すことができます。

于 2008-11-14T04:36:17.020 に答える
1

慣れ親しんだものにとどまることをお勧めします。C または C++ の使用は、独自の画像処理の実装やカスタム フィルターまたは変換の作成 (directx の使用目的に応じて) など、低レベルの機能を実行する場合にのみ考慮してください。

グラフィックアプリケーションには、計算集約的な側面がある場合があります。これらのほとんどは、C++ または C# から使用する場合と同じくらい高速な DirectX API で対処されています。

低レベル言語を検討する場合: ネイティブでより高速に実行できる画像処理を作成している場合、これは、カスタム エンコーダー/デコーダーの作成など、directx API によって提供されていない場合にのみ適用されます。この場合、別の言語でカスタム コンポーネントを作成し、それを C# アプリケーションに個別に読み込むことができます。もしあなたが C++ Intrinsics の使用を検討しているなら、CPU のプログラミングを可能にし、CUDA のような GPGPU API も見てみましょう。

于 2008-11-14T03:52:01.477 に答える
1

愛好家のゲーム開発者として、私は C++ よりも C# (SlimDX を呼び出すサードパーティ ライブラリを使用) を大いに好みます。はい、よく最適化された C++ で書かれたゲームは、よく最適化された C# で書かれた同じゲームよりもおそらくうまく動作します。しかし、C# を使用することで節約できる時間 (およそ 30 ~ 40% と推測しています) を使用してアルゴリズムを最適化し、同じ時間で C++ で記述した場合よりも C# ゲームを実際に高速に実行できます。

上で指摘したように、ほとんどの実用的な目的では、C# ゲームは Microsoft プラットフォームでのみ実行されるため、クロスプラットフォームの互換性の問題もあります。

考慮すべきもう 1 つの問題は、C# でアプリケーションを作成する場合、アプリケーションを実行するコンピューターに .Net Framework をインストールする必要があることです。これは、決して克服できない障害ではありませんが、アプリケーションをきれいに配布するのがやや面倒になる可能性があります。

于 2008-12-06T23:50:03.050 に答える
0

ゲームに c# を使用しているスタジオがいくつかあります。

また、XNA を見ることもできます。c# に移植されたインターネット上を飛んでいる quake3 エンジンのポートもあります。

それで大丈夫なはずです。

于 2008-11-14T03:52:48.917 に答える
0

C# に慣れていて、CPU に近い言語への切り替えを余儀なくされるパフォーマンスの問題がない場合は、変更する必要はないと思います。

ただし、将来の計画と、このエンジンをどこまで使用するかによっては、状況が劇的に変化し、C# が間違った選択になる可能性があります。しかし、残念なことに、今回だけはわかりません。知識に基づいた正しい推測を行うには、現在の実装と将来の計画について、より詳細な情報が必要です。

于 2008-11-14T03:53:21.430 に答える