21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

あなたがゲームプログラマなら心がけてほしいこと

Last updated at Posted at 2018-01-10

ゲーム開発は、業務用のアプリ等を開発するのとは、ちょっと違います。

業務アプリは、ユーザーの生活の利便性を上げることが主な目的ですが、ゲームの目的は、ユーザーを楽しませる事です。

楽しんでもらえるコンテンツを作るために、どういった事に気をつけるべきなのでしょうか? 筆者の経験から、チームでゲーム開発をする際に気をつけたい事をまとめました。

※筆者はオンラインゲームの開発経験しかないので、コンシューマ系とは事情がことなるかも知れません。

その1:渡された仕様書はふわっとしたガイドくらいに考える

仕様書はプランナーさんが作ってくれますが、人によってはびっくりするくらいいい加減です。いい加減な仕様書を見たとき、「こんな仕様じゃ(プログラムを)書けないよ!」と怒ったりしないようにしましょう。

いい加減な仕様書が来たら、プログラマーである自分が、自分で仕様を決められるチャンスです。プランナーの意図をうまく読み取りつつ、自分としてはどういう仕様が良いと思うのかを検討し、ユーザー視点から見ても、プランナー視点から見ても、プログラマ視点から見ても、わかりやすいエレガントなソフトウェア設計を考えましょう。

そして、仕様変更は必ず起こると思ってください。どういう変更がありそうか、プランナーと相談しながら、可能性を探り、柔軟に対応できる準備をしておく必要があります。

また、いい加減な仕様をそのまま鵜呑みにして、プログラム設計をすることは、とても危険です。

少し知識のあるプランナーなら、フローチャートを書く人もいます。でもそのフローチャートをそのままプログラムに落とし込むのは絶対にやめましょう。多くの場合、プランナーの書くフローチャートは、「こんな時はこう動いてほしい」ということを表現しているだけで、プログラムの処理を書いている訳ではありません。

そこに書かれてある事と、そこには書かれていないあらゆる例外的なケースが正しく動くことを実現するために、どのようなデータと処理フローが必要かは、自分で考える必要があります。

その2:プランナーと上手にコミュニケーションする術を身につける

ある機能を実装するのに、いくつかの方法が考えられ、それぞれメリットデメリットがある、という状況が発生することがあります。
そういう時は、そのメリットデメリットをプランナーに伝え、どの方法を採用するか、判断してもらう必要がありますが、プログラムの具体的な中身の話をしても、プランナーにはわかりません。

よって、「この方法だと、今後こういう事には対応しやすいけど、こういうバグが発生しやすくなるかも」とか、「この方法だと、ごく少ない工数で実装できるけど、今後の仕様変更はしにくくなる」とか、そういった説明をしなければなりません。

なぜ?と聞かれたら、できるだけプログラム内部の話をせずに、うまく理由を説明する必要があります。(プランナーも素人ではないので、ある程度のコンピュータ用語は使って大丈夫です)

この連携がうまくいくかどうかは、自分のコミュニケーション能力にかかってきます。 コミュニケーション能力を磨くというのはなかなか難しいのですが、例えば周りの人でコミュニケーション上手な人がいたら、その人の振る舞いや、言葉の使い方を真似するのも、一つの手です。

その3:試行錯誤をいかに早く回せるかが、ゲームのクオリティを決める

ゲームづくりは、陶芸家がなんども作品を作っては壊すのに似ています。
作ってみて、遊んでみて、「これじゃない!」と言って壊し、作り直し・・・を繰り返すなかで、良い作品が生まれます。

陶芸なら、作業は一人で完結しますが、チーム開発ではそうは行きません。プランナーが「作り直したい!」と思ったら、実際に作り直すのはプログラマーです。

ただ、プランナーはプログラムを書き換えることはできませんが、データを修正することはできます。ゲームの挙動を変えるのに、データの修正だけで終わるのであれば、プログラマーの手を煩わす事なく、プランナーの作業だけで完結します。

よって、プランナーが作業しやすいデータ設計をして、その編集ツールを用意することは、面倒に思うことも多いかもしれませんが、おろそかにしてはいけません。

プランナーの利便性を上げることは、試行錯誤のスピードを上げることになり、そのままゲームのクオリティに直結すると思いましょう。

その4:自分の技術はまだまだだと思っておく

技術に関して自信過剰な人は、自分にしかわからないプログラムを書く傾向があります。チーム開発を行う場合、その人にしかわからないプログラムというのは、とても危険です。

本当に技術力の高いプログラマは、他の人にもわかりやすいプログラムを書きます。自分がいつまでもそのチームにいるという事はまずないし、もし自分がいない時に何か問題が起こった場合、他の人が調査しやすくするためです。

チーム全体の技術力をあげたいと思うなら、他の人の半歩先のプログラムを書いて、それを共有するようにしましょう。

また、常に技術力を向上させるためにも、「自分の技術力は高い」などと思っているのは良くありません。「まだまだ学べることがたくさんある」と思っている人の方が、成長するし、他の人にも好かれます。

まとめ

以上、筆者が考える、ゲームプログラマーなら気をつけたい事を紹介させて頂きました。
ゲームプログラマーを目指す方、ゲームプログラマーとしてステップアップしたいという方の参考になれば幸いです。

21
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?