ก่อนที่จะไปพูดถึงการทำงานของ aimbot มาดูความหมายของ aimbot กันก่อนว่าคืออะไร
Aimbot เป็นโปรแกรมหรือฟีเจอร์ที่ช่วยให้ผู้เล่นในเกมยิง (FPS - First-Person Shooter) สามารถเล็งเป้าหมายได้อย่างแม่นยำโดยอัตโนมัติ ซึ่งมักถูกใช้ในลักษณะที่เป็นการโกงเกม (cheating) บทความนี้จะอธิบายว่า Aimbot ทำงานอย่างไร และใช้เทคนิคอะไรบ้างในการพัฒนา
1. การดึงข้อมูลจากเกม
การทำงานของ Aimbot เริ่มต้นจากการดึงข้อมูลที่จำเป็นออกจากเกม เช่น:
- ตำแหน่งของศัตรู: ตำแหน่งตัวละครในเกมที่ศัตรูอยู่ โดยปกติจะอยู่ในหน่วยพิกัด (coordinates) เช่น
(x, y, z) - ตำแหน่งของผู้เล่น: ตำแหน่งของตัวละครผู้ใช้ รวมถึงมุมกล้อง (camera angles) ที่ผู้เล่นกำลังมอง
- สถานะของเกม: เช่น ศัตรูที่มองเห็นได้ (visible) หรืออยู่ในวิถีการยิง
การดึงข้อมูลนี้สามารถทำได้โดย:
อ่านหน่วยความจำ (Memory Reading): ใช้เทคนิคเช่นการเขียนโค้ดที่อ่านค่าจาก RAM ของเกมผ่านเครื่องมืออย่าง Cheat Engine, MemProcFS, หรือจะเรียกใช้จาก Windows API (ReadProcessMemory) ก็ได้
2. การคำนวณเป้าหมาย
เมื่อได้ข้อมูลตำแหน่งของศัตรูและผู้เล่น โปรแกรมจะคำนวณเพื่อให้กล้องของผู้เล่นเล็งไปที่ศัตรูโดยอัตโนมัติ:
- การคำนวณมุม (Angle Calculation): ใช้สูตรคณิตศาสตร์ 3 มิติ เช่น arctangent (atan2) เพื่อคำนวณมุมที่ผู้เล่นควรหมุนกล้อง
- การปรับวิถีการยิง (Projectile Trajectory): หากเกมมีการใช้วิถีโค้งของกระสุน (เช่น ลูกธนูหรือ RPG) Aimbot อาจต้องคำนวณการล่วงหน้าของศัตรู (prediction) และปรับการเล็งตาม
Projectile | mechanics | Britannica
ตัวอย่างสูตรการคำนวณมุมระหว่างผู้เล่นและศัตรูในพิกัด 3D:

ความมายของ Yaw Pitch Roll
- Yaw คือการหันซ้ายหรือขวา
- Pitch คือการก้มหรือเงย
- Roll คือการเอียงซ้ายหรือขวา

ในขั้นตอนแรกเราจะต้องหาต้องว่าต้องหันซ้ายหรือขวาไปที่ศัตรู เพราะงั้นเราก็ต้องมาวาดสามเหลี่ยมระหว่างตัวละครเรากับศัตรูโดยที่เราจะคำนวณหามุมของสามเหลี่ยมว่ามีกี่องศาจะได้รู้ว่าจะขยับเป้าไปกี่องศานั้นเอง

หลังจากที่เรารู้แล้วว่าจะหันซ้ายหรือขวา ทีนี้เราก็จะมาหาว่าต้องก้มหรือเงยหน้า แน่นอนว่าเราก็จะวาดสามเหลี่ยมเหมือนเดิมแล้วมาหาองศาเองสามเหลี่ยม ถ้าคำนวณได้แล้วก็เซ็ตให้เป้าไปยังจุดที่เราต้องการ

เดี๋ยวเรามาดูในอีกมุมมองที่จะเห็นทั้ง 2 ภาพที่ผ่านมา ก็จะเห็นว่ามันจะมี สามเหลี่ยมอยู่ 2 อันที่เราจะคำนวณ

3. การเล็งเป้าหมาย
หลังจากคำนวณมุมที่ต้องเล็งแล้ว โปรแกรมจะปรับการเล็งของผู้เล่นโดยอัตโนมัติ:
- การเขียนหน่วยความจำ (Memory Writing): เขียนค่ามุมที่คำนวณได้ลงไปในหน่วยความจำของเกม เช่น ตำแหน่งของกล้องหรือเมาส์
- การใช้การเคลื่อนไหวของเมาส์ (Mouse Input): ส่งคำสั่งเลื่อนเมาส์ไปยังตำแหน่งเป้าหมายโดยใช้ API อย่าง Windows API (เช่น
SendInputหรือmouse_event)
สุดท้ายนี้ก็หวังว่าทุกคนจะได้ความรู้ให้หายสงสัยกันว่ามันทำได้อย่างไรกัน