吉岡直人です。この連載ではソシャゲの秘密をプログラマの観点から語ってみたいと思います。今回はソシャゲ、というよりコンピュータゲームにおける「偶然性」の演出について。

「PONG」の当時の筐体(左)と画面(右)
「PONG」の当時の筐体(左)と画面(右)
2016年3月2日から5月30日まで日本科学未来館で開催された企画展「GAME ON ~ゲームってなんでおもしろい?~」の展示より。撮影=納富廉邦

 最近、人工知能(AI)がテレビや新聞で取りあげられる機会が増えました。3月にはグーグルの子会社で人工知能の研究を続ける英ディープマインドが開発した囲碁AIの「アルファ碁(AlphaGo)」が、韓国のプロ棋士・李世ドル氏に5番勝負を挑んで圧勝したというニュースが話題になりました。

 実はコンピュータゲームはその黎明期から「ゲームAI」を搭載してきました。本来の意味での「Artificial Intelligence」を名乗るには単純すぎますが、ゲームプレーヤーを楽しませるような反応を返すという意味で、あたかも「知性」を持つかのようにプログラムされていました。

 初期のテレビゲームの傑作に、米Atariの「PONG」があります。卓球を単純化したようなゲームで、2人のプレーヤーは回転するつまみを操作してパドルを動かし、相手と玉を打ち合います。打ち返し損ねると相手に点数が入ります。

 オリジナルのPONGは人間同士で対戦して遊ぶゲームでしたが、程なくコンピュータを相手に一人で遊べるタイプも登場しました。ここで重要なのは、一人プレーの場合、相手のパドルはコンピュータが自動的に動かしている点です。

 よく考えてみましょう。PONGで玉を動かし、画面の描画しているのはコンピュータです。プレーヤーがどのようにつまみを動かしたかを読み取って、プレーヤーのパドルを描画するのもコンピュータ。つまり、このゲームの中では、コンピュータは世界の全てを把握する万能神の立場です。

 もしコンピュータが対戦相手として神のように振る舞えばどうでしょうか。プレーヤーがいくら頑張って玉を打ち返しても、全てコンピュータが拾ってしまう。そんなゲーム、面白くも何ともありません。そこで、いいあんばいにコンピュータがミスをして、プレーヤーを楽しませるようなプログラムが必要になります。乱暴にまとめれば、これが「ゲームAI」です。

 ゲームAIは、プレーヤーに勝つ快感を味わってもらいつつ、負けたときはもう少しで勝てたのに!と思ってもらえるような「偶然性」を演出するようにプログラムする必要があります。対戦型ゲームにおいてゲームAIの出来不出来は成功を左右する重要な要素です。