あるSteamプレイヤーが遭遇した、不思議な現象が話題だ。プレイヤーがゲーム内実績解除のためにPCの時間設定を操作したところ、Steamクライアントのフォントが切り替わる現象に遭遇した。時間設定を変更したことで、なぜSteamクライアントのフォントが切り替わってしまったのか。これには、PCの時刻設定が抱える「2038年問題」が関係しているようだ。GIGAZINEが報じている。
一連の現象の発端となったのは、メタ視点アドベンチャーゲーム『The Stanley Parable: Ultra Deluxe』だ。同作は2013年にリリースされ高い評価を得たPC向けゲーム『The Stanley Parable』のリメイク版にあたる。プレイヤーは主人公のスタンリーとして、無人のオフィスを探索していく。プレイを通して謎の声「ナレーター」が、常にメタ視点から主人公とプレイヤーに語りかけてくるのが特徴だ。
本作はゲーム本編に引けを取らない、かなり風変りなSteam実績でも知られている。そのひとつが、オリジナル版において「長期間ゲームを起動しない」ことで解除される実績「Go outside」だ。これは実際に5年もの間、ゲームを起動”しない”ことで取得可能というもの。「こんなゲームを遊ぶ時間があったら外へ出ろ」というメッセージだろうか、皮肉あふれる本作らしい実績だ。この実績が正規の手段で解除できるようになったのは、オリジナル版リリースから5年後の2018年。この時は、当時の開発者もこの話題に触れている(関連記事)。
そして2022年4月、リメイク版にあたる『The Stanley Parable: Ultra Deluxe』がリリースされた。こちらのリメイク版にもオリジナル版同様、ゲームを一定期間プレイしないことで取得可能な実績「Super Go Outside」が存在する。実績解除に必要な”非”プレイ期間は「10年」と、さらに倍の年数になって再登場したかたちだ。正規の手段でこの実績を解除するには、早くともリリース日の10年後にあたる2032年4月まで、ゲームをプレイせずにただ待ち続ける必要がある。
しかし中には、別の手段で「10年待つ」実績を解除したプレイヤーもいるようだ。記事執筆時点で、Steam版『The Stanley Parable: Ultra Deluxe』の実績「Super Go Outside」取得率は3.8%。かなりの数のプレイヤーがすでにこの実績を取得していることになる。彼らはゲームが参照している日時に手を加えることで、10年待たずに「Super Go Outside」の実績を解除したと考えられそうだ。
Twitterユーザーのbµg氏も、同実績を解除しようとしたプレイヤーのひとりだ。bµg氏の場合、ゲームをプレイするPCのシステム時刻を手動で「2040年」に変更して、Steamクライアントを起動。10年以上未来の日付に設定したPCでゲームを起動することで、「10年待つ」実績の取得を試みた。すると意外なことに、Steamクライアントのフォントが通常と異なるものに変更されてしまったというのだ。bµg氏はこの現象について、10月9日にTwitterで報告した。あわせて投稿された画像を見る限り、確かにSteamの通常フォントとは異なる手書き風フォントに変更されている。
通常、時刻設定がアプリケーションのフォントに影響することは考えにくい。ではなぜシステム時刻を変更してゲームを起動すると、Steamクライアントのフォントが勝手に変更されてしまったのか。bµg氏はこの現象について自身で調査し、翌10月10日にブログとTwitterに調査結果を掲載した。この調査結果によると、カギを握るのは「2038年問題」だという。
一般にPCのOSやアプリケーションは、日付や時刻の情報をさまざまな形式で記憶・処理している。そのうち32ビット環境のUNIX系およびC/C++言語では、日時のフォーマットとして「32ビットの符号つき整数」が広く使われているのだ。この仕組みでは、1970年1月1日0時0分0秒を開始点として、数値を1秒ごとにカウントアップして、それを変換して現在の年・月・日・時・分・秒を示している。このカウントは内部的には、32桁の2進数にて扱われる。その範囲を10進数に直すと、「-2,147,483,648」から「2,147,483,647」となる。「2,147,483,647秒」を年に直せば約68年だ。そのためこの方式で扱えるのは、1970年1月1日を開始基準とした約68年分。つまりこの方式は、1970年の約68年後、正確には「2038年1月19日」以降の日時に対応していない。Xデーである2038年1月19日を過ぎると、数値はオーバーフローを起こし、意図しない動作を引き起こす原因になりうるのだ(参照:日経クロステック)。
このように一部の環境が2038年の特定の日付で不具合を起こし、世界中の機器やソフトウェアに影響を与える可能性は「2038年問題」と呼ばれている。今回のケースでは、PCのシステム時刻を2040年に設定したことがきっかけで、Steamクライアントのアクセス時刻もあわせて2040年に変更された。2038年以降の日付を指定したことで、さらにbµg氏の環境でUNIX系のフォント用ライブラリ「fontconfig」が誤動作を起こす。結果、Steamクライアントのフォントが無作為に選ばれた別のフォントに置き換わったと考えられる。ゲームの実績を解除しようとした結果、本来なら16年後の未来に起こりうる不具合を引き起こしていたのだ。
なお、2038年問題はあくまでも「32ビット環境」における重要な問題である。PCやゲーム機は64ビット環境への移行が進んでおり、一般のプレイヤーがこうした問題に直面する可能性は低いだろう。またサービスの不具合など間接的な影響についても、システム管理者が事前に対応することで、トラブルを未然に防ぐことが可能だ。ただし、ゲーム開発環境はそうとも限らない。ゲームの製作環境や、ゲーム開発に関わるライブラリなど、プレイヤーの目につかない部分が影響を受ける可能性が残っている。各タイトル側で2038年問題への対応が必要になるケースもあるだろう。ゲーム以外のソフトウェアも然りだ。bµg氏は調査結果とあわせて、「2038年は面白い年になりそうだ」と含みのあるコメントをしている。
またbµg氏はあわせて、2038年問題の影響を特に受けるであろう「32ビットのゲーム」についても懸念を示している。先述の通り32ビット環境は、2038年問題の影響を受けうるためだ。今回のbug氏の環境では「ライブラリの誤動作によるフォント表示の不具合」という軽微な影響で済んだものの、将来2038年問題によりゲームの起動や動作に致命的な不具合が生じる可能性は残っている。十数年後も、過去の名作がそのまま安定して遊べるとは限らない。「10年待つ」というユニークなゲーム実績が、思わぬかたちで近い未来の問題に警鐘を鳴らしたかたちだ。
『The Stanley Parable: Ultra Deluxe』は、PC(Steam)/Xbox One/Xbox Series X|Sおよび、海外PS4/PS5/Nintendo Switch向けに発売中。現在は日本語でのプレイに対応していないものの、次回のアップデートでは新たに日本語でのプレイに対応するとのこと。また時期は未定ながら、国内コンソール版展開の予定も明かされている。10年後のゲームに思いをはせながら、プレイしてみるのも良いかもしれない。