Steamのデータで遊んだ話
この記事は、東京大学ゲーム研究会アドベントカレンダー2024、7日目の記事です。
はじめに
おはようございます。TGA22のMMOです。
早速ですが、Steamはご存じですか?この記事は東京大学ゲーム研究会の記事であると分かっているみなさまにとっては、説明不要でしょうが、改めてどういったものかを述べておきましょう。 Wikipedia曰く、
Steam(スチーム)は、PCゲーム・PCソフトウェアおよびストリーミングビデオのダウンロード販売とハードウェアの通信販売、デジタル著作権管理、マルチプレイヤーゲームのサポート、ユーザーの交流補助を目的としたプラットフォーム。
らしいです。要するにゲームを売ったりプレイヤーの交流の場を提供しているやつです。PCでゲームを嗜む方なら、必ず利用したことがあると思います。今回はSteamのゲームの情報のデータで遊んだ話をしようと思います。
ゲームが要求するスペックを可視化しよう!
Steamには大なり小なり様々なゲームが存在していることはみなさんもご存じでしょうが、そのゲームたちが一体どれくらい規模(データ容量とか)で、プレイするためにプレイヤーにどれくらいマシンスペックを要求してくるか気になりませんか?気になりますよね?それを可視化してやろうと作ったのがこちらになります。「ロードなっが!」とか「何をすればいいんだ?」と、すぐにリンクを踏んでもそうなるだけと思います。詳しい使用方法や言い訳は後述します。とにかく、このツールを使えば上記の疑問を一部解消できます。
経緯
一応なんで可視化なんてしたのかという経緯に触れておきます。興味のない人は飛ばしてください。
筆者は学生なので、単位獲得のためいろいろなことをやらされるのですが、先日の演習の一環で「データの可視化」というのに触れました。チームを組んで、いっぱい何かしらデータを集めて、それを可視化するWEBページを作れという演習でした。それでたまたま選んだデータの取得先がSteamのデータベースだったというわけです。「ゲームの要求スペックを知りたい!」と思っていたのは確かですが、正直に言うと必修の演習を乗り越えるためのついでにできたものです。とりあえず、演習の一環でWeb周り初心者が作ったページであるということはご理解ください。
仕様・使用方法
扱ったデータ
データはSteam APIを用いて、Steamのゲームのデータ(2004年から2024年11月までで発売予定も含む)をかき集めました。本ツールで使用したデータとしてのゲームの本数は約100,000本です。(Demo、DLC、サントラを含めると200,000以上あるっぽい。)集めた情報は、ゲームが要求するスペック(ストレージ容量、GPUなど)やそのゲームの評価、ゲームの説明文などです。ゲームの本数との積を考えれば、1,000,000のデータを扱っています。ロードが長いのは、最初にそのデータファイルをいったん全部読み込んでいるというとんでも仕様だからです。(データ収集だけでチーム3人のPCを丸3日フル稼働させました。)
使用例と画面説明
PCのChromeだと、以下の画像みたいな画面になっていると思います。 真ん中にデータが表示されるのですが、白い線しか表示されていないはずです。とりあえず、上のラジオボタンから散布図を選択して、CategoriesとPublishersのAllにチェックをつけてみてください。 小さい円がいっぱい表示されていると思います。その一つ一つがゲームで我々が収集できたデータのうち容量と発売日が判明したものすべてが表示されています。(データの完全性は保証できません。)緑色は評価が高く、赤色は評価が低く、白は賛否両論やレビューが少なく評価がわからないものです。とりあえず両方Allをつけることですべてのゲームを表示させましたが、左のフィルターでゲームを絞ることができます。スライダーはその範囲のゲームを絞り込めます。カテゴリーはそのカテゴリーに属しているゲームを表示させられます。Publishersは販売元に関する絞り込みができます。ここでややこしいのは、CategoriesやPublishersのチェックボックスはその中ではorで異なるフィルター同士はandになっているということです。例えば、Categoriesでアクションとアドベンチャーにチェックを入れてPublishersでKOEI TECMO GAMES CO., LTD.とCAPCOM Co., Ltd.にチェックを入れると、アクションまたはアドベンチャーのカテゴリに属し、KOEI TECMO GAMES CO., LTD.またはCAPCOM Co., Ltd.によって販売されているゲームが表示されるということです。まぎらわしいですね。
円をクリックすると、そのゲームの詳細を見ることができます。ゲームの説明をそのまま貼り付けているので、画像がいろいろおかしいことになってますが、気になったゲームをクリックしてみて、少し詳細に見れる補助機能と思ってください。ゲームの名前の部分がリンクになっていて踏めば、Steamの実際のページに飛びます。
グラフエリア内で見たいエリアをドラッグ&ドロップすることで拡大することも可能です。拡大して戻す方法は上のResetボタンしかありません。(ほんとはひとつ前に戻る機能とかつけたかった。)
ちなみに白い線はbackblazeのデータセンタがその日検査したHDDやSSDの容量の平均値です。大きめのストレージの指標として載せましたが、世の中のゲーマーたちが本当にこれだけの容量のストレージを持っているのかは謎です。ただストレージ容量は日々大きくなっているというのはわかると思います。4色の帯はその白線と平行なα%の線です。ズームしても比べられるように一応付けてあります。
ヒートマップモードはその小さい円の密度です。縦で正規化してそのエリアに含まれるゲームの本数の割合を色で表すモードです。
要求GPUの推移
右下の青いボタンを押すと、別ページに飛んで、こちらは要求スペックにどんなGPU(以上)を要求しているかについて表示できます。右のフィルターから表示モードを変更できるのですが、計上方法の変更だけわかりづらいと思うので、説明すると、半年や1年を選択すると、表示されている日付までの半年間あるいは1年間の累積を表示されるということです。つまり、増加量を表示させるモードです。
このツールでわかること
上記画像の赤線の傾きや青円の部分が黒くなっているところ見る限り、予想通りゲームの容量はここ10年だけ切り取っても指数関数的には増加しているとわかります。とりあえず私が示したかったことは示せたので、あとは、皆さんでツールをいじっていろいろ見てみてください。「ちゃんと容量が大きいゲームでもこんな低評価受けてるんだ!」みたいな探し方をすると結構面白いです。
バグっぽい仕様
上記でも述べましたが、WEB周り初心者の学生がデータ収集含め60人・時間で作ったものです。以下に示すのは、不具合ではなく仕様です。
フィルターの数字が明らかに合っていない
例えば、CategoriesをAllとしてKOEI TECMO GAMES CO., LTD.(1107)にチェックを入れて本当に1107個のゲームが表示されているかと言うと、おそらく表示されていません。というのも、フィルターのラベルを作ったときにゲームの本数を数えたわけですが、いくらか発売日やゲームの容量をうまく取得できていないゲームもカウントしているからです。括弧の数字はあくまで、我々が得られたゲームのデータの数と思ってください。本数順にソートしていますが、おそらく欠陥の割合はそう変わらないでしょうし、上に表示されている販売会社ほど多くゲームの世に打ち出しているということには変わりないでしょう(多分)。
サイドバーの表示が変
上述しましたが、小さい円をクリックした後に生えてくるサイドバーの表示がおかしい場合があります。これは、Steamのページの説明欄をそのまま画像を含む形で貼り付けているからです。画像のリサイズがうまくできないため、画像だけ横にはみ出るという現象が起きます。
線形軸にするとつぶれる
ズームを一切していない状態で線形軸にすると、HDDなどのストレージの容量とゲームの容量は桁が違うので、下のほうにかたまります。データのプロットをしたことがある人にとっては当然のことですが、一応。
ボタンの位置が軸などにかぶる
ウィンドウを最大にすると、多分解消されるかと思います。16:9あるいは16:10のディスプレイで最大化してちょうどよく見えるようにしてます。
おわりに
言い訳を連ねるような記事になりましたが、好きなゲームのデータを扱って学校の課題を遂行できたので、個人的には満足しています。一緒に制作したチームのみなさま、アドバイスをくださったチーム以外の同級生、TAさん、先生に感謝を。