C#にはゲーム開発の未来がありますか?


18

私は最近、MMO MinecraftがJavaを搭載していることを、CVG.co.ukの最近のインタビューで、2人の元同僚と現在競合している同僚とのコラボレーションについて学びました。インタビューでは、Minecraftの創設者はJavaコーダーであり、彼はCまたはC ++コーダーであるため、お互いに互換性がないと率直に言っています。したがって、将来のプロジェクトで協力することは困難です。

これは、Javaがそれを実現できたらと考えました。ゲームや主流のゲーム開発に関する限り、MSの非常に人気のあるC#言語と.Netプラットフォームの将来はどうなりますか?



3
必要なパフォーマンスについてはすべてです。Minecraftはマネージ言語で大丈夫ですが、ハイエンドのグラフィックゲームの場合は、CまたはC ++または他のネイティブ言語が好まれます。

19
Minecraftは実際にはMMOではありません。
-DeadMG

3
@ Guillaume86:ジッタされたコードは現在、ネイティブコードよりも優れている可能性があり、Jitsは常に改善されています。また、マネージ言語は、はるかに堅牢なプログラムを作成します。だから、最後にC ++は、それのパフォーマンス上の利点を失い、(長い開発期間と多くのコストを意味する)で堅牢なプログラムを記述するのは難しいかなりある
マーティン

4
JITは、厳密に最適化および調整された内部ループではなく、不十分な記述のネイティブコードに勝つことができます。C#を使用する場合でも、本当に必要な場合は、C / C ++でこれらの機密セグメントを作成するオプションがあります。
-coderanger

回答:


22

XNAをチェックアウトする必要があります。Windows、Xbox 360、およびWindows Mobile 7向けのゲームを構築するためのプラットフォーム。すべてC#および.NETで。


11

私はプロのゲーム開発に5年以上携わっています。ほとんどの場合、私はほとんど独占的にC#を使用しました。

一般的なC#および.NETスタックは、サーバー側の技術にとって非常に優れています。私はC#で書かれたサーバーで4つ以上のMMOゲームに取り組んできました。また、Unity3Dが人気を博しているため、多くのブラウザーおよびモバイルゲームにはC#が必要です。XNAフレームワークを忘れないでください。これはAAAコンソールタイトルの選択エンジンではありませんが、XNAフレームワークで作成された多くの優れたゲームがあり、現在作成中の多くのものがあります。

全体的に、C#にはゲーム開発の未来があります。


それは古い質問ですが、一つのことが気になります。「サーバー側の技術」-それはどういう意味ですか?.NET Frameworkを使用して一部のWindowsサーバーで実行されているWindowsServiceですか?サーバーはc ++で作成され、Unix OSで実行されていると常に考えていました。私はちょうど興味がありました
マーシャル

うん、まさにそれ。このサイトであるAFAIKを実行しているサーバーを含め、Windows上で実行されているサーバーは多数あります。
ネバーマインド

私に戻ってきてくれてありがとう。明確にするために-「Windowsでの実行」は、ヘッドレスWindowsサービスまたはWinFormsのようなプログラム(configが組み込まれているなど)ですか?
マーシャル

ヘッドレスサービスは通常、より良いアイデアですが、コンソールアプリケーションを実行するのを妨げるものは何もありません。または、GUIを使用するサーバーが誰もいないことを除いて、GUIでもあります。
ネバーマインド

10

前述したように、MonoはC#を複数のプラットフォームにもたらします。同じ領域に、Co、DevIL、FreeGLUT、GLFW、GLU、ODE、OpenAl、OpenGL、PhysicsFS、SDL、およびWGLへのアクセスを可能にする、Monoおよび.NET用のマルチプラットフォームライブラリであるTaoがあります。機能に関しては、XNA(基本的なエンジンコンポーネントを開発者に直接提供する)ほど堅牢ではないことは明らかです。しかし、それは非常に強力です。

そのため、Microsoftが制御するOSとハードウェアを超えるクロスプラットフォームは間違いなく可能です。ただ、まだ多くの人気のあるインディーズゲームがこの能力を利用しているわけではありません。

既に述べたように、XNAとC#を組み合わせることで、独立した開発者は360、PC、およびWindows Phone 7に公開できます。

全体的に見て、C#はエンジン/ゲーム言語としてゲーム開発で活気があります。

ツール言語として、あらゆる場所で使用されています。私はEA、THQ、そして今ではすべてC#を使用するArkadium用のツールを構築しました。


5

C#にはゲーム開発の未来があるだけでなく、現在もあります。XNAを使用して開発された最近リリースされた(そしてよく売れている)Magickaをご覧ください。また、受賞したDream.Build.Playエントリもご覧ください。C#は、ゲームを作成するための実行可能な方法です(現時点では、すべてのゲームに適しているとは思いませんが)。

時間が経つにつれて、コンピューターゲーム業界で人気が高まることがわかりますが、どの時点でもC#への突然の移行は期待していません。


4

Javaは常に非常に汎用性の高い言語であり、単純なWebベースのゲーム(Javaプラグイン/キャンバスプラグインを備えたGWT)から完全な3Dビースト(JMonkeyをチェックアウト)まで、人々がゲームをコーディングする能力が常にありました。そのため、Javaがそのようなことを行うことができるという事実はC#のキラーとは言えません。ほとんどの人がJavaが既にそれを行えることを知っているからです。

ただし、C#はWindows、Windowsモバイル、およびXboxとJavaよりもはるかに優れているため、C#は引き続き人気があります(実際、すべてのゲーム開発者がターゲットを気にしているため、Javaのクロスプラットフォームの利点はほとんど失われています)。また、ゲーム開発の観点から実際に離陸したXNAを入手しました。

そのため、Javaは、だれかがその道を進みたいと思うなら、ゲーム開発のための完全に良いプラットフォームですが、確かにC#や.NETのキラーではありません。


4

Unity 3Dをご覧ください。高性能3DエンジンでのC#(およびJavaScript、およびBoo)スクリプト。

XNAをミックスに追加すると、ゲーム開発にC#を使用するための優れたプラットフォームがいくつか見られます。


UnityにはWebプレーヤーもあるため、ブラウザーで再生できます。プラグインには、フラッシュやJavaのような大きな市場への浸透はありませんが、可能です。
マイケルコールマン


1

はい、C#にはXNAフレームワークの将来があります。大半はので速度がC ++を好むが、C#はないことはもう遅いです...


2
それはまったく遅くありません。C ++の速度の約70%を超えることはめったにありません。
ノルドリン

4
C#のCPUバウンド操作は非常に高速であり、若干のパフォーマンスヒットを犠牲にしてコードの安全性を大幅に改善する追加のチェックを行いますが、メモリ消費と管理においてC ++よりもはるかに悪いです。C#の方がはるかに簡単でリークが少ない傾向がありますが、GCのパフォーマンスヒットは絶対的なものです。
-justin.m.chase

ただし、Xbox360をターゲットにする場合は注意してください。そこにあるXNAランタイムには、主要な最適化のいくつかの機能が欠けており、パフォーマンスに敏感な部分をアンマネージコードに移行できません。
drxzcl


1

彼がこのインスタンスでJavaで行ったことは、アプレットを作成してサイトにログオンし、使用されているオペレーティングシステムに対して完全に透過的な非常に一般的なプラグインで遊ぶことができるようにすることでした。彼の考えは、Javaをこの方法で使用すると非常に透過的であり、ファンが行っていた迅速な反復的な開発/テストを簡単に行えるようになったと思います。通常、テスターはすべてをインストールする必要があり、ゲームとこれをコンパイルして実行する方法に関する一般的な知識を持っている必要があるため、XNAでこれを実行できるとは思わない。

ですから、これからのパラダイムシフトはなく、彼が当時必要としていたものに合っていて、明らかにうまくいったと思います。


1

確かに、多くのプログラミング言語にはゲーム開発の未来があります。コンピューティングプレスでよく使用される誤ったジレンマは、タイプXのツールは1つしかなく、誰もがこれを発生させたいということです。

真実から遠く離れることはできません。

C#とJavaは長い間ゲームで使用されてきました。CおよびC ++はさらに長く使用されていますが、現在も使用されています。Luaは、C / C ++で記述されたエンジンを使用して、信じられないほど人気のあるゲームのスクリプト言語として使用されます。

だから明らかに、プログラミング言語はゲームプログラミング言語として他のプログラミング言語を吹き飛ばしていない。実際、主要なゲームは、エンジンを開発するための高性能のコンパイルされたプログラミング言語で構成され、その後、UIやその他の動作をスクリプト化するための高レベルの動的プログラミング言語で構成される傾向があります。

現時点で重要なのはパフォーマンスです。使用されているプログラミング言語/ライブラリのいずれかがアプリケーションで予測不能/制御不能な一時停止を引き起こす場合、アクションゲームでは、それは一見して平坦になります。しかし、テキストベースのアドベンチャーゲームでは、それで問題ないかもしれません。

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