初めまして。プランナーの町山と申します。
初めてブログを担当させて頂きます。
自分はITシステム業界に数年、ゲーム業界に数年と2つの職を
跨ぎ(フラフラし)、今は弊社に落ち着いています。
昔も今も、業界に入って衝撃を受ける事は多々ありますが、
今回は、若かりし頃、ゲーム業界に入って、
驚いた事の一つを紹介したいと思います。
それは、
ゲームプログラムとITシステムのプログラムでは、
同じプログラムでも、構成が全く異なる
という事です。
ITシステムというと、ピンと来ない方も多いかもしれません。
例えば役所などで、「住民票が欲しい」、と窓口に伝えたとします。
そうすると、「ちょっと待ってくださいね」などと言って、
窓口にいる人が、訪れた人の登録されているデータをPCで検索します。
本人の名前、生年月日、住所など、「本人の情報」を
役所に入っているデータベースにアクセスして検索するわけです。
他にも不動産屋の物件検索や、
インターネットのオンラインショップなどが
ありますね。
そういった「システム」を作っていたのですが、
まず、ITシステムのプログラムはどういう構成なのか。
プログラムというものは、コードを記載した順に、
基本的には上から下に1つずつ処理されます。
ソースコードは省きますが、例えば、
// ①検索ボタンが押された
// ②データベースに接続する
// ③検索ワードでデータベースを検索
// ④検索結果を取得
// ⑤結果を画面に表示する
というような、上から下に順番に処理され、⑤の処理が終わったら
処理は停止し、ユーザーの入力待ち状態となります。
ここで重要なのは、
ユーザーが何かのアクションを
(文字を入力した、検索ボタンを押した、など)
行わない限り、処理は停止している
という事です。
ITシステムは基本的には、このような構成をしています。
一方のゲームのプログラム構成はどうでしょうか。
簡単な例を挙げると、
// ①プレイヤーのキー入力を判別する
// ②プレイヤーキャラを動かす
// ③敵を動かす
// ④残りタイムを減らす
// ⑤以上の情報の、画面を描画する
といった感じになると思います。
一見、「なんだ、大して変わらないじゃないか」と思うかもしれません。
ところが、ゲームというものは、プレイヤーが全く操作を行わなくても
敵が動いていたり、残りタイムが減っていったり、
キャラが待機モーションをしたりと、
ゲーム上では常に処理が走っています。
上から下に順番に処理される点は同じですが、
①~⑤まで、常にループしていて、半永久的に処理が走っている
という点が、ITシステムと全く異なります。
しかも、1フレーム毎に①~⑤までを繰り返していたりするので、
常にゴリゴリな状態です。
もし、ITシステムでこのような構成をしたらどうなるでしょうか。
ユーザーが何もしなくても、常に処理が走っているため、
窓口のPC、あるいはサーバーのPCが、
常にゴリゴリな状態になってしまいます。
何もしていなくても、PCがフリーズしてしまう可能性が高いです。
もはやザキです。いやザラキです。
この作りのシステムを、役所などにリリースしたらどうなるでしょうか。
クレームの嵐です。謝罪記者会見です。
人間的にもザラキです。
それだけ負担がかかる処理を行っても、ゲームがビクともしないのは、
普通のPCとは違う、ゲーム機の特化した性能のおかげ、と
言えるでしょう。
あるいは、プログラマーの手腕のおかげとも言えるでしょう。
いやぁ、ゲーム機ってすごいですね~
ゲームプログラマーってすごいですね~
このようにITシステムとは違い、
ゲームプログラムでは当たり前の事のようにやってのける事に、
当時、衝撃を受けたのを今でも覚えています。
まあ、よく考えれば、ゲームは常にループで回さないと
いけないので、プログラマーからすれば当然の事かもしれませんね。
このように一方から見れば当たり前の事でも
違う一方から見れば驚く事が、世の中では多々あります。
新人さんや若手の社員さんと日常会話をしていると
「え?なんですかそれ?」などと、
世代の差を感じることもしばしばあって…
…っと、この話は復活の呪文のように長くなりそうなのでやめましょう。
それでは、今回はこれで失礼いたします。
ありがとうございました。