ゲーム開発は他のソフトウェア開発とどのように違いますか?[閉まっている]


18

堅実な汎用ソフトウェア開発者にとって、ゲーム開発に関して根本的に、または程度の違いだけで具体的にどのような違いがありますか?

Tic-tac-toe、Tetris、ブルートフォースの数独ソルバー(UI付き)などのおもちゃのゲームをやったことがあり、今では中規模のプロジェクト(単一の開発者であり、この特定のプロジェクトで発見したことの1つは、すべてが状態に影響を及ぼし、あらゆるオブジェクトが他のあらゆるオブジェクトと無数の方法で対話できるため、懸念の分離がはるかに難しいことです。

これまでのところ、満足のいくようにコードをかなりきれいに保つことができましたが、些細でないゲームできれいなコードを保つことは、私の仕事よりもずっと難しいことがわかりました。

私が取り組んでいるゲームはターンベースであり、グラフィックスはかなりシンプルになります(ほとんどがDOM操作によるWebベース)ので、リアルタイムと3Dの作業は私には実際には適用できませんが、それらが興味深い場合は、それらに関する回答に興味があります。ただし、一般的なゲームロジックに主に興味があります。

PS再タグ付けをお気軽に、どのタグが適用できるのかよくわかりません。

回答:


23

1つの大きな違いがあります。私の意見では、それが本当に重要な唯一の違いです。

なぜそれが違うのか、技術的な詳細を調べることができます。3Dエンジン、素粒子物理学、さまざまなものが登場します。

しかし、多くの異なる形式のソフトウェアには文字列が添付されています。モデリングソフトウェアは、多くの同じことをしなければなりません。重要なソフトウェアにはすべて、使用する必要のある特殊なライブラリがあります。

それでは、GAMESの違いは何ですか?

ここにあります:ソフトウェアはビジネスのニーズを満たすように設計されています。在庫システムが必要ですか?処理するアイテムのタイプを定義できます。生産スケジューリングに必要なものを定義できます。あなたはすべてそれを行うことができます。または、銀行用ソフトウェアが必要な場合は、それで何をしたいかを定義できます。

ゲームでは、ビジネスニーズは「楽しい」です。「楽しい」技術仕様を書いてみてください。

開発者としての私の謙虚な意見では、それがゲームを通常のソフトウェアと異なるものにしているのです。「すばらしい!このソフトウェアは、クライアントの要求に応じて機能が完全になりました!」と言うことはできません。彼らがやりたいのは楽しいことだけだからです。

そうは言っても、何かを楽しくするために3Dグラフィックスや贅沢な物理学は必要ありません。なぜ人々はまだテトリスをプレイするのですか?その物理学は、「ブロックを下に移動」「ブロックを範囲外にしない」「ブロックが何かに当たったときに停止する」で構成されています。一番下の行は- それ楽しいです!!

優れたゲーム開発者になりたい場合は、通常のソフトウェア開発者として学んだことを捨てないでください。まだ非常に便利なものです。また、@ Sionは、通常のソフトウェアと同じように、コンポーネントを分離するのに適しています。しかし、ゲームに追加できる最も重要な機能は楽しいことです。楽しい楽しい楽しい楽しい楽しい。それがゲーム開発が存在する理由です。それがあなたのゲームを成功させるために必要なものです。プレイするのがどんなに楽しくても、これを信じてください。少なくとも10倍の楽しみがあります!!

ゲーム開発で頑張ってください!! :D


2
「楽しい」と「有用な」を交換すると、製品の設計で同じ問題が発生する(クライアント用のソフトウェアを作成するのではなく)と思います。しかし、程度に違いがあると思います。何が役に立つかについて人々は時々間違っています。彼らは通常、彼らにとって何かを「楽しい」ものにするものについて無知です。(ただし、+ 1)
-Davy8

1
アダルト映画業界と、60年代の「ハードコア」の分類に関する悪名高い最高裁判所の判決がありました。正義は、「(定義すること)に成功することは決してなかったが、私はそれを見たときにそれを知っている」と言った。楽しみのために同じことが言えると思います。ゲームについて好きなことを書き留めることができますが、ゲームをプレイして、「これは何が楽しいのか」と自問することがよくあります。(明らかに、ゲームの1つでそれを再作成できるように知りたいです!)人々は何かが楽しいものを知っているわけではありませんが、それを見つけたときは間違いなく知っています!
corsiKa

私はこの投稿が本当に気に入りました。あなたはとても正しいです。私はゲーム開発が本当に好きですが、「普通の」人々にとって「楽しい」とは何なのかを知ることはあまりありません。それは:)私は私や他のいくつかのアビそのような私のようなゲームを作るという効果があった
フィル・

1
@フィル、それは結構です。あなたが何が楽しいかを知っているなら、この世界にはたった数百のキャラクターアーキタイプがあることを覚えておく必要があります。職場を見て、同僚の性格を高校や大学に通った人たちに合わせてください。それらのほとんどは一致させることができます。ですから、何かがあなたにとって楽しいものであれば、おそらくあなたが思っているよりも多くの人々にとって楽しいものになるでしょう。トリックは、彼らがゲームを楽しめるようにすることです。
corsiKa

これは私が今まで見た中で最高の答えです。ソフトウェアビジネスのニッチなアイデアなどに関する記事はたくさんありますが、ゲーム開発に関する記事はあまりありません。うーん。
ジョニー

21

私は主にゲーム開発者であり、従来のソフトウェア開発者ではありませんが、いくつかの重要な違いがあると思います。

これらは明らかにいくつかの一般化であり、包括的ではありません
。より大きなチームです。より多様な背景(アーティスト、プログラマー、プロデューサー、それぞれにさらにバリエーションがあります)。より長い開発サイクル。パフォーマンスのより高い基準。プロジェクトの大規模。障害のより大きくより高価なリスク。よりストレスの多い環境。

オブジェクトの相互作用とアーキテクチャのレイアウトに関しては、システムを適切に分離できます。ゲームプレイのオブジェクトと動作は、相互におよびこれらのシステムに明らかに依存しています。それはゲームの性質ですが(しゃれが意図されています)、これらすべてのシステムを単一のまとまりのあるユニットに結合し、それは何の問題もありません。それはすべてのスケールがあなたが慣れているよりも大きいのでそう見えるかもしれません。

簡単に識別され分離されたシステムはありますか?

  • 衝突検出
  • 衝突応答
  • 物理
  • アニメーション
  • グラフィックス(2Dおよび3D)
  • 人工知能
  • ユーザー入力
  • ファイル入出力
  • ネットワーキング

私の特定のゲームではそれらのほとんどに対処する必要はありませんが、質問への良い答えのために+1それでは、2プレーヤーなのでAIはまだありません、ユーザー入力はほとんどRESTfulな方法で処理され、ネットワークの側面もカバーします)File IOの意味はよくわかりません典型的なゲームではIOの種類が必要ですか?
-Davy8

4
私はこの投稿の大部分に同意し、私から+1を受け取りますが、「より大きくて高価な障害のリスク」の行に疑問を投げかけます。銀行、または大規模な製造会社、または非常にトラフィックの多いWebサイトで働いている場合、失敗の結果として、ダウンタイムの1分間あたり数十万件で失敗を測定できます。1時間以内に、ゲーム開発者が数か月分の全額給与を超える(売り上げの損失、顧客の損失などで)失う可能性があります。私はそれが大きくなることはできないと言っているのではなく、私はそれが従来のソフトウェアよりも大きいと確信していないと言っているだけです。
corsiKa

@glowcoderあなたが言っていることはわかっていますが、Sionがしようとしているポイント、つまりゲームでは一般にプロジェクト全体が成功するか失敗するかのどちらかを理解していると思います。 : それ楽しいですか?バグのホットフィックスを行うことはできますが、楽しみの欠如をホットフィックスすることはできません。
-Davy8

3
「より大きなチーム」が一般化としても真実であると私はまったく確信していません。確かに、AAAゲームには大きなチームがありますが、複雑性に相当する非ゲームソフトウェア製品も同様です。非常に多くのゲームが、2人または3人の個人またはチームによって作成されます。
ピーターテイラー

@ Davy8ああ、ゲームの商業的成功だけがそれがいかに楽しいかに比例していたなら。:)
tenpn

2

ゲームプログラミングは、適切な関心事の分離を選択するのが難しいという観点から、他のアプリケーションドメインと異なるとは思いません。異なる種類のアプリケーションドメインにスキルを持ち込むと、常に違いがあるため、移行が期待したほどスムーズではないことがわかります。データベースアプリケーションで機能したものには、組み込みアプリではあまり機能しないパターン/イディオムが多数あります。また、多くのパターン/イディオムがあるリアルタイムシステムではあまり機能しない多くのパターン/イディオムがありますゲームプログラミングでは動作しません。ただし、ゲームプログラマは、ゲームプログラミングドメインを離れるときに同じ問題を抱えています。それはすべてあなたが何に慣れているかという問題です。

そうは言っても、ほとんどのプログラマーが実際の仕事(低レベルのグラフィックスとサウンド)で対処する必要のないコンピューターの部分を操作する必要があるため、多くの人にとってゲームプログラミングは難しいように思えます。人々は快適であり、懸念の分離のためではありません。懸念の分離の正しい選択を決定することは常に困難ですが、あなたが経験している懸念の分離の難しさは、単に新しい問題領域に移行しているだけだと思います。いくつかのアプリケーションを構築すると、他のアプリケーションと同じようになり、好きなものを学習し、そうでないものは使用しません。


0

そして、この特定のプロジェクトで私が発見したことの1つは、すべてが状態に影響を及ぼし、すべてのオブジェクトが他のすべてのオブジェクトと無数の方法で対話できるため、関心の分離がはるかに難しいことです。

そこには答えがあると思います。多くの相互作用があります。XNA(C#)でいくつかのゲームを作成しましたが、今では中規模のゲームである戦略シミュレーションゲームをやっていて、ほぼ2か月間取り組んでいます。コードをシンプルに保つ必要があります。私が思う大きな違いの1つは、機能用のクラスと描画用のクラスを理解して設計することです。これにより、プログラムがよりきれいになります。もちろん、ゲームをしている場合は、画像(2dまたは3d)や音楽(またはサウンド)などのリソースを増やす必要があります。違いがあるので、難しいと思いますが、とても面白いです。


0

ゲームプログラミングはもっと楽しいと思います。ゲームを常にテストし、さまざまな物理学を実装して、さまざまな動作を実現できます。

私の経験から、ゲームプログラミングは実際にはソフトウェア開発に比べてはるかに楽しいです。ソフトウェア開発では、従うべき特定のビジネスルールがありますが、退屈することはほとんどありません。あなたはソフトウェアを作成していますが、それは面白くありません。ソフトウェアの使用は、便利で便利で便利ですが、楽しくはありません。

ゲームは楽しいです。たぶん私だけかもしれませんが、ツールの使用に関係なく、ゲーム開発は従来のソフトウェア開発よりもはるかに興味深くエキサイティングです。

PS:ソフトウェア開発、HTML5、Asp.Net、C#などに最新のツールを使用しています。DirectX、UDK、XNA、Unityのコーディングは今でも楽しいと感じています。

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