大変だが最近ますます「面白い」、ゲームエンジニアのお仕事
あれは1998年のこと。新卒として経営コンサルティング会社に就職し、当時新設されたばかりのIT部門に配属されたのがエンジニアとしてのキャリアの始まりでした。
時代的には1995年にWindows95が発売されパソコン(Personal Computer)需要が上昇していくなか、1998年にはGoogleが創業、翌1999年にはドコモがiモードの提供を開始し、「これからはメールだ、ネットだ!情報化だ!!」と盛り上がっていた頃です。
各企業でも波に乗り遅れるなとばかりに情報戦略室やIT事業部といった名称の部署を立ち上げました。すると、いきなり新部署のトップに据えられ「流行りの情報化、君がなんとかしろ」と言われ困惑する40-50代の課長・部長クラスの方々が大量発生。その層に向けたパソコンセミナー講師が僕の初期の仕事でした。よくわからない畑違いのことに懸命に取り組む方々への指導やサポート経験は、直感的にわかりやすい説明を心がける習慣として今も生きています。チャレンジする先達の良い背中を見せても頂きました。
その後、社内外のシステム構築やビジネスアプリ開発をしていく中で創作側に興味が湧いてゲーム業界に転職。そこから約20年をゲームエンジニアとして過ごし、家庭用ゲーム機、PC、ゲームセンター、スマホ向けなど様々なタイトルに関わっています。
さて、この仕事を一言で言えば、「人が遊ぶ場を、デジタル空間に作り上げる大工」といったところですが、必要な専門性は多岐にわたります。
「世界」を作るための技術
1つのゲームを作るということは、いわば1つの世界をゼロから作り上げるようなものです。これはとても楽しくやりがいがあることであると同時に、大変なことでもあります。
例えば3Dゲームの場合、現実世界と同様のデジタル世界の中で遊びます。しかし、デジタル世界の最初は「無」です。草木や動物どころか、地面も空も、空気も音も、光も影も、重力のような物理法則もありません。これら全て=世界を一通り自前で用意することになります。
ちなみに、この時によく使うのが三角関数(光の角度と陰影の濃さ、音の波形)、ベクトル(物体が動き、跳ね返る方向)、物理法則(重力、弾性力)といったものです。高校の頃は「こんなの何の役に立つんだ」と思いながら渋々学んでいたことに大いに助けられています。
そして、こういった表現を実際に行うのはコンピュータです。
よって僕らエンジニアは、
「空中にあるモノは重力加速度で落下させろ」
「光が当たってる部分は白く、影は黒く映せ」
といったコンピュータ向けの指示書を書きます。これがプログラムです。
これは運動会のプログラムと同じことで、要は「進行手順書」です。手順書を書く時の言葉が「プログラミング言語」ですが、人間の言語のように多くの種類と特徴があります。
パっと直感的に意思を表現できる英語のようなもの、複雑なシチュエーションや上下関係のニュアンスも含む日本語のようなものなど色々です。得意な言語1本の人もいれば、複数言語を操るマルチリンガルの人もいます。英語のように多くの分野で使われるものもあれば、特定ジャンルのみのマイナー言語もあります。僕もいくつかの言語を(必要に応じて新たに学びつつ)使い分けています。
「言語」ですから、同じことを書くにしても、端的にわかりやすくもなれば、冗長で難解なものにもなります。「美しくわかりやすいプログラム」が書ける意識付けには、他人のプログラムはもちろん、優良な解説記事や茶道の点前のように「目的を果たしつつ合理的で端的」なものにジャンル問わず触れることも大事です。
そして、その言語で伝えられたことを実行するコンピュータにも、性能の高低や向き不向きがあります。
CPUやメモリ、通信速度その他の使える資源は常に有限(そして大抵は不足)しています。最大限の力を発揮させるためには、物理機器やネットワーク処理についてもよく学び、知る必要があります。
また、近年は扱うデバイスがPC、スマホ、タブレットなど多様化しており、画面の大きさや機能の差などにも対応しなければなりません。
つまり、ゲームという遊び場を作るためには、現実の世界を知り、その構成要素や法則を知り、それをコンピュータにきちんと伝えて、実行可能な内容を使用デバイスに最適化した形でアウトプットさせることが必要です。
この時点でなかなかハードですが、ここへ更に「面白さ」という壁が立ちはだかります。
「面白さ」の追求
どれだけ現実空間と同じような場が作れたとしても、それだけではゲームになりません。目標、ハードル、使える手段があり、それらが面白くなければいけません。
有名ゲーム「スーパーマリオブラザーズ」の例を挙げましょう。
目標 :敵ボスにさらわれたお姫様を救う
ハードル:敵が邪魔をする
手段 :ジャンプで敵を踏んだり避けたりして進む
目標はモチベーションが上がるもの、ハードルは頑張れば越えられるもの、手段は使うだけで楽しいものになっています。マリオのジャンプは、リアルな物理法則としてはありえない動きです。ですが、ボタンの強弱での滞空時間変化や空中での向き変更含め、プレイヤーの意思を気持ちよく反映させるために練り上げられた動きなのです。
※詳しくは「マリオ ジャンプ」でググってみてください。
また、「面白い」というものは、とても曖昧で個人的な属性も強いものです。絶対的な正解はなく、ケースバイケースで考えるしかありません。料理人が「美味しい」、アーティストが「美しい」を目指すのと同様、ゲーム開発者は「面白い」と日々格闘しています。
その際に前提となるのが、面白さを感じる「人間」への知識と理解です。
心理学、認知科学、神経科学など生物個体の反応もあれば、プレイヤーが属する文化・社会による影響やその対応(ローカライズ)の必要性、オンライン/オフライン含めた他プレイヤーとの関係性、などなど、面白さに影響を与える要素は数え切れません。こういったことを学びつつ、時には自らの実体験や直感めいたことも含め、メニューのボタン一つ触れるにも面白さや遊びを仕込むのです。
そういった意味では、人間への興味とその探求を含めた実践、というのが他のエンジニアと異なる「ゲームエンジニア」ならではの専門性と言えるかもしれません。
「遊び」の必要性
オランダの歴史家ホイジンガは著書『ホモ・ルーデンス(遊ぶ人)』で「文化こそ遊びから生まれる」と述べましたが、遊びとは人類が追い求めずにいられないものです。衣食住が満ち足りているはずの刑務所で過ごすことが苦痛なのは、厳格な規則のもと娯楽(遊び)が剝奪されるためです。遊びが無い人生とはそれだけで罰なのです。
近年、ネットワークを介したデジタルな経済や人間関係が生活にどんどん浸透してきています。生活にもともと必須の「遊び」と、近年必須となった「デジタル」、この2つをカバーするゲームエンジニアの領域は、今後は社会との重なりをより深めていくでしょう。スローライフゲーム「あつまれ どうぶつの森(あつ森)」のコロナ禍におけるブームはその端緒です。
そんな、新たな世界が広がっていくワクワク感と共にある日々は、それ自体がとても「面白い」ものなのです。