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


14

オンラインフォーラムでゲーム開発に関する質問をするたびに、線画アルゴリズムの学習、ビットレベルの画像操作、ビデオ圧縮解除などの提案が常に寄せられます。

しかし、God of War 3のようなゲームを見ると、このような低レベルのテクニックを使用してこれらのゲームを開発できるとは信じられません。

このようなゲームの素晴らしさは、(私にとって)わかりやすいプログラミング方法論に反しています。

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

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

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


2
誰かが下票を説明したいと思いますか?
モニカマイケル

2
ダウン票は、「建設的」ではないという質問によるものです。引用すると、「この質問は、当社のQ&A形式に適していないです。私たちは、答えは事実、参照、または特定の専門知識でサポートされることを期待しますが、この質問はおそらく要請議論、引数、ポーリング、または拡張の議論はなります」。つまり、質問に正確に答えることはできません。あなたの質問にはまだ価値があると思うが、再定式化する必要がある。
9000

2
@ 9000そして、この質問はどのように建設的でないとみなされますか?

1
@delnan:おそらくダウンボッターは「ゲーム業界の最新の開発方法とは何ですか?」のようなフレーズに満足していませんでした。私にとっては、「クローンを作成する方法」の方がはるかに優れています。
9000

4
これはgamedev.stackexchange.comでもっと意味があり ませんか?
ダンは

回答:


12

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


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

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

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

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

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

ここに画像の説明を入力してください

そこには多くの異なるエンジンがあります。一部は無料、一部は無料、一部は金属まで、その他はより高い抽象度を提供します。

例えば:

  • アンリアルエンジン
  • 団結
  • ソース
  • などなど...

5

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

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


4

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

OSSの世界では、例としてOgreを見てください。ソースのようなものがある市販のゲームの場合

多くのコードが使い捨てであり、ビジネス環境で必要なものを通過させないなど、他の要素があります-しかし、それはゲームの限られた寿命と加速された開発タイムスケールがコードが(ほぼ)設計されていることを意味するためです維持するためではなく、ただ働くためです。


もちろん、これらのエンジンは、(高度に最適化されているが)通常のC / C ++コードであり、低レベルAPI(たとえば、グラフィックス用のDXまたはOpenGL)の上に抽象化を構築します。

ただし、CまたはC ++を使用して非常に単純なゲームを作成した経験を持ち、作成者にゲーム開発がどのようなものかを理解してもらうことをお勧めします。
KyelJmD

4

Unity3Dは本当に素晴らしいです。私がそれについて気に入っているいくつかのポイントがあります:

  • プラットフォームに依存しない方法でゲームを構築し、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とコンパイル時チェックを備えた、素晴らしい言語であるC#で実行できます。優れた開発環境(IDEおよびすべて)が付属しています。別の何かが必要な場合は、Javascriptもサポートしています。

  • 非常に優れた物理的サポート(衝突、重力、力など)があります。

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

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

  • 最後になりましたが、それはまともな速さです。モバイルデモをご覧ください。非常によく動き、グラフィックも非常に優れています。

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

現在私が待ち望んでいるUnityプロジェクトは次のとおりです。

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

彼らはUnityを選んだ理由についての素敵なブログエントリーを持っています、そしてそれで働くことがどのように進むかを議論する他のものと同様


3

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

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


その分析の外観から、Quake 3は、今日のゲーム開発の非常に重要な「低レベル」テクニックのかなり前のものです。まず、(OpenGLが提供する)シェーダー。

地震3は1999年にリリースされました。はい、それはかなり前です。しかし、それは人々がどのように働き、そのとき可能なことの限界に行こうとするかを示しています。他のほとんどの利用可能なエンジンは、最大のパフォーマンスではなく、再利用性や「クリーンな」コードなどに傾いています。(これは他のエンジンが悪くて遅いという意味ではありませんが、3Dゲームエンジンのアーキテクチャと実装について学びたい場合は、まだ検討する価値があると思います)
-johannes

3Dゲームでのバイナリ低レベルの数学上の別の関連記事、例としてクエイクを使用して:blog.quenta.org/2012/09/0x5f3759df.html
ヨハネス

1

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

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

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