ゲーム「オブリビオン」から考える自由度デザイン

今日はゲームにおける、プレイヤーが思った通りの事が実現できるという意味での「自由度」について思う事をつらつら。


ゲームというのは何でもかんでも出来るようにしてしまうと、簡単に開発者の想定外の範囲に足を踏み入る事が出来てしまい、そこには対策は施されていないので不具合が起こってしまう。ゲームが進行できなくなる問題すら起こりうる。その為、問題が起こりうるラインよりもかなり手前の段階で「出来る事」に制限をかけた作りをする。

それはもちろんわかるのだけど、しかし操作しているキャラクターの膝くらいの高さの段差も超えられなかったりするのを見ると、長年のゲームで慣れてはいるものの、冷静に考えてしまうと興醒めしてしまう。特にグラフィックがリアルに近づいているので、それに反比例する形でゲーム上の「仕方ない事」はおかしなものに見えてしまうもの。


ここで上述の流れの意味での「自由度」において感動した要素のあるゲームを紹介。


メタルギアソリッド
ゲームにおける自由度として究極的なのは、プレイヤーが「こういう事をしたら、こうなるのでは?(現実的にはそうなるのだから)」が実際やってみると実現できる事。このタイトルではその辺りが比較的多く実現できているタイトルと感じる。

例えば灯りが点いた蛍光灯。あれを銃で撃ったら消えるんじゃないか?そうすれば敵の視界も悪くなりそうだし、と思ってやってみると本当に消えて、敵の視力も落ちる。まあこれは最近のゲームではそれほど珍しくなくなってきたものの、蛍光灯が単なる背景として描かれてるだけで、銃で撃とうが殴ろうがどうにもならないタイトルの方が多いのがゲームの世界。


オブリビオンの話その1◆
このゲームはNPCにも攻撃できるし、一般的に言われる「自由度」という意味では非常に高い部類のタイトル。しかしそういう事よりも個人的に特に感心したのは、下記のような事が出来る事。

オブリビオンでは重要人物から一般市民など、全NPCがその世界で「生活」している。ゲームの中で時間の概念があり、NPCも一人一人が朝になれば目覚めて朝食を取り、家を出て仕事に行き、夜になれば家に帰ってきて食事をして寝る。そこでNPCが食事をする前に、こっそり食卓に並ぶ料理の中に毒リンゴを混ぜておくと、NPCはそれを食べてしまい、毒殺する事が可能。

この事が実現できた事で、プログラムの観点での仕様に感心した。通常のゲームであればレールから外れた事は出来ないようになっている。食卓に毒りんごを混ぜようとしたとしても、食べる料理は固定でプログラミングされており、食べているモーションを見せるだけ。しかしオブリビオンでのNPCの食事に関する仕様は、

  • NPCは自宅等にある信用あるものしか食べない
  • 自宅の戸棚やNPCの鞄に収納された食べ物が食卓に並ぶ
  • 食卓に並んだ料理を食べる
  • 食べた事による結果が起こる

となっているのだろう。他のゲームでは「食事をしている」事を見せる為の「上辺だけ」をプログラムしているのに対し、オブリビオンでは現実における人間が食事をする際の様々な思考パターンであったり、食べるとどうなるのか、という「根本」をプログラムする事で、食事をするという結果が生まれている。


オブリビオンの話その2◆
上述の通り、オブリビオンではNPCが生活しているのですが、他のゲームと違う点でもう一つ感動したのは「自分(主人公)を中心に回っている世界では無い」点。

大抵のゲームは自分中心に世界が回っていると言っても過言ではなく、見えている範囲でしか事件は起きない。しかしオブリビオンの場合は、例えばプレイしていてこんな事が起こったりする。

山道を歩いていると、名もわからぬ村人NPCが命を落として倒れている。これはその場所に行くと必ず発生する(発生している)イベントでは無い。ちなみにこれは山賊に襲われた結果。

上述のようにプログラムの観点で仕様を書くとこんな感じだと思う。

  • その村人は日中の行動として、仕事の為に村の間を行き来している(行き来するプログラムが組まれている)
  • 山賊は山道をランダムで歩き回っており、山賊以外の人間が近くにいたら襲い掛かる(襲い掛かるプログラムが組まれている)

この二つの無関係な仕様が、たまたま合致した事で発生した事件であるのだが、人一人の命がかかった大きな事件(イベント)だとしても、主人公中心で回る世界ではないので、主人公がその場にいなくても世界のどこかで起きてしまう。それがオブリビオンというゲームの世界なのです。

通常のゲームで山道に人が倒れていれば、それは開発者が意図して倒れさせてるわけで、その後に発展するイベントの一幕である所ですが、オブリビオンの場合はそれは開発者が意図してデザインした演出ではないし、当然イベントとして発展するわけではなかったりする。そこが妙にリアルであり、プレイヤーはその現場を見て、何が起こったかを察し、確かにそのNPCは「生きていた」事が逆に生々しく伝わってくるのが、このゲームの魅力ともなってると思う。


◆真に自由度のあるゲームのプログラミングとは◆
上述の事の総括となりますが、そういったゲームを開発する際の、プログラミングの観点での仕様としては「個々の演出をそう見せるためのプログラムを組む」のではなく、「現実の事物、現象・事象を再現するようにプログラムする」事だろう。しかしそれはプログラム的に無限とも言える量を書かなければ完全には再現する事ができず、不可能な話。とはいえ、少なからず様々な試みにチャレンジしているタイトルはちらほら見られるので、今後も多くのタイトルで積極的にチャレンジしてほしいものです。