もちろん数学の理解があれば、プログラミングに活かせるのは分かるのですが、
この数学の知識があればさらに高度なプログラミングを組めるという分野はありますか?
配列やベクトル、線形代数を今勉強しようとしているのですが、ゲームを作りたいと思っているので
数学の知識がプログラミングの幅を広げる助けになったらいいなと考えています。
みなさまの考えを教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答8件
0
ぶっちゃけ、数学よりも、フローチャートを書く能力と人と話せるコミュニケーション能力の方が必要です。あと、地味に体力勝負な所がありますので、体力も必要です。
病気がちでは仕事になりませんし、徹夜できなければ納期に間に合わない!という事も多くあります。
プログラマというのは、正直な話、「勉強のプロ」であって「記憶のプロ」である必要はないと個人的に思っています。必要な知識は必要な時に調べて理解できればそれで良いと思います。
ですので、例えばもし物理演算が必要な時に、それを理解して活用できる能力があればよいと思います。どんな難しい分野にもエキスパートはいます。難しい時にはそういう人たちをうまく利用して、知識を必要な時にわけて頂けばよいのです。
もしゲームプログラマとして活躍したいのであれば、まずゲームをもっと理解すべきです。
ゲームは総合格闘技のような物で、凄まじい量の知識が必要です。
自分の力だけで、まずゲームを作りましょう。いろんなジャンルを作りましょう。
RPG、アクション、パズルゲーム、シューティングゲーム、FPSでは全然必要な事が違います。
2D、3Dでももちろん違います。
スプライト?3次元モデル?ボーンの処理は?
キーボード、マウス、ゲームパッド、入力処理はどうする?
セーブデータの管理は?チート防止にはどうしたらいい?
音声や音楽、ムービーの挿入は?
ゲームのプログラミングというのは本当に多岐にわたりますが、これらを全て理解して、記憶する必要はないんです。ここで活きてくるのは「調べる能力」と「調べた内容を使える能力」です。
いろんな事にチャレンジして苦労する事が、後に繋がりますよ。
ちなみに今一番オススメなのはUNITYというクロスプラットフォーム環境です。
マリオからFPSまで、何でも作れます。一度調べてみることをオススメします。
投稿2015/08/26 18:42
総合スコア289
0
ベストアンサー
プログラミングにとって数学が何かといえば、
(食)生活における自炊能力にたとえられるかもしれません。
今の時代は自炊できなくても、外食や弁当を食べれば飢えません。
同様に数学ができなくても、ライブラリを使えばアプリは作れます。
ただ外食ばかりだと、高く付いたり栄養が偏ることはあります。
同様に数学ができないと「ライブラリがないからできない」
となって、作れるジャンルが偏りがちになります。
数学やアルゴリズムの知識があると、
ライブラリを使うだけでなく自作できます。
つまりライブラリの自炊(自作)能力が付きます。
ご質問にもある線形代数は、数学の中でも
とくにプログラミングと深い関係にあるジャンルです。
計算機数学、離散数学、グラフ理論、組み合わせ問題などと
呼ばれている分野と密接な関係にあります。
もちろん、統計をやるなら統計・確率、物理シミュレーションなら物理と微積分など、
必要な数学の分野は変わってきますが、線形代数は応用範囲が広いのでおすすめです。
線形代数のようにベクトル(もしくはグラフ)を行列で表現するのは、
アルゴリズムのひとつの定石になっています。実際よく出てきます。
具体的には画像処理でも出てきますし、機械学習でも出てきます。
これは初歩的な例ですが、アフィン変換とか、最短経路問題とか。
その延長線上でゲームにも、画像とかAIとか部分的ですが関係してきます。
しかしなぜ、それらが線形代数(ベクトルや行列)なのか?
話を分かりやすくするため、数学的な厳密な話ではなくイメージで説明します。
コンピュータ自体は1と0の機械語しか分かりません。
それを高水準化したプログラミング言語、たとえばC言語とかも、
せいぜいfor文やif文と変数を使ってガチャガチャ計算するだけです。
すると、人間のようにパッと見(無変換)で図形や手順を扱えないので、
コンピュータで処理させるには、何らかの翻訳が必要になります。
この翻訳がベクトルやグラフと行列を変換することに相当します。
行列にすると数字の列になり、プログラミング言語で扱いやすいのです。
図形 → ベクトル → 行列 → 変数(配列) → コンピュータ
みたいな感じでコンピュータに分かるよう翻訳(変換)します。
この変換の約束事を線形代数で学ぶ、というわけなのです。
投稿2015/08/26 16:52
総合スコア5592
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
... ゲームを作りたい ...
高校数学の区分でいうなら、
●集合と論理
●個数の処理
●確率
●平面上のベクトル
●空間のベクトル
の理解をしていると、プログラミングの助けになると思います。
ゲームのシナリオや難しさなどを考えるときに 集合、組み合わせ、確率 といった知識は不可欠です。
画面をつくっていくときに 2D, 3D のベクトルを理解していることは大きな助けになります。
(描画ライブラリーをつかうときでも、これを理解していないと ライブラリー自体を適切に使えない場合もあるかもしれません)
投稿2015/08/26 22:15
編集2015/08/27 15:32総合スコア22328
0
一口にゲームと言っても色々なタイプのものがありますね。そして、同じゲームでも、開発のアプローチの仕方によって必要な道具は変わって来ます。
数学とは、量、構造、空間、そして変化を研究する学問で、式や記号、グラフは、それらを理解し記録し他人へ伝える為の一種の 言語 です。いわゆる道具です。
ですから、ゲームに限らず、自分の作ったアルゴリズムの正当性を検証したり、他人のアイデアから学んだりする場合には、どんな分野であれ数学の知識やセンスがあれば多少なりとも役立ちます。
しかし、ゲームの場合には、シナリオの構成力やキャラクターのデザイン力など、全く異なる分野の能力も非常に重要です。
つまり一番重要なのは、今本当に必要な道具・能力を、焦らず着実に、
バランス良く身に着けて行くことだと思います。
ですから、先ず実際のゲーム作りの中で時々立ち止まり、気になった事や分からない事をちょっと深堀りしてみる。そして、勉強の材料がある程度溜まったところで体系的に学び直してみる。というやり方が現実的かなと思います。
投稿2015/08/27 00:04
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ゲームを作るのであるならば必ずしも数学は必要ではありません。
ゲームエンジンが現在ブロレベルの物が実質無償で提供されています。
UnrealEngine4
線形代数を活かせる分野であれば機械学習がオススメです。
数学を避けてきた社会人プログラマが機械学習の勉強を始める際の最短経路
投稿2015/08/26 14:40
総合スコア708
0
プログラミングはあくまで手作業をコンピュータに代わりにやらせるものなので、
「代わりにやらせる内容」の分野の知識が必要になります。
数学はどちらかと言うと、プログラミングよりも
「代わりにやらせる内容」の分野の知識になります。
「高度なプログラミング」が何を思い描いているのかわかりませんが、
「「代わりにやらせる内容」がより専門的である」ということなら
その分野の知識を深めるのがいいと思います。
(処理効率やカッコイイ実装方法などを求めるなら
プログラミング言語自体やアルゴリズムや実装パターンの勉強をするのがいいと思います)
行列やらベクトルやら線形代数やらは画像処理などで生きます。
統計処理をしたいなら統計学ぶ必要がありますし、
物理シミュレーションしたいなら該当する分野の物理(と数学)を学ぶ必要があるでしょう。
漠然とゲームと言われればジャンルによります。
ことアクションゲームであれば力学を学んでおくといいと思います。
あとC言語でゲームを作るのは無理とは言いませんが、面倒くさいので、
いずれもっと形になるものを作りたいならC#などに移ることになると思います。
投稿2015/08/26 14:36
編集2015/08/26 14:38総合スコア13553
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/27 01:06