『Counter-Strike』シリーズに長年存在する“謎の強制切断エラー”の原因と対策が判明したとの有志報告。悪名高き「No user logon」の回避策は「ちょっと待つ」
『Counter-Strike』シリーズのコミュニティサイトEsportalは1月13日、長年プレイヤーを悩ませてきた「No user logon」エラーについて、同サイトエンジニアチームが回避策を発見したと報告した。
「No user logon」エラーとは、Valveの『Counter-Strike』シリーズ作品のプレイ中に、ほかのプレイヤーが見つからないとしてサーバーへの接続が切断されてしまう現象のこと。何らかのバグが原因であるとみられ、10年以上前からプレイヤーから報告されているが、最新作『Counter-Strike 2』でも依然発生しているという。
これまでには、「No user logon」エラーを回避する方法がさまざまなユーザーから提示されてきた。たとえばゲームやPCを再起動したり、ゲームを再インストールしたり、あるいはSteamのプロパティにてゲームファイルの整合性を確認したりなど。
ただ、EsportalのエンジニアであるFreudensprung氏によると、それらはすべて問題への根本的な対処にはなっておらず、一時的にエラーが出なくなったとしても偶然であると主張。そして、自身のブログにて詳細な解析結果と回避策を報告した。結論からいうと、このエラーを回避する方法は、『Counter-Strike 2』を起動してからゲームサーバーに接続するまでに「少し待つ」ことだそうだ。
Freudensprung氏が「No user logon」エラーの原因を見出すきっかけになったのは、友人からの「『Counter-Strike 2』を起動して数分経たないと、スキンが表示されない」というメッセージだったという。また「No user logon」エラーも、マッチング開始後2〜3分経過した時点で発生するケースが多かったそうだ。Steam側がユーザーを認証するまでに、通常よりも長く時間がかかっている模様。Freudensprung氏がスキンのエラー再現を試みたところ、米国ワシントン州の現地時間の深夜に発生し、昼間には発生しなかったとのこと。
その後同氏は、Esportalコミュニティ内のプレイヤーのログや、2020年に流出した『CS:GO』のソースコードを解析(関連記事)。すると、プレイヤーが『Counter-Strike 2』を起動しゲームサーバーに接続したのち、Steam3と呼ばれるサーバーにてプレイヤーのSteam IDの認証がおこなわれ、その結果が返されるという処理の流れが見えてきた。そして、認証できなかった場合に「No user logon」エラーが出て、サーバーへの接続が切断されてしまうという。
問題は、ゲーム起動後におこなわれる初期化処理が、バグによって中断されてしまうことにあるそうだ。そのバグは、たとえば『Counter-Strike 2』を起動していない状態から、ゲーム外のサーバーブラウザを使用してマッチに参加したり、フレンドリストからフレンドのいるマッチに参加したりなど、ゲームの「起動前や起動直後」にゲームサーバーに接続することで発生する可能性が高いという。Freudensprung氏は、Steam3サーバーでの認証が完了する前に初期化処理が中断されることで、ゲームサーバーへの接続が切断されるのだろうと述べている。つまり、「No user logon」エラーを受けていたユーザーたちは意図せずして、『Counter-Strike 2』ゲームプログラムが準備できていない“早すぎる”タイミングでマッチングを開始してしまい、認証拒否で強制切断を受けていたことになる。
根本的な解決はValveによるバグ修正を待つことになるが、Freudensprung氏によると当面の回避策が存在するという。『Counter-Strike 2』における「No user logon」エラーを回避するには、ゲームを起動し少し待ってからゲームサーバーに接続することが挙げられた。冒頭の映像を見た後に5〜10秒待つと良いとのこと。意外なほどシンプルであるが、同氏はこの方法で99%のプレイヤーはエラーを回避できるはずだと述べており、実際Esportalコミュニティ内でもエラー報告がほぼなくなったそうだ。同氏による解析の詳細については当該ブログ投稿を確認してほしい。
『Counter-Strike 2』は、PC(Steam)向けに基本プレイ無料にて配信中だ。