ゲーム職種紹介~プログラマー編~
初めまして!
BOX:にてプログラマーリーダーを務めています、KAIEMON(かいえもん)です。よく「ポケットから何か出ないの?」「増えられないの?」とか言われますが、そういった要件は21世紀のネコ型ロボットに頼んでみましょう。きっと、その時に一番いいものを頭の中に浮かび上がらせてくれます(多分)。
さて、今回はプログラマー編を執筆させていただくということで、人生初の試みとなる記事の執筆ですね。今まで記事を書いたことがないので、少し変な文章になっているかもしれませんが、ぜひ最後まで読んでいただけると幸いです。
1:はじめに
さてさて、ゲーム開発におけるプログラマーを今回ご紹介していきます。
が、お伝えする前に、注意点を一つだけ。
プログラマーもプランナーと同様、人の数だけ考え方があるようなものです。なので、今回の内容も、KAIEMONが思っているプログラマーという職種である、という事を念頭に、読んでいただければ幸いです。
2:プログラマーとは
では、ここから今回の本題。
プログラマーという職種はどんな職種なのかをご紹介します。
プログラマーとは、一言でいうと、「動き」を作る人です。
ゲームの殆ど全ての動きをプログラマーが作っているといっても過言ではありません。
例えば、あつまれどうぶつの森を参考に、どういった動きがあるのかを挙げてみます。
プレイヤーの動き
・Bボタンを押したらダッシュする
・Ⅹボタンを押したら持ち物を開く
・住民に向かってAボタンを押すと話しかける
ゲーム内の動き
・現実時間と同じ時間が流れる
・住民が村中を散策したり、流星群の日はフーコが訪れたりする
・海岸にジョニーが漂流してくる
軽く上げてみました。どの要素も、あつ森には欠かせないものですよね。
これらの動きは、(恐らく)すべてプログラマーが作っています。
では、どのように作っているのでしょうか。
こちらの画像をご覧ください。
なんじゃこりゃと、なる方も多いのではないでしょうか。
英数字の羅列が画面いっぱいに広がっている、これがプログラムの本体であり、僕たちプログラマーがパソコンとお喋りするためのプログラム言語です。この英数字一つひとつが、ゲームを動かしているのですね。
また、ゲームを作るうえでもう一つ必要なツールがあります。
UnityやUnreal Engineといった名前、どこかで聞いたことあるかと思います。これらをゲームエンジンと呼ぶのですが、ゲームを作るうえでとっても重要なツール。キャラクターを配置したり、建物を配置したりと、主に皆さんが普段から見ているゲーム画面を作るためのツールです。こちらも、ゲーム制作には欠かせないツールです。
前回のプランナー編でもあったように、プログラマーはやる事がはっきりとしています。とはいっても、自分で 0 から 100 まですべて考えて作っているというわけではありません。では、いったいどのようにして作っているのか、続いてプログラマーの役割についてお話しします。
3:プログラマーの役割
ゲーム制作におけるプログラマーの役割は、主に3つあると考えています。
① プランナーからの要望に応える
② 自分で面白さを追求する
③ ゲームを作るためのシステムを作る
このセクションでは、この3つについて、解説していこうと思います。
プログラマーの役割① プランナーからの要望に応える
先ほど述べたように、プログラマーはすべて自分で 0 から 100 まで全て考えてゲームを作っているというわけではありません。基本的にプランナーが考えたものをプログラマーが形にするという工程でゲームは作られていきます。
プランナーはプログラムが書けるというわけではありません。(たまに書けるプランナーもいますが、全員が全員そういうわけではないと思っています)。なので、プランナーが「こういう動きが欲しい!」と頼んできたら、プログラマーは「いいよ」と言って作ってあげましょう。それがプログラマーなのでね。
ただし、一度やってみた結果難しそうだな、とか、技術的にこれ無理だろぉというのがあれば、ちゃんとプランナーには相談することも必要です。
プログラマーの役割② 自分で面白さを追求する
とは言っても、プランナーから頼まれた動きだけを作るだけでは、もったいないです。プログラマーといえど、一人のゲームが好きな人間なので、作ってて「ここもう少し変えたい!」と思うことが出てきます。そうしたら、そこの部分がどうなればもっと面白くなるか、自分なりに追求すると、もっといいものに変わったりします。
僕自身よくやることなんですが、「もうちょっと華ほしいよな」って言って、一つの部分を物凄くこだわるんです。過去にはタイトル画面に2、3日かけたこともありました。一つひとつの動きをピクセル単位でこだわって、「〇〇な見た目のほうが面白い」とか「△△な動きしたほうがかっこいい(かわいい)」とか、結構うるさく言ったのを今でも覚えています。
でも、それだけ、プランナーと違う感性を持っているってことなんですよね。人によって面白さは違う。で、特にプログラマーはその感性を出しやすいんですよ。実際に作っちゃえばいい話だから。
なので、自分で面白さを追求するのもとっても大事なんですね。
面白そうだ!と思ったらどんどんプランナーに提案してあげましょう。
プログラマーの役割③ ゲームを作るためのシステムを作る
少し小難しい話ですが、場合によっては、ゲームを作る前にシステムを作るのも、プログラマーの役割です。
開発って、短いものでも半年や1年、長いものになると5年以上になることもあるので、効率よく行っていきたいのですね。そういう時に、無駄な手間や時間は極力省きたいと考え、開発用のシステムを作ることもあります。
例えば、プランナーはレベルデザインなども行うため、頻繁にゲーム内のデータに触れます。プランナーがプログラマーに逐一お願いするとどうしてもそこで時間を使ってしまうので、プランナーがデータを触れるようなシステムを組みます。そうすることで、プランナーも必要以上にプログラマーにお願いすることもなくなりますし、プログラマーも作業により集中できるようになるのです。
また、Unity、UE4などの既存のゲームエンジンだけでは表現したいことが表現できない、といった理由から、ゲームエンジンを自作してしまう会社も少なくはないのです。
バイオハザード7「RE ENGINE」
カプコンの代表作のひとつ『バイオハザード』シリーズのナンバリングタイトル『バイオハザード7 レジデント イービル』(以下、『バイオ7』)の開発に際し、現場から求められたのはさらなる表現力の向上、効率的な開発を可能とするゲームエンジンだった。「そこでカプコンでは新たに"社内でAAAタイトルを作成可能なエンジン"を目標に、『RE ENGINE』という新エンジンの開発をスタートさせました」(プロデューサー・川田将央氏)。
本文引用:https://cgworld.jp/feature/201702-cgw222T2-bio.html
僕自身はゲームエンジンを作ったことはないので既存の記事からご紹介させていただきましたが、このように、開発のニーズに合わせて、プログラマーが開発するための部分を作ることもあるんですね。
このように、プログラマーの役割は主に3つあるのです。
① プランナーからの要望に応える
② 自分で面白さを追求する
③ ゲームを作るためのシステムを作る
もちろん、開発を進めていくとこれだけではない部分も出てくると思いますが、どの開発でもこの3つの役割が基本となるでしょう。
4:エンディング
本来はBOX:のプログラマー紹介しようと思ったのですが、プランナーのように、担当が人によってすべてを通して同じになるというわけではないと勝手に考えているので、今回は紹介を省きます。
多分、近いうちに本人たちによる記事の執筆があると思いますので、そこまでお楽しみに!
というわけでエンディングなんですが、あまり文章が得意じゃない人が長々と書いてしまったので、読みづらかったらごめんなさい。人生で初めて記事を執筆するということで、なかなか最初はうまく言葉が作れずでしたが、いろいろ書いてみたらいつの間にか3000字近くなっていました。本当はまだ語りたい部分があるのですが、それは今後機会があればまた語らせていただきます(笑)
今回はプログラマーという職種についてご紹介させていただきましたが、今後は、僕だけでなくプログラムメンバーによる技術共有記事が上がると思いますので、乞うご期待!
それでは次回は、デザイナーリーダーの詠による、『ゲーム職種紹介 デザイナー編』!お楽しみに!
KAIEMON
BOX:公式Twitterはコチラ!