BLOCKSUMとネットワークランキングについて

はじめに

 この文章を読んでいる方の中に、最近のアミューズメント施設に入ったことがある方はいらっしゃるでしょうか? 近頃では、所謂ゲームセンターに置かれているようなビデオゲームの中にも、ネットワークを利用した機能が搭載されていることが当たり前になって来ています。その利用度は様々で、スコアデータのやりとり程度から、ネットワーク越しに対戦を行うことが前提である物まで登場しています。

 さて、今年度調布祭でも披露しているパズルゲーム「BLOCKSUM」にはネットワークを利用したランキング機能が搭載されています。この文章では、「BLOCKSUM」のネットワーク機能を制作するに当たって考えたことを書いてみようと思います。

BLOCKSUMの生い立ち

 BLOCKSUMは数字を足すことでブロックを消していくパズルゲームです。このゲームは元々第7回CESAスチューデントゲーム大賞に応募する為に作られた物でした。今年度の調布祭で出展されるBLOCKSUMは、そのときのゲームルールを変えず、演出や機能を強化しようという目論見のもと1から作り直した物となっています。この機能強化の1番の軸がネットワークランキングでした。

 もともとBLOCKSUMはアミューズメント施設のパズルゲームをイメージして作られました。アミューズメント施設でのビデオゲームの特徴として、同じ筐体でたくさんの人がプレイするということが挙げられます。このため、他の人がプレイする様子を後ろから眺めたり、筐体に記録されたハイスコアを塗り替えようと奮闘したりする楽しさがあります。これをBLOCKSUMにも導入出来ないかと考えた結果、ネットワークを利用したランキング&リプレイ機能を搭載することに決めました。

BLOCKSUMのランキング&リプレイ機能

 BLOCKSUMでは、プレイの結果をリプレイファイルと呼ばれるファイルに保存しています。このファイルをコピーすることで、他のコンピュータ上のBLOCKSUMでもその人のプレイが再現出来るようになっています。

 BLOCKSUMを遊んでいると、ランキングは自動的にネットワーク上のものと同期されます。ここで見たいプレイを選ぶことで、自動的にリプレイファイルをダウンロードし、それを再生することが出来るようになっています。

 自分のプレイの結果をネットワーク上にアップロードするには、付属のツールを使わなくてはなりません。いちいちゲーム外のプログラムを実行しないといけないことは面倒ですので、これは今回の反省点です。

技術的なお話

 BLOCKSUM本体はC++言語で、付属ツールはC#言語でかかれています。サーバ側はPHPを用いています。

 ランキングサーバとのデータのやりとりはHTTPを用いています。C++言語ではwininetライブラリを、C#言語ではWebClientクラスを使うことで簡潔に記述しています。

最後に

 ランキングを使って人と競い合う要素は、プレイヤーのモチベーションを上げる為の一つの手段として有効です。そのためにはゲーム自体がスコアを競えるような面白さを持たなければなりません。ネットワーク機能を作った事に満足せず、ゲーム自体の面白さを引き出せるよう、考察をやめないようにしようと思っています。