昔からよく思うのは、プログラミングの快感とゲームをプレイしている時の快感には多くの共通点があるということである。

小学生の頃、ロトのつるぎを手に入れたのだけれど寝る時間になってしまい、次の日は学校に行ってから家に帰るまでの時間、ロトのつるぎを装備したら今まで倒すのが大変だったモンスターとの戦いがどのくらい楽になるのだろうと想像ばかりして、授業が終わると一目散に家に帰ってテレビに噛り付いて新しい武器の切れ味を試した。

ソフトウェアを開発しているとき、高頻度で呼び出されるライブラリのパフォーマンスチューニングをしていて、うーんこれ以上はちょっと難しいのではと唸っているときに、ふと良い方法を思いつくことがあって、こういう時はどんなに急ぎの仕事があっても、そのやり方を実際に組み込んで全体がどんなに速くなるのかを見てみたくてウズウズして、いても立ってもいられなくなるのである。

これはいわば、試してみたい欲求である。


ゲームをしていてうんざりしてしまうときがあるのは、例えば、工夫する余地がなく、ただひたすらに時間をかけなければ次に進めないような種類のゲームをやっているときである *1。物語を先に進めるのに、なぜここまで単純労働を繰り返さなければならないのかとやきもきしながら、それでも義務感でエンディングまでやってしまう傾向にある私のような性格だとなおさらのことである。そういう時には、Web で攻略法を見てさっさとクリアしてしまうことさえ厭わない。

プログラミングでも - リズミカルにタイピングしているだけで楽しくなってくる私はプログラミングをしていて嫌だと思ったことはほとんどないが - サン・マイクロシステムズの新入社員研修が終わったばかりの頃、一度だけ嫌だと思ったことを記憶していて、それは仕様をポンと渡されて、この通り作ってと言われたときだった。工夫の余地がなく、誰でもよい感じが滲み出ており、こういう時には、言われた仕様の10倍くらいのものを作って、二度とつまらない仕事がやってこないようにしようと心がけるのである。

これはいわば、交換可能性に対する嫌悪感である。


もしプログラマーでゲーマーでない人や、ゲーマーでプログラマーではない人で、上記のような性質にピンとくる人がいたら、ゲームやプログラミングを始めてみると、そこに適正を見出すことができるかもしれない。



*1 日本のゲーム業界では、RPG を中心として、プレイ時間50時間程度、ミニゲームてんこ盛りにしてやり込み甲斐やお買い得感を持たせるというのが何となく前提となっているように見えるのだが、よほどバランス良くつくられていないと、これらはクリアまでの時間をダラダラと長引かせてゲームの面白さを損ねるだけなので、こんな前提は悪習として取っ払ってしまった方が良いと思う。この点、海外のゲームで参考になるのは World of Warcraftシヴィライゼーション4 あたりで、そもそもクリアやコンプリートという概念がないので200時間も300時間もプレイしても飽きがこないし、ミニゲームなどなくてもゲームのエッセンスだけで十二分に満足できる。


シヴィライゼーション4 完全日本語版
サイバーフロント (2006/06/17)