เอกสาร Steamworks
การดำเนินงานเพื่อผสานระบบ VAC

เป้าหมายและระเบียบวิธีดำเนินงาน

เป้าหมายของ VAC นั้นคือการควบคุมอย่างเข้มงวดไม่ให้ผู้เล่นใช้ซอฟต์แวร์การโกง ด้วยการตั้งโทษไว้อย่างหนักหากจับได้ว่าผู้ใช้โกง และตรวจจับการโกงในลักษณะที่ชุมชนผู้โกงรับรู้ได้ยากว่ากำลังถูกตรวจสอบอยู่ VAC เป็นส่วนประกอบของ Steamworks และไคลเอนต์ Steam ซึ่งทำงานโดยการสแกนหาโปรแกรมโกงในระบบของผู้ใช้ ขณะที่เกมของคุณกำลังทำงานอยู่ ซึ่งก็จะทำงานเหมือนกับตัวสแกนไวรัส แล้วก็จะมีฐานข้อมูลของโปรแกรมโกงที่รู้จักแล้วเอาไว้ตรวจจับ เมื่อตรวจพบโปรแกรมโกงแล้ว บัญชีของผู้ใช้ท่านนั้นก็จะถูกทำเครื่องหมายให้นับถอยหลังเตรียมโดนแบน โดยการแบนนั้นจะไม่มีผลบังคับใช้ทันที แต่จะมีผลบังคับเมื่อผ่านไปสองสามวันหลังจากที่ตรวจจับการโกงนั้นได้ เมื่อการแบนมีผลบังคับใช้ ผู้ใช้ผู้นั้นก็จะไม่สามารถเชื่อมต่อเข้าไปยังเซิร์ฟเวอร์เกมที่รักษาความปลอดภัยสำหรับผู้เล่นหลายคนได้ การแบนนั้นจะถูกผูกติดเข้ากับบัญชีของผู้ใช้ และมีเพียงวิธีเดียวเท่านั้นที่ผู้ใช้จะสามารถปลดแบนได้ ก็คือจะต้องสร้างบัญชี Steam ขึ้นมาใหม่ และซื้อเกมดังกล่าวอีกครั้งหนึ่ง

เมื่อผู้ใช้ถูก VAC แบนแล้ว ก็จะมีสิ่งต่าง ๆ ดังต่อไปนี้เกิดขึ้น:
  • บัญชีดังกล่าวจะไม่สามารถเข้าร่วมเซิร์ฟเวอร์ที่มีความปลอดภัยของไอดีแอปที่ถูกแบนได้
  • จะแสดงผลการแบนดังกล่าวต่อสาธารณะ ในโปรไฟล์ชุมชน Steam ของผู้ใช้ผู้นั้น
  • บัญชีดังกล่าวจะไม่สามารถแบ่งปันเกมที่เปิดการใช้งาน VAC อีกต่อไปได้
  • หากผู้ใช้กำลังเข้าถึงเกมผ่านทางการแบ่งปันคลังครอบครัว การแบนนั้นก็จะใช้กับผู้ที่เป็นเจ้าของเกมอย่างแท้จริงด้วย
สามารถอ่านรายละเอียดเพิ่มเติมได้จากคำถามที่พบบ่อยสำหรับลูกค้า: ระบบ Valve Anti-Cheat (VAC) และ

สิ่งที่ต้องทำล่วงหน้า

ต้องเป็นเกมแบบผู้เล่นหลายคน
VAC อาศัยการใช้เซิร์ฟเวอร์เกมในการทำหน้าที่กีดกันไม่ให้ผู้ใช้ที่ถูกแบน VAC สามารถเข้ามาในเกมได้ เพราะฉะนั้น การแบนจึงสามารถใช้ได้เฉพาะกับเกมที่เล่นกับผู้เล่นหลายคน และจะไม่ทำงานในเกมแบบเล่นคนเดียว

VAC จะต้องใช้ API การยืนยันตัวตนของ Steamworks
คุณจะต้องบังคับใช้การยืนยันตัวตนในไคลเอนต์เกมและเซิร์ฟเวอร์เกมผ่านทาง API การยืนยันตัวตนของ Steam

เปิดการใช้งาน Anti-Cheat API
สามารถเปิดการใช้งานดังกล่าวได้ที่หน้า[url]การกำหนดค่า Anti-Cheat ในแผงผู้ดูแลแอป โดยจะต้องเปิดการใช้งาน API เหล่านี้เพื่อปรับใช้การแบนในเกม และเพื่อให้ VAC สามารถตรวจจับการโกงในแอปของคุณได้

ผู้พัฒนาจะต้องตรวจหาการโกงในเชิงรุก
VAC จะพยายามตรวจจับเฉพาะการโกงที่ได้รับรายงานมาจากผู้พัฒนาเท่านั้น Valve จะไม่ดำเนินการค้นหาการโกง ไม่ว่าจะเป็นการค้นหาโดยอัตโนมัติหรือการค้นหาด้วยตนเองก็ตาม กรุณารายงานการโกงด้วยการใช้ ICheatReportingService/ReportCheatData Web API พร้อมทั้งแจ้งมาที่ valveanticheat@valvesoftware.com เพื่อให้เราสามารถจัดหมวดหมู่การโกงเหล่านั้น และบรรจุไว้ในระบบตรวจจับการโกงของเรา

เซิร์ฟเวอร์เกมที่รักษาความปลอดภัย

เกม "ที่รักษาความปลอดภัย" คือ เกมที่ไม่อนุญาตให้ผู้ใช้ที่ถูกจับได้ว่าโกงสามารถกลับเข้ามาเล่นได้อีก แต่ละอินสแตนซ์ของเกมของคุณจะสามารถเลือกได้ตั้งแต่เริ่มรันไทม์ว่าจะให้อินสแตนซ์นั้นเป็นอินสแตนซ์แบบที่ได้รับการรักษาความปลอดภัยหรือไม่ โดยทั้งหมดก็ขึ้นอยู่กับเกมของคุณว่าจะตั้งนโยบายดังกล่าวอย่างไร แต่โดยทั่วไปแล้วก็จะตั้งว่าให้มีการรักษาความปลอดภัยเป็นค่าตั้งต้น พร้อมให้ผู้ใช้เลือกได้ว่าจะเริ่มเกมแบบไม่มีการรักษาความปลอดภัยหรือไม่ โดยการกระทำดังกล่าวจะสามารถแยกผู้เล่นโกงออกจากผู้เล่นที่เหลือในชุมชนของคุณ แต่ก็ยังคงปล่อยให้ผู้เล่นเหล่านั้นสามารถเล่นเกมต่อไปได้ จะมีการสแกนหาโปรแกรมโกงเฉพาะแต่กับผู้ใช้ที่เชื่อมต่อเข้ากับเซิร์ฟเวอร์ที่ได้รับการรักษาความปลอดภัยเท่านั้น

การดำเนินงานเพื่อผสานระบบ

การตรวจจับการโกงด้วย VAC นั้นมีความอิสระไม่ขึ้นอยู่กับไคลเอนต์เกมของคุณ เพราะเป็นกระบวนการที่ดำเนินงานโดย Steam ตัวเกมควรจะใช้วิธีดำเนินการอันสมควรกระทำ และปกป้องแอสเซ็ตและสถานะภายในของตัวเกมนั้น ๆ เอง ตัวเกมก็จำเป็นจะต้องใช้งาน Steamworks API เพื่อตรวจดูว่าผู้ใช้ได้ถูกแบน VAC หรือไม่ จะมีผลลัพธ์อยู่ 3 ผลลัพธ์ด้วยกันที่คืนค่าเข้าไปในคอลแบ็ก ISteamUser::ValidateAuthTicketResponse_t จาก ISteamUser::BeginAuthSession ที่มีความเฉพาะเจาะจงต่อ VAC ผลลัพธ์การยืนยันตัวตนที่มีความเฉพาะเจาะจงต่อ VAC ดังกล่าวก็คือ:
  • k_EAuthSessionResponseVACBanned - คืนค่ากลับมาให้เวลาที่ VAC ได้แบนผู้เล่นดังกล่าวเพราะว่าเล่นโกง
  • k_EAuthSessionResponseVACCheckTimedOut - คืนค่ากลับมาให้ เมื่อระบบของผู้เล่นไม่อนุญาตให้ VAC เข้าไปสแกนตรวจหาการโกง และเวลาที่เกิดเหตุการณ์เช่นนี้ก็ควรจะไล่ผู้เล่นนั้นออกจากเกม
  • k_EAuthSessionResponsePublisherIssuedBan - คืนค่ากลับมาให้เวลาที่ผู้เล่นถูกแบนผ่านทาง RequestPlayerGameBan Web API

Web API ที่เกี่ยวข้อง

กรุณาอ่านเอกสารประกอบการใช้งาน Web API สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้งาน Web API ต่อไปนี้