web-dev-qa-db-ja.com

現在、ゲーム開発に使用されているテクノロジーは何ですか?

オンラインフォーラムでゲーム開発について質問するときはいつでも、線の描画アルゴリズムの学習、ビットレベルの画像操作、ビデオの解凍などの提案を常に受け​​ます。

しかし、ゴッドオブウォー3のようなゲームを見ると、これらのゲームがこのような低レベルのテクニックを使用して開発できるとは思えません。

そのようなゲームの純粋な素晴らしさは、(私にとって)わかりやすいプログラミング方法論に対抗できません。

ゲームハードウェアに加えて、最近は本当に怪物です。したがって、開発者がより高いレベルの抽象化で作業するのは当然のことです。

ゲーム業界の最新の開発方法論は何ですか? 30〜35名の開発者(そのほとんどが管理とマーケティングの綿毛)のチームが、このような気の遠くなるようなゲームを作ることができるのはなぜですか。

質問が一般的すぎると思われる場合は、戦争の神3のアーキテクチャを説明できますか?または、どのようにクローンを作成しますか?私は客観的に答えられるべきだと思います。

14
Monika Michael

免責事項:私はビデオゲーム開発者ではありません。しかし、私は「趣味」の興味を持っています。


目にするAAAゲームのほとんどは、エンジンを使用して作成されています。それらはゼロから書かれていません。エンジンをフレームワークのようなものと考えてください。 .NETフレームワーク、Java SDK、Cocoaツールキット。

ソフトウェアの作成を簡単にし、キッチンシンクのコードを抽象化するためのすべてのこと。必要ですが、毎回書くのは非常に非生産的です。

これらのエンジンを使用すると、開発者はゲームを構築でき、基礎となるコードの一部を心配する必要がありません。 (間違いなく、ゲーム開発はソフトウェアエンジニアリングの最も難しい分野の1つです。

たとえば、 nreal Engine 4 にはキラー開発キットとスタジオがあります。

http://www.youtube.com/watch?v=MOvfn1p92_8

enter image description here

世の中にはさまざまなエンジンがあります。有料のものもあれば、無料のものもあれば、もっと金属に近いものもあります。

例えば:

  • アンリアルエンジン
  • ユニティ
  • ソース
  • などなど...
12
sergserg

Gbjbaanbのコメントを参照して、ゲームプログラミングを楽しくするいくつかのことは、コードベースの寿命が限られていることと、精度を必要としないことです。たとえば、FPSゲームを設計していて、移動アルゴリズムによってゲームキャラクターが数ピクセル離れている場合がありますが、それは大した問題ではなく、誰も気付かない可能性があります。ビジネスソフトウェアを設計していて、合計関数で数ドルの割引が出る場合は、それははるかに深刻なバグです。そのため、ゲームを設計するとき、一部の側面の精度はかなり低くなる可能性があります(答えが正確に正しいことを確認する自動テストスイートではなく、人間のテストに合格するだけで済みます)。

私の経験では、特にリアルタイムゲームのゲームプログラミングは、GUI作業を除いて、他のほとんどすべてのソフトウェア開発とはかなり異なる経験でした。それはあなたが試さなければならないものです!

5
Ivan

答えは「エンジン」です。多くのfoゲームは、基本的には大きなライブラリまたはフレームワークであるさまざまなグラフィックスおよびゲームプレイエンジンの上に構築されています。

OSSの世界では、例として Ogre を見てください。商用ゲームの場合は Source。 のようなものがあります。

多くのコードは使い捨てであり、ビジネス環境では不合格になるなど、他にもさまざまな要素があります。ただし、これは、ゲームの寿命が限られていることと、開発のタイムスケールが加速されているため、コードが(ほぼ)設計されているためです維持するのではなく、単に働くために。

4
gbjbaanb

nity3D は本当に素晴らしいです。ここに私がそれについて好きないくつかのポイントがあります:

  • プラットフォームにとらわれない方法でゲームを構築し、Windows、Mac OS X、Android、IOSのいずれかのデプロイ可能ファイルを自動的に作成します。これは現在のバージョン(3.x)にも当てはまります。どうやらバージョン4ではLinuxにもデプロイできます。

http://en.wikipedia.org/wiki/Unity_(game_engine)#Major_features

  • 実際に(商用で)使用するには有料ライセンスが必要ですが、ほとんどの機能を使用できる無料バージョンをダウンロードできます(たとえば、モバイルプラットフォーム用にデプロイ可能にすることはできません)。購入するかしないかを決める前にプレビューするのに最適な方法です。

http://unity3d.com/unity/licenses

  • ほとんどの3Dモデリングソフトウェアで動作します(3D Studio Maxを好みますが、他のものもサポートしています)。

http://unity3d.com/unity/editor/importing (少し下にスクロール)

  • コーディング(スクリプト)は、優れたAPIとコンパイル時のチェックを備えた、Nice言語であるC#で実行できます。優れた開発環境(IDEおよびすべて)が付属しています。別のものが必要な場合は、Javascriptもサポートしています。

  • 非常に優れた物理サポート(衝突、重力、力など):

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • さまざまなモデル、スクリプト、アニメーションなどを購入できるアセットストアがあり、スキル(およびウォレット)に応じてそれらを取得/変更して、ゲームの適切なリソースをすばやく取得できます。

  • 最後になりましたが、かなり高速です。モバイルデモを確認してください。IMHOは非常によく動き、非常にまともなグラフィックスを備えています。

http://unity3d.com/gallery/made-with-unity/game-list

これが私が現在待っている素敵なUnityプロジェクトです:

ブライアンファーゴの荒野2

彼らは nityを選んだ理由 、および 他のユーザーがUnityをどのように使用するかについて議論している に関する素晴らしいブログエントリを持っています。

4
Shivan Dragon

ID Softwareは、通常、最先端のゲームを公開しているベンダーの1つです。数年後、彼らはしばしばそれらをオープンソースとしてリリースします。 http://fabiensanglard.net/quake3/index.php に、Quake3ソースコードの分析があります。これは非常に冗長な説明であり、Quake3はかなり古いものですが、その概念はまだ現代のゲームに関連しています。

そして、はい、最先端のモダンで高速で競争力のあるゲームエンジンを構築したい場合は、それらすべての低レベルの要素を知っている必要があります。それらを気にしたくない場合:さまざまなエンジン(quake3エンジンまたは他の回答からのエンジン)が利用可能ですが、それでも新しい革命的なゲームを作成しているわけではありません;-)

3
johannes

多くの回答が述べているように、ゲームエンジンとライブラリが大きな役割を果たします。ただし、これは小さな「インディーズ」ゲームよりも中規模から大規模の商用ゲームに適用されることに注意してください。

たとえば、モバイルプラットフォームでは、ほとんどのゲームは、本格的なゲームエンジンのフレームワークに依存するのではなく、比較的原始的なライブラリのセットのみを使用して記述されています。それらは存在しますが、ほとんどの場合、それは以前のプロジェクトの独自のコードを再利用することです。

1
zxcdw