No.7ベストアンサー
- 回答日時:
>具体的に処理を各コアに分散する技術っ
マルチコア、CPUが複数ある場合ですね(最近の言葉なので記憶が曖昧)。
複数のタスクがまったく独立して動いているのであれば大きな問題には発生しません。
AとBという二つのタスクがあって、
Aから値が送られてきたことをBが知ること、
なんて、結構面倒くさいです。共通のメモリーが必要です。通常複数のCPUがある場合には、お互いに変なところをいじらない様にひとつの主記憶装置であっても領域を分割します。分割してお互いに関係しないことがマルチタスクで「障害なく動くこと」に必要な条件です。
共通なメモリーを主記憶装置に置くか、I/Oポートに置くか、ハードウェア割り込みに置くか、の選択があります。
専用のハードを作ると価格が上がりますので、低価格品では主記憶装置に置きます。
すると、
割り込みを禁止してメモリーのC1に「使用中」のフラグを立てて、送信データC2読みとって、次にC1に「使用中」のフラグを落とす
という処理になります。
ところが、インテル系CPUでは、メモリー保護機構がありません。全領域が参照できます。つまり、フラグの処理中にプログラムの間違いがあると、いつまでたっても「使用中」で、タスクBはいつまでたっても動かない。
2つ、1箇所の令ですけれども、実際には30-50のタスクが同時にうこいているはずで、これらの取り扱いが極めて面倒です。
というのは、最も優先性があるタスクは、ハードウエア割り込みのタスクで、「電源断」や「メモリー障害」のような異常自体の処理を担当します。このときには、「割り込み禁止」であっても、勝手に処理してしまいます。
次に、「割り込み禁止」することが出きるハードウェア割り込みがあります。これは、たとえば、時計とか、サウンドとか、通信ポートとかの対応です。
この下の優先度で、先に示したA, bの二つのタスクがあります。
C1フラグが立っているときに、時計処理が発生して(ハードウェア割り込み禁止をしなかった)、メモリー障害が発生して、自動復旧機能に障害があったらば、、なんてやったらば、動かないのです。
時計処理の関係で、たとえば、1秒間に30回画面を書きかえるという処理をすることが許可される割り込みが入って、これが、たのタスクに影響しない様に処理が終了しなければならない(遅いと処理の途中で再度書き換え処理が始まってしまう)ので、面倒なのです。
たくさんのタスクが動いていますので、CPUの処理がかなり遊んでいるような状態にしないと、必ずおかしくなります。
ところが、ゲームデザイナーや市場調査結果等はかなりめちゃくちゃな要求を出してきますので、cpuの処理限界ギリギリを常に要求されます。
だから大変です。
No.8
- 回答日時:
>日本ではどうですか?
>すみません、それでした。学士号だったのですね。
学士号だと日本のプログラマもおおよそ、50%ぐらいだと思います。要は大卒の割合ですから。
院卒は10%ぐらいですかね。
博士号を持ってる人は私の周りにはいません。
(この辺の統計はメーカーによって偏りがあると思います。)
No.6
- 回答日時:
こっそりお教えしますが、現場はそのような感覚ありませんね。
そもそも、本当に優秀な人は、ハードやソフトの垣根がありません。
プログラマなんて肩書きはもう存在しません。
どのような無理難題でも実現する人たちです。
そのような人たちは、ゲーム会社に在籍していても、日頃ゲームは書きませんね。
でも、いざとなったときはゲームの開発にも参加することもあります。
そうするとどうなるか、書かなくても想像できると思います。
このようにして出来上がったゲームのタイトルをここへ書けば、ああなるほどと思われることでしょう。
でも書けません。
>そのような人たちは、ゲーム会社に在籍していても、日頃ゲームは書きませんね。
>でも、いざとなったときはゲームの開発にも参加することもあります。
>そうするとどうなるか、書かなくても想像できると思います。
??どういうことでしょうか?
普段はエクセルのVBAで事務仕事かサーバーの管理をしていて、いざとなれば本業に参加するということでしょうか?
何か、日本のゲーム会社では不効率な問題でも起こっているのでしょうか?
No.5
- 回答日時:
ゲームメーカーに勤めているものです。
>米国のゲームプログラマーはたいてい博士号を持っているそうですが
このソースはなんでしょうか?
http://www.inside-games.jp/news/284/28453.html
この記事によると半数が学士号となっています。大学院が26%となっているので
博士号を持っているのはそれ以下だと思います。
ちなみに言語自体はC/C++、たまにアセンブラ、後はシェーダー言語(HLSL等)ぐらいで
独自の言語を使っているわけではありません。
ただプログラミング言語だけ覚えればいいというものではありません。
3Dゲームを作るなら数学や物理の知識も必要ですし、
ゲーム機なら、そのゲーム機の特性を理解しておく必要があります。
>ゲームプログラマーってプログラマーの方の中でも優秀なほうなのでしょうか?
基本的にこの業界は能力/結果主義ですが、一部を除けば普通だと思います。
天才的なプログラマーは存在します。しかしそれはリーナスもそうですし
ゲーム業界に限った事ではありません。
ところでアメリカのゲームプログラマは
日本のプログラマより平均レベルが高いという点は私も感じています。
いわゆる洋ゲーの3D技術は相当進んでいますし、ゲーム性も日本のものに
ひけをとっていません。日本製以外のプラットフォームもでてきましたし
私を含め日本のメーカーは危機感を感じていると思います。
業界人の方からのご回答に感謝します。
>このソースはなんでしょうか?
すみません、それでした。学士号だったのですね。
>独自の言語を使っているわけではありません。
そうなのですか。一般的な言語ですね。
>3Dゲームを作るなら数学や物理の知識も必要ですし、ゲーム機なら、そのゲーム機の特性を理解しておく必要があります。
この部分が敷居が高そうですね。ゲームの表示をリアルタイムに制御する(しかも絶妙なタイミングで)のがなんとも難しい感じがします。
>ところでアメリカのゲームプログラマは日本のプログラマより平均レベルが高いという点は私も感じています。
アメリカの技術は本当にすごいですね。日本のゲームはかなり出遅れていると思います。ぜひがんばってください!
No.4
- 回答日時:
>ゲームプログラミングなんて敷居が高すぎる
というのは「自分の得意分野ではない」という表現です。
短距離が得意の陸上選手に、「マラソン走ってみろ」といっても
同じ答えが返ってきます。(まれにオールラウンダーはいますが)
私の知る範囲では天才プログラマーという人は極端にすくなく
優秀といえるプログラマーも必ずしも多くありません。
また優秀であるプログラマーがバグを出さないかというと
そうでもなく、優秀でなくともバグのないプログラマーの方が
会社としては評価が高かったりする場合もあります。
>というのは「自分の得意分野ではない」という表現です。
これは逆に言うとゲームプログラマーは事務系ソフトやシステムのプログラムは難しく感じるということでしょうか?
ゲームプログラムと事務系プログラムの難易度は同等だが、分野が違うために得意でないという意味ですか?
No.3
- 回答日時:
ゲーム機のプログラミングは、色々な問題があります。
ひとつは、言語系が独自です。つまり、5年ぐらいで仕様が変わってしまいます。したがって、外部の人間がちょっとおぼえた、頃には仕様変更で使えなくなってしまいます(ライブラリーの入れ替え)。
事務処理系プログラム(企業内で使用するソフト)との違いは、処理時間の制限が激しいのです。スイッチに対する応答時間があります。
マルチタスクプログラムが要求されます。背景画像・バックグラウントに流す音・ヒット等の効果音・ユーザー操作による主キャラクターの移動・乱数制御による敵キャラクターの移動・画面の書き換え(裏で書き換えておいて、書き換えが終了したら画面全体の表示を切り替える)が最初に容器有されます。
だから、事務処理系ソフトの作り方とまったく作り方が異なるので、事務処理系ソフトを作りなれた方ですとできないでしょう。
なお、ある事務処理ソフトをマイナー機から当時主流であったPC-9821に移植を個人的にあるゲームソフトプログラマーに依頼したことがあります。外部配列の使い方がまったくわからなくしてできないということでした。
いくら処理が遅くても困らないが巨大なデータを使う場合の処理方法が理解できなかったのです。
処理の目的が異なるから、ゲーム分野は特化した分野になります。
逆にいえば、言語仕様の変更によってプロク゜ラマーが捨てられて行く(新仕様を覚えられないと「無能だから」という理由ですぐに解雇される)企業群です。
言語仕様の変更によって、プロクラマーが離れて行くことはフリーソフト著者の公開内容を見ていればわかるでしょう。マイクロソフトで言語仕様を変更するたびに、更新ができなくなってしまうフリーソフトが多いです。25ぐらいまでに覚えることは限界で以後はその応用です。しかし、ソフト業界は応用するプログラマーを要求していません。年功序列で金がかかるからということ(表面は、新仕様が理解できないから無能だという理由)で解雇しているのが現状です。
>つまり、5年ぐらいで仕様が変わってしまいます。
これは大変そうですね。常に新しい技術も取り入れないといけないようですし。日本人は後手になっている感じがします。
>マルチタスクプログラムが要求されます。
マルチコアでプログラムを組むのは難易度が上がると聞きますが、具体的に処理を各コアに分散する技術ってそんなに難しいのでしょうか?
>逆にいえば、言語仕様の変更によってプログラマーが捨てられて行く
これは問題ですね。技術者が育たないですし。日本のゲームプログラマーはこのままでは世界からおいていかれてしまうと思います。というかもう追いつけない所にいるのでは・・・。
No.2
- 回答日時:
ANo.1の方がおっしゃる事は事実でしょうから反論するつもりは全く無いですが、一概に「ゲームプログラマ全員が」とは、勿論言えないと思います。
先日PSP用に発売された名作ゲームの移植版が、あまりにも酷くてかなり批判を受けています。
乱数を発生させるプログラムさえ作れず、サイコロが同じ目を出したり、ある規則で同じ目が繰り返し出たりしていました。また、物理法則をプログラム化できておらず、あり得ない動きをしていたりしていました。製品として現在発売されています。移植であり、移植元のソースが渡されているにもかかわらず、でした。
こんなのはごく一部のことでしょうが、「ゲームプログラマはみんな優秀です」というのはちょっと早計かなと。
いや、もちろん、優秀な方が多いとは思っていますけどね。
>一概に「ゲームプログラマ全員が」とは、勿論言えないと思います。
そうですね。全員とは思いませんが、メインプログラマーは日本人でも優秀なのでしょうか?やはり世界からみたらヒヨッコレベルなのでしょうか?
ロストプラネットやGT5Pを見るとこういう表現ができるのはけっこう優秀だと思うのですが。
しかしたいていは北米の技術をマネしているだけかもしれませんね。日本発の技術ではないですし。
No.1
- 回答日時:
優秀です ソニーはプレイステーションのソフトを自社で作る事ができません 日本最高峰はスクウエアエニックスですがここも世界最高ではあ
りません 中印のレベルが高く 確か世界一はインドのメーカーだった気がします ちなみにMIT(マサチューセッツ工科大)の成績上位者はほとんどインド人です>ソニーはプレイステーションのソフトを自社で作る事ができません
これはどういうことですか?ソニーは自社でソフトを出していますよ?
>日本最高峰はスクウエアエニックスですがここも世界最高ではありません
どういう意味で世界最高でないのか不明ですが、日本のゲームプログラマーは総じて優秀ではないということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(社会科学) 純粋に思うのですが、一夫多妻制にすれば国力は上がるのではないでしょうか? 社会の中で勝てる能力を持つ 7 2022/07/15 19:41
- その他(社会・学校・職場) 某職場で、マルチな面で優秀過ぎてストイック過ぎて却って浮いてしまうような人について。寧ろ経営者向き? 1 2023/04/13 04:31
- その他(ゲーム) 50代になってもゲームクリエイターでいられるか 3 2023/05/18 23:10
- その他(ビジネススキル・経営ノウハウ) 某職場で、マルチな面で優秀過ぎてストイック過ぎて、却って浮いてしまうような人について。経営者向き? 1 2023/04/12 03:03
- 経済 年功序列なんていうくだらない制度があるのは日本ぐらいなものですか? 2 2022/04/25 00:13
- 会社・職場 考え方が古いですか、日本の大企業の方が安心と考えてしまう、色々時間を無駄にしてきた 4 2023/07/29 21:47
- その他(業種・職種) マニア、オタク、キモオタな人達とその人達の職業や優秀さについて。 2 2023/04/24 07:14
- 会社・職場 取引先の営業を担当変更させたい。 5 2022/06/07 23:27
- その他(ビジネス・キャリア) 所謂『社会不適合者』に向く仕事は、調べると『夜間警備』とかの他、『起業する』ともありましたが。 2 2023/04/21 07:58
- その他(就職・転職・働き方) 所謂『社会不適合者』に向く仕事は、調べると『夜間警備』とかの他、『起業する』ともありましたが。 1 2023/04/21 06:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6でSendKeyを利用したTab移動...
-
USJでの割り込み
-
マイコン C言語 割り込み処理...
-
電車乗車時、並んでいるのに割...
-
(H8マイコン)タイマ割込で変更...
-
CPU負荷率の安全な上限と計...
-
ゲームプログラマーは優秀なの?
-
【組込み】割り込み中のstatic...
-
H8マイコンでの割り込み(シリ...
-
C-Builder OnChangeをマスク
-
CPUの処理量を減らすコーデ...
-
PICでタイマー割込み(mikroC V...
-
電車で待機列の割り込みについ...
-
SH2 (SH7144)のソフトウェアス...
-
スーパーのレジで並んでいたら...
-
Protools8 Mbox...
-
Amazonfireタブレットにわから...
-
sleep関数の原理について
-
アセンブラのタイマー割り込み
-
ウォッチドッグタイマ(WDT)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
このレジの並び方は間違ってま...
-
電車で待機列の割り込みについ...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
CPUの処理量を減らすコーデ...
-
一定時間操作がなかったら、と...
-
CPU負荷率の安全な上限と計...
-
pic 複数の割り込み関数 切り分...
-
Amazonfireタブレットにわから...
-
【組込み】割り込み中のstatic...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
駅のトイレでナイチンに邪魔さ...
-
インバウンドで迷惑している人...
-
PICのSleepからの復帰に関して
-
PICでのプログラムによるチャタ...
-
実行した後、どうしてもフリー...
-
PICで内部タイマーを使わずカウ...
-
SH2のタイマ出力
-
割り込み中に例外異常
おすすめ情報