web-dev-qa-db-ja.com

アルゴリズムの研究はゲーム開発にとって重要ですか?

私はプログラミングの世界ではかなり新しいです。1年の経験があり、オンラインコースを見て学び、iOSアプリをいくつか作成しました。

今、私はゲーム開発に移行しており、すでにUnity3Dに精通しており、独自の簡単なプロジェクトを開始しました。

たとえば、モニュメントバレーのようなゲームをプレイすると、自分のゲームに同じ移動テクニックを実装したい場合や、最も近い敵を撃つ自動タレットがある場合、あるいは数独やチックのようなゲームを使用したい場合はどうでしょうか。タックトウ?

それを効率的に実装する方法がわかりません。それで、アルゴリズムの基礎を学ぶことは絶対に必要ですか、それともCSの複雑さなしに私が望むものを達成するためのより簡単な方法がありますか?

1
Abdou023

1.いいえ。

コンピュータサイエンスの最も浅い知識と理解だけで、ゲーム開発で[〜#〜] lot [〜#〜]を実行できます。グラフィックデザインを行うのにCSの知識は必要ありません。また、ほとんどの3DデザインにもCSの知識は必要ありません。ストーリーを伝えるためにCSは必要ありません。これは基本的にほとんどのクエストゲームが行うことです。ゲームのプレイや使いやすさを考えたり、ユーザーがゲームを操作する方法を設計したりするためにCSは必要ありません...

また、今日は非常に多くのツール(Unityなど)が利用できるので、バックグラウンドで何が起きているのか深く掘り下げることなく、本当にクールなものを作成できます。

また、日常のソフトウェア開発で直面する問題のほとんどは、CS要素がいくつかある場合でも、非常に些細なものであり、ほとんどの場合、よく知られた文書化された方法で以前に解決されています。あなたはいつでもここに来て質問することができます:-)

2.はい。

私たち人間が私たちの周りの世界を理解し、説明する方法は、数学です。コンピュータの仕組みは唯一数学(およびいくつかの派手な砂、つまりシリコン)に基づいています。 「私たちの周りの世界とは、物理学だけでなく、「物理学」の世界も意味します。チェス、チェッカー、数独、ほとんどのカードゲームなどは、単なる数学の問題です。理解し、操作し、チェスAI、ビジュアル2D\3Dエンジン、またはMODを超えてファーストパーソンシューターまでのものを作成できる場合は、その背後にある数学的要素を深く深く理解している必要があります。

3.たぶん?

だから基本的に私の答えは-あなたの走行距離は異なる場合があります。それはあなたが何をしたいのか、どこで、そしてあなたがしていることについてどれだけ理解したいのかによります。あなたが本当に数学を必要とすることをしたい場合でも、今日あなたはあなたがインターネット上であなた自身が必要とすることのほとんどを学ぶことができます。しかし、わずか6か月の専門的なトレーニングで業界で約7年間働いた人として、私は簡単方法がコラージュしてそこで学ぶことになると言うことができます...

3
AK_

簡単な答えはイエスです。

それは、設計されているゲームの複雑さと革新に依存します。いくつかのゲーム、たとえば重力マスターは非常にシンプルに見えますが、実際には剛体物理ソルバーが必要です。

すべてのゲームにはプログラミングが含まれます。機能が増加しているソフトウェアには、より多くのプログラミングが必要です。

ほとんどの種類のゲームプレイには1D、2D、または3D空間での動きと距離効果が含まれるため、ほとんどのゲームではジオメトリが必要です。

一部の種類のゲームプレイでは、必要な知識領域が少なくなります。

  • カードゲームにはジオメトリは含まれませんが、組み合わせ論と人工知能(より具体的には、コンピュータプレーヤーが実行可能な戦略を検索するために使用される「ゲームツリー」と「ヒューリスティック」)が含まれる場合があります。
  • 動きがグリッドに制限され、一度に1つのステップのみが許可される(パスファインディングなし)ゲームも簡単です。
  • 一連のストーリーボード(ストーリーの進化はユーザーによる多肢選択式の質問への回答に基づいています)のみを含むゲームも単純です。

しかし、ゲームは一般的に多くの知識分野を含む可能性があります。ゲーム開発者は本当に、本当に一生懸命働かなければなりません。彼らがゲーム業界外の他のソフトウェアプログラマーと比較して2倍の時間働く可能性があることは前代未聞ではありません。彼らは彼らが学校を卒業するときに必要な知識のすべてを持っていないかもしれないので、彼らは熱心な自己学習者でなければなりません。各ゲームには新しい知識が必要です(または、ゲーマーを感動させるほど革新的ではありません)。

一般的にゲームも多くのコンポーネントに分かれています。場合によっては、これらのコンポーネントを「ゲームエンジン」にパッケージ化して、他のプログラマーが同じレベルの知識に到達しなくても、その上に構築できるようにすることができます。

4
rwong