DELiGHTWORKS

DELiGHTWORKS株式会社の開発に関する情報を発信していきます。

プログラマーとして生きていくこと

ディライトワークスのプログラマーの田村です。

最近プログラマーとして考えていること、を書かせて戴ければな、と思います。

プログラマーのみなさん、プログラマーとしてずっと生きていこうと考えているでしょうか。

それともどこかで限界が来ると考えているでしょうか。

たまにこんな話も聞きます、スペシャリストにはなれないからマネージャーになろうかな、ディレクターになろうかな、プロデューサーになろうかな。

はたまた、人と話したりするのは苦手だからスペシャリストになろうかな、なんて話です。

凄いプログラマーに出会ってしまうと、自分がプログラムやらなくてもな……、なんて事を考えてしまうことありますよね。

凄いゲームデザイナーに出会えば、ああはなれないからプログラムを頑張ろう、なんてことも思うかもしれません。

では、プログラマーとして生きていくとしたとき、何が必要でしょうか。

一言で言えば大事なのは「問題を解決する力」です。

プログラマーはプログラムが書ければプログラマーなのでしょうか。

きっとそうではありません。

世の中の殆どのプログラムは問題を解決するために存在しています。

人間がやったらミスしそうなことを自動化するとか、演算するとか、代わりにやってくれたり、ゲームでいえば、ユーザーさんに快適かつ、面白いと感じて戴くために様々な問題を解決する必要があります。

AIならユーザーさんが気持ち良く戦えるようなAIが必要かもしれません。

当たり判定もオブジェクトが単に当たれば良いのでは無く、UIのボタンは単に押せれば良いのではありません。

「面白いゲームを遊んで戴けるにはどうしたら最適か?」

という問題を解決する必要があるんですね。

プログラマにとって「言われたとおり動いているでしょう」はプロとして失格です。

仕様書にそう書かれていたからそう実装した、ではいけないんですね。

例えば医療機械のプログラムで「確かにこう書いたら患者さんが危険だけれども、仕様書にはこう書いてあったから」ではすみませんよね。

同様に「仕様書に書いてなかったから想定していません」も危険です。

アクションゲームの仕様書に「Aボタンを押したら剣を振る」 と書いてあったら、剣を振る実装をするのではありません。

「何故剣を振らなければならないのか、剣を振った結果どうなるのか、仕様書を書いた人の意図はなにか、最終的にユーザーさんはどんな操作やどんな体験をするのか」まで考えなければなりません。

プログラムは0と1しかない、だからロジカルだとよく言われます。

しかし、私はそう思いません。プログラマほどアナログでファジーな仕事もなかなかないと思っています。

同じ仕様書があっても、10人のプログラマがいればそれぞれ違ったゲームやシステムが産まれる筈です。たとえ見た目が同じように見えたとしても。

言ってしまうとプログラマーとして生きていくこと、というのはずっとこうした問題と向き合っていくことになります。

そして、自分たちは常に「面白いゲームを創るにはどうしたらいいか?」という問題と向き合っています。

「ただ純粋に、面白いゲームを創ろう。」

という事を実現するためにです。

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方