กูเกิลปล่อยโครงการ Falken ชุดซอฟต์แวร์สำหรับพัฒนาปัญญาประดิษฐ์เพื่อเล่นเกมในการทดสอบ ลดการพึ่งพาคนทดสอบคุณภาพเกม
กระบวนการพัฒนาเกมทุกวันนี้นอกจากต้องอาศัยนักพัฒนาเป็นจำนวนมากแล้ว เกมที่ซับซ้อนขึ้นก็ทำให้ต้องอาศัยผู้ทดสอบจำนวนมาก ทดสอบเกมซ้ำๆ ในแต่ละรอบของการพัฒนาเป็นเวลานา
แม้ที่ผ่านมาจะมีปัญญาประดิษฐ์เล่นเกมอยู่แล้วจำนวนมาก งานวิจัยที่ผ่านมามักเน้นไปที่การสร้างปัญญาประดิษฐ์ให้เล่นเกมอย่างเก่งกาจ โดยอาศัยการฝึกเล่นซ้ำๆ เพื่อให้ได้คะแนนสูงสุด (reinforcement learning - RL) ซึ่งต้องอาศัยการฝึกเป็นเวลานานใช้รอบการเล่นมหาศาล แต่สำหรับการทดสอบเกมนั้นนักพัฒนาไม่ต้องการปัญญาประดิษฐ์ที่เล่นเกมเก่ง เพียงแค่เล่นให้เหมือนคนก็เพียงพอ กูเกิลเสนอให้ใช้ปัญญาประดิษฐ์แบบเลียนแบบ (imitation learning - IL) ที่จะมองการเล่นของนักพัฒนาแล้วพยายามเลียนแบบตาม หาพบจุดผิดพลาดก็เพียงดึงเกมมาเล่นเองแล้วปล่อยให้ปัญญาประดิษฐ์เล่นต่อ
กูเกิลระบุว่าไลบรารี Falken นี้สามารถสร้างปัญญาประดิษฐ์ที่ทดสอบเกมได้ภายในชั่วโมงเดียวเท่านั้น ตัวโครงการ Falken มี C++ SDK และ Unity SDK มาให้ในตัว
ที่มา - Google AI Blog

on
สงสัย พวก AI เล่นเกมนี่
deaknaew Mon, 12/07/2021 - 02:53
สงสัย พวก AI เล่นเกมนี่ มันไปต่อกับเกมยังไง ใช้พวก sendinput เหรอ?
แล้วเกมที่มันมีระบบ ดักบอท ทำไงหว่า
ในฐานะ game developer คนหนึ่ง
big50000 Tue, 13/07/2021 - 03:25
In reply to สงสัย พวก AI เล่นเกมนี่ by deaknaew
ในฐานะ game developer คนหนึ่ง มีความรู้ด้าน machine learning เท่าหางอึ่ง
ปกติแล้วใน ML การพัฒนา AI เพื่อการเรียนรู้การเล่นเกมนั้นมักจะมี API เข้าถึงพิเศษสำหรับการพัฒนาด้าน ML โดยเฉพาะ ทั้ง input และ output (Valve ก็ให้ความร่วมมือกับ OpenAI เพื่อสร้าง API สำหรับเกมโดยตรง ทางด้าน DeepMind ก็ได้รับ API พิเศษมาจาก Blizzard เพื่ออ่านค่า normal map และสร้าง input method มาเพื่อ AI โดยเฉพาะ)
ืทาง Google ได้สร้าง automation สำหรับทดสอบเกมโดยเฉพาะโดยใช้ AI ช่วยเหลือ โดยได้สร้าง observation/interaction API กลางขึ้นมาโดยเฉพาะเพื่อให้ AI เข้าถึงโดยตรงโดยที่ไม่ต้อง hard-code เอง จากนั้นเปิด observe mode เพื่อรับข้อมูลการเล่นเกม และ train mode เพื่อให้ AI เทรนเป็นระยะเวลาสั้น ๆ แค่ในระดับที่คล้ายคลึงกับมนุษย์ (เพราะคาดหวังแค่ทดสอบเกม ไม่ได้ต้องการ AI ที่เก่งที่สุด) แล้ว developer ศึกษาต่อว่าเกมมีจุดบกพร่องใดที่ต้องแก้ไขก่อนส่งไปยังขั้นตอนอื่น
ส่วนของระบบดัก bot นี่อธิบายยาว เพราะมันมีทั้งฝั่งของ client-side และ server-side และทั้งสองวิธีรวมกัน และหลาย ๆ implement ก็ต่างกันด้วยและเป็นลิขสิทธิ์ของทางฝั่งผู้พัฒนา
ในฝั่งของ client-side นี้จะนิยมตรวจสอบการมีอยู่ของโปรแกรมที่รัน bot อยู่ ตรวจสอบการเปลี่ยนแปลงของทรัพยากรภายในระบบ และตรวจสอบ process, address space ที่น่าสงสัยภายในระบบ วิธีนี้เป็นที่นิยมในเกม FPS ที่มีการคำนวณสูงเกินกว่าที่เซิร์ฟเวอร์กลางจะรับภาระคนเดียวได้ และเป็นวิธีมาตรฐานที่เกมออนไลน์ส่วนใหญ่ใช้ แต่วิธีนี้ก็มีข้อเสีย เพราะ implementation มีไม่รู้ตั้งกี่วิธี แต่คนทำ anti-cheat มีไม่กี่กลุ่ม จึงไม่น่าแปลกใจที่วิธีนี้ค่อนข้าง bypass ได้ง่ายในหลาย ๆ implementation (อย่างเก่งคือตรวจสอบ memory hi-jacking และตรวจสอบ overlay ของโปรแกรมโกงเกมหรือ input ที่น่าสงสัย ถ้าเจอก็แบน)
ในฝั่งของ server-side จะนิยมอ่านค่า request ที่ส่งมาจาก client ว่ามีบางอย่างผิดปกติไปหรือไม่ เช่น การคลิกที่แม่นยำกว่าปกติ การกระทำบางอย่างที่ไม่เหมือนมนุษย์ การใช้ระยะเวลากับเกมนานเกินไป ฯลฯ จะค่อนข้าง implement ง่ายกว่า client-side แต่ก็เป็นวิธีที่มีความแม่นยำน้อยที่สุดเช่นกัน เนื่องจากข้อมูลที่มีอยู่จำกัดจากฝั่ง client ที่อาจจะมีโปรแกรม bot พยายามเลียนแบบพฤติกรรมมนุษย์ให้มากที่สุดก็ได้ หลัง ๆ มาเริ่มมีการประยุกต์ใช้ AI เพื่อดักจับพฤติกรรมที่ไม่เหมือนมนุษย์เข้ามาช่วยบ้างแล้ว แต่ก็ยังไม่เป็นที่แพร่หลายนักเนื่องจากชุดข้อมูลที่มีพฤติกรรมเป็น bot นั้นต้องหาเข้ามาป้อนแล้ว train เอง ซึ่งยุ่งยากกว่าการเขียน procedure ตรวจสอบเอง แล้วออกแบบเกมอย่างระมัดระวังตั้งแต่แรกที่ง่ายกว่ามาก