한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

คู่มือเกมแลค › L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์

การคำนวณ pathfinding พุ่ง Pathfinding storms

ID สาเหตุ sp-pathfinding · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)

เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →

ถ้ามอนสเตอร์หลายร้อยตัวไล่ตามผู้เล่นและคำนวณเส้นทางพร้อมกัน จะกิน CPU มาก

ทำไม มอนสเตอร์จำนวนมากไล่ตามพร้อมกันจากการลากมอนหรือการ spawn ครั้งใหญ่ → ผลคือ มอนสเตอร์แต่ละตัวคำนวณ pathfinding ของตัวเอง → บนหน้าจอ สโลว์โมชั่นเฉพาะในจุดฟาร์มนั้น

อาการ
สโลว์โมชั่น
ปัจจัย
การหยุดชะงัก
ใครเจอ
บางจุด/บางแชนแนล
เกิดเมื่อไร
ตอนคนแห่มารวมกัน
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)
งานฝั่งทีมพัฒนาเกม
แคชเส้นทาง, จำกัดจำนวนครั้งที่คำนวณ, แบ่งไปคำนวณในหลายทิก
บนกราฟ
สูงตามจำนวนคนและโหลด · เวลาต่อทิกของเซิร์ฟเวอร์, จำนวนมอนสเตอร์แยกตามโซน
จุดที่ต้องดู
จำนวนมอนสเตอร์ที่กำลังไล่ตามผู้เล่นและเวลาต่อทิกแยกตามโซน ถ้าไม่ได้นับแยกไว้ ให้ดูสัดส่วน CPU แยกตามฟังก์ชันของโปรเซสเกมด้วย perf top -p
สัญญาณว่าใช่
ตอนลากมอนหรือ spawn ครั้งใหญ่ เวลาต่อทิกเพิ่มขึ้น และฟังก์ชัน pathfinding (ค้นหาเส้นทาง) กินสัดส่วนเวลา CPU มาก
สัญญาณว่าไม่ใช่
มอนสเตอร์น้อยแต่ผู้เล่นเยอะแล้วทิกเพิ่ม: น่าจะเป็นการคำนวณระยะมองเห็นหรือ broadcast
วิธีตรวจ
ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม

แหล่งอ้างอิง

  1. AI.NavMesh.pathfindingIterationsPerFrame Unity
    ประมวลผล pathfinding ทีละจำนวนโหนดที่กำหนดต่อเฟรม เพื่อแบ่งงานไปหลายเฟรม เกมจึงยังลื่นแม้เส้นทางยาวหรือมีคำขอพร้อมกันจำนวนมาก
  2. perf-top(1) — Linux manual page perf
    แสดงสัดส่วนการใช้ CPU ของโปรเซสที่กำลังรัน (-p) แยกตามฟังก์ชัน (symbol) แบบเรียลไทม์

สาเหตุที่ควรดูประกอบ

ชั้นเดียวกัน: L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (สโลว์โมชั่น)

ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง