10年物のSteamバグ
(blog.freudenjmp.com)Valveの10年物のSteam問題、みんながValveより速すぎるのか?
- Valveは時として、コミュニティからのフィードバックやバグ報告に対応していないように見える。
- 10年前からあるバグについての話。
tl;dr
- 10年以上続いているCounter-Strikeの
No user logon問題を解決するための、いくつかの一般的な対処法は、実際には根本原因を解決していない。 - この文章をGoogle経由で見つけたなら、次の対処法は試さないこと:
- ゲームの再インストール
- ゲームファイルの検証
- Steamの再起動
- コンピューターの再起動
- WiFiの無効化
Introduction
- Counter-StrikeはValveが開発した有名なゲームである。
- 最近、Counter-Strike 2(CS2)がリリースされ、Counter-Strike: Global Offensive(CS:GO)を置き換えた。
- CS2には多くのバグが含まれており、そのせいでゲーム体験が良くない。
- ValveはCS2をHackerOneのバグバウンティプログラムに含めておらず、CS2関連のバグ報告には報奨金を支払っていない。
No user logon
- コミュニティが長年報告してきたバグは、いまだに修正されず、CS2にも存在している。
No user logonエラーは、ゲーム中にランダムに発生する。- この問題は複数のフォーラムやValveの公式サポートフォーラムで何度も報告されている。
- 提案されている対処法は、実際には問題を解決していない。
Esportal specific
- Esportalでもこの問題は何年にもわたって発生しており、実際に解決はできず、発生頻度を下げるにとどまっていた。
- CS2では当初、この問題は解決したように見えたが、2024年1月の第1週に再び報告が増加した。
The symptoms
No user logonエラーは、プレイヤーがゲームに接続してから2〜3分後に発生する。- スキンがゲーム開始から数分後にようやく表示される現象と関係している可能性がある。
Validation of the hypothesis
- Steam認証に関連する問題である可能性が高い。
STEAM USERID validatedが正常に完了するまでの時間は、1月3日以前は2〜3秒だったが、それ以降は約1分20秒に増加した。
NETWORK_DISCONNECT_STEAM_LOGON
- Steam認証に関連するバグのように見える。
STEAMAUTH: Client Bob received failure code 8というログが見つかった。
Steam3 validation
- Steam3サーバーはユーザー認証を担当している。
- ゲームサーバーはSteam3サーバーに対し、Steam IDの有効性を確認するよう要求する。
- Steam3サーバーが有効性を確認している間も、プレイヤーはゲームを続けられるが、スキンは割り当てられない。
Making it trustable
CS2.exeが信頼できることを確認するプロセスが必要である。Steam.exeは現在ログイン中のアカウントを把握しており、CS2.exeから送られたSteam IDと一致するかを確認する。
NETWORK_DISCONNECT_LOOPSHUTDOWN
NETWORK_DISCONNECT_LOOPSHUTDOWNという別の切断理由もある。- これはゲーム自体によって自動的に再接続の試行が発生していることを意味する。
Loops in the Source engine
- Sourceエンジンには、特定の目標が達成されるまで実行されるループがある。
CS2.exeはいくつものループを実行し、最終的にgameループが実行される。
The disconnection
- ループが終了すると、
NETWORK_DISCONNECT_LOOPSHUTDOWNによって接続が切断される可能性がある。
CS2 startup procedure
CS2.exeは起動時に複数のループを実行し、levelloadループがgameループへ移行する前にSteam IDの検証を開始する。
GN⁺の意見:
- この記事は、ValveのゲームであるCounter-Strikeシリーズで長年解決されていない
No user logonバグについて、掘り下げた分析を提供している。これは、ゲーム開発と保守の難しさを理解する助けになる。 - Valveがコミュニティのフィードバックやバグ報告に適切に対応していない点は、ゲーム開発会社とユーザーの間のコミュニケーションの重要性を強調している。
- この記事は、ソフトウェアエンジニアリングの複雑さと、バグの追跡および解決プロセスにおける課題をよく示している。これは、バグを解決するための体系的なアプローチの必要性を強調している。
1件のコメント
Hacker Newsの意見
最初のコメントは、Steamのセッションチケットシステムについて説明しており、ゲームクライアントがSteamサーバーからセッションチケットを要求し、それをゲームサーバーに提供してSteam IDを証明すると述べている。ゲームサーバーはこのチケットをSteamのWeb API経由で検証する必要があり、CS2クライアントはセッションチケットの取得に遅延が発生した際、それを適切に処理できていないようだと指摘している。
2番目のコメントは、記事の結論が明確ではないと指摘し、Counter-Strikeの起動方式の問題点と、ワシントンでのメンテナンス作業によって世界中のプレイヤーに問題が発生する可能性に言及している。また、Steam IDの検証はゲームループ開始前の最後の段階で行われるため、メンテナンス中にサーバーが遅くなるとゲーム開始を妨げる可能性があると説明している。
3番目のコメントは、マルチプレイヤーゲームを開始する前に認証を完了することが必須ではないというバグを指摘している。
4番目のコメントは、ゲームクライアントが予期せずクラッシュする原因も同じ方法で調査できるのか疑問を呈し、GTA Vのロード時間短縮に関する研究に言及している。
5番目のコメントは、記事の文体が大げさすぎると指摘し、もっと早く本題に入るべきだと提案している。
6番目のコメントは、記事の冒頭に問題解決のための簡単な要約を追加することを提案している。
7番目のコメントは、ゲーム開始時にのみ
levelloadloopが実行されるのか、それともサーバー接続時やマップ読み込み時にも実行されるのかと質問している。8番目のコメントは、macOSにおけるSteamアプリのパフォーマンス改善を望んでいる。
9番目のコメントは、Valveのセキュリティ問題を指摘し、CS:GOが新しいレポートの対象外とされた事実に言及している。
最後のコメントは、過去にサーバーリストやアクティブなプレイヤースコアを表示するツールを作った経験を共有し、古いバグが今もなお存在している可能性を提起している。