บั๊ก Steam ที่อยู่มา 10 ปี
(blog.freudenjmp.com)ปัญหา Steam ของ Valve ที่อยู่มา 10 ปี ทุกคนเร็วกว่า Valve กันหมดหรือ?
- Valve บางครั้งดูเหมือนจะไม่ตอบสนองต่อฟีดแบ็กจากชุมชนและรายงานบั๊ก
- เรื่องราวของบั๊กที่อยู่มานาน 10 ปี
tl;dr
- วิธีแก้ยอดนิยมหลายอย่างที่ใช้เพื่อแก้ปัญหา
No user logonของ Counter-Strike ซึ่งคงอยู่มานานกว่า 10 ปีนั้น แท้จริงแล้วไม่ได้แก้ที่ต้นตอของปัญหา - หากคุณเจอบทความนี้ผ่าน 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 รายงานปัญหาก็เพิ่มขึ้นอีกครั้ง
The symptoms
- ข้อผิดพลาด
No user logonมักเกิดขึ้น 2-3 นาทีหลังจากผู้เล่นเชื่อมต่อเข้าเกม - อาจเกี่ยวข้องกับอาการที่สกินจะปรากฏขึ้นหลังเริ่มเกมไปแล้วไม่กี่นาที
Validation of the hypothesis
- มีความเป็นไปได้สูงว่าเป็นปัญหาที่เกี่ยวข้องกับการยืนยันตัวตนของ Steam
- เวลาที่ใช้จน
STEAM USERID validatedสำเร็จ ก่อนวันที่ 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รู้ว่าบัญชีใดกำลังล็อกอินอยู่ในขณะนั้น และจะตรวจสอบว่าตรงกับ Steam ID ที่ส่งมาจากCS2.exeหรือไม่
NETWORK_DISCONNECT_LOOPSHUTDOWN
- ยังมีเหตุผลของการตัดการเชื่อมต่ออีกแบบหนึ่งคือ
NETWORK_DISCONNECT_LOOPSHUTDOWN - สิ่งนี้หมายความว่าเกมเองเป็นผู้ทำให้เกิดความพยายามเชื่อมต่อใหม่โดยอัตโนมัติ
Loops in the Source engine
- Source engine มีลูปที่ทำงานจนกว่าจะบรรลุเป้าหมายบางอย่าง
CS2.exeรันลูปหลายตัว และสุดท้ายจะไปรันลูปgame
The disconnection
- เมื่อหนึ่งในลูปจบลง การเชื่อมต่ออาจถูกตัดด้วย
NETWORK_DISCONNECT_LOOPSHUTDOWN
CS2 startup procedure
- เมื่อ
CS2.exeเริ่มทำงาน มันจะรันหลายลูป และลูปlevelloadจะเริ่มการตรวจสอบ Steam ID ก่อนเปลี่ยนไปเป็นลูปgame
ความเห็นของ GN⁺:
- บทความนี้ให้การวิเคราะห์เชิงลึกเกี่ยวกับบั๊ก
No user logonที่ยังไม่ได้รับการแก้ไขมาอย่างยาวนานในซีรีส์ Counter-Strike ของ Valve ซึ่งช่วยให้เข้าใจความยากของการพัฒนาและบำรุงรักษาเกม - ประเด็นที่ Valve ดูเหมือนไม่ตอบสนองต่อฟีดแบ็กจากชุมชนและรายงานบั๊กอย่างเหมาะสม เน้นย้ำความสำคัญของการสื่อสารระหว่างผู้พัฒนาเกมกับผู้ใช้
- บทความนี้แสดงให้เห็นความซับซ้อนของวิศวกรรมซอฟต์แวร์และความท้าทายในกระบวนการติดตามและแก้ไขบั๊กได้เป็นอย่างดี ซึ่งเน้นถึงความจำเป็นของแนวทางที่เป็นระบบในการแก้ปัญหาบั๊ก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ความคิดเห็นแรกอธิบายระบบ session ticket ของ Steam โดยระบุว่าเกมไคลเอนต์จะขอ session ticket จากเซิร์ฟเวอร์ Steam และส่งให้กับเกมเซิร์ฟเวอร์เพื่อยืนยัน Steam ID เกมเซิร์ฟเวอร์ต้องตรวจสอบ ticket นี้ผ่านเว็บ API ของ Steam และชี้ว่าไคลเอนต์ CS2 ดูเหมือนจะจัดการไม่ได้เมื่อเกิดความล่าช้าในการรับ session ticket
ความคิดเห็นที่สองชี้ว่าข้อสรุปของบทความยังไม่ชัดเจน พร้อมกล่าวถึงปัญหาในวิธีการเริ่มต้น Counter-Strike และความเป็นไปได้ที่งานบำรุงรักษาในวอชิงตันจะก่อปัญหาแก่ผู้เล่นทั่วโลก อีกทั้งอธิบายว่าการยืนยัน Steam ID เกิดขึ้นเป็นขั้นตอนสุดท้ายก่อนเริ่ม game loop ดังนั้นเมื่อเซิร์ฟเวอร์ช้าระหว่างการบำรุงรักษาก็อาจขัดขวางการเริ่มเกมได้
ความคิดเห็นที่สามชี้ถึงบั๊กที่ทำให้การยืนยันตัวตนก่อนเริ่มเกมแบบผู้เล่นหลายคนไม่ใช่สิ่งจำเป็น
ความคิดเห็นที่สี่สงสัยว่าสามารถสืบหาสาเหตุที่เกมไคลเอนต์แครชโดยไม่คาดคิดด้วยวิธีเดียวกันได้หรือไม่ และกล่าวถึงงานวิจัยเกี่ยวกับการลดเวลาโหลดของ GTA V
ความคิดเห็นที่ห้าชี้ว่าสำนวนของบทความโอ้อวดเกินไป และเสนอให้เข้าสู่ประเด็นสำคัญให้เร็วขึ้น
ความคิดเห็นที่หกเสนอให้เพิ่มสรุปสั้น ๆ สำหรับการแก้ปัญหาไว้ในช่วงต้นของบทความ
ความคิดเห็นที่เจ็ดถามว่า
levelloadloopทำงานเฉพาะตอนเริ่มเกมหรือทำงานตอนเชื่อมต่อเซิร์ฟเวอร์และโหลดแผนที่ด้วยความคิดเห็นที่แปดหวังให้ประสิทธิภาพของแอป Steam บน macOS ดีขึ้น
ความคิดเห็นที่เก้าชี้ถึงปัญหาความปลอดภัยของ Valve และกล่าวถึงข้อเท็จจริงที่ว่า CS:GO ถูกตัดออกจากขอบเขตสำหรับรายงานฉบับใหม่
ความคิดเห็นสุดท้ายแบ่งปันประสบการณ์ในอดีตที่เคยสร้างเครื่องมือแสดงรายชื่อเซิร์ฟเวอร์และคะแนนของผู้เล่นที่กำลังเล่นอยู่ พร้อมตั้งข้อสังเกตว่าบั๊กเก่าอาจยังคงมีอยู่