วิธี Optimize รถ FiveM ลด Server Lag และ FPS ตก รถเยอะแต่ยังลื่น

Server FiveM ที่เริ่มมี Custom Cars จำนวนมากมักเจอปัญหาคล้ายกัน เช่น FPS ตก Texture โหลดช้า รถกลายเป็นสีขาว Map โหลดไม่ทัน ใช้ RAM/VRAM สูง เข้า Server ช้า หรือกระตุกหนักเมื่อมีรถหลายคันรวมกัน

หลายคนแก้ด้วยการลดจำนวนรถทันที แต่ความจริงรถ Custom ไม่ได้หนักเท่ากันทุกคัน รถบางคันถูกสร้างและ Optimize มาดี ขณะที่อีกคันอาจมี Model ละเอียดเกินจำเป็น Texture จำนวนมาก หรือไม่มี LOD ที่เหมาะสม

FiveM รองรับ Streaming Assets ภายใน Resource และมีเครื่องมือสำหรับตรวจทั้ง Resource Performance และ Streaming ฝั่ง Client เช่น Resource Monitor, Profiler และคำสั่งเกี่ยวกับ Vehicle Texture Resolution ดังนั้นการ Optimize ควรเริ่มจากการวัดว่า ปัญหาเกิดจาก Model, Texture, Script หรือ Server ก่อนแก้แบบเดา

บทความนี้จาก comsiam จะอธิบายวิธี Optimize รถ FiveM ตั้งแต่ YFT, YTD, Polygon, Texture, LOD, Car Pack ไปจนถึงการตรวจ Performance จริงในเกม

Optimize รถ FiveM คืออะไร

การ Optimize รถ FiveM คือการทำให้ Vehicle Asset ใช้ทรัพยากรเท่าที่จำเป็น โดยยังรักษาคุณภาพของรถให้อยู่ในระดับที่เหมาะสม

เป้าหมายไม่ใช่เพียง

ลดขนาดไฟล์ให้เล็กที่สุด

แต่ต้องสมดุลระหว่าง

  • คุณภาพ Model

  • จำนวน Geometry

  • Texture

  • LOD

  • Streaming

  • Memory

  • FPS

  • จำนวนรถที่ใช้งานจริง

  • Script ที่ทำงานกับรถ

เพราะรถที่ไฟล์เล็กกว่าไม่ได้หมายความว่าจะทำงานดีกว่าเสมอ ถ้า Asset Structure ถูกทำผิด

① แยกก่อนว่า FPS ตกหรือ Server Lag

นี่เป็นจุดสำคัญที่สุด

คำว่า “Server Lag” มักถูกใช้รวมทุกอาการ ทั้งที่จริงอาจเป็นคนละปัญหา

FPS ตก

อาการเช่น

  • ภาพกระตุก

  • FPS จาก 100 เหลือ 40

  • เข้า Car Meet แล้ว FPS ลด

  • GPU/VRAM ใช้สูง

  • รถเยอะแล้วภาพหน่วง

ให้สงสัยฝั่ง Client Rendering/Streaming ก่อน

Server Lag

อาการเช่น

  • Entity ตอบสนองช้า

  • Script Delay

  • Server Tick มีปัญหา

  • ผู้เล่นหลายคนเจอความหน่วงพร้อมกัน

  • Resource ใช้ CPU สูง

ควรตรวจ Script และ Server Performance

Cfx.re มี Resource Monitor สำหรับดู CPU time และ Memory ของ Resource ฝั่ง Client รวมถึง Profiler สำหรับวิเคราะห์ Performance ของ Script/Resource โดยละเอียด

ดังนั้นอย่าเห็น FPS ต่ำแล้วสรุปว่า CPU Server ไม่พอทันที

② รถ Custom หนักตรงไหนได้บ้าง

รถ Custom หนึ่งคันสามารถมี Asset หลายส่วน เช่น

vehicle.yft
vehicle_hi.yft
vehicle.ytd

รวมถึง

  • Livery

  • Custom Wheels

  • Shared Textures

  • Custom Sound

  • Meta Files

  • Mod Parts

FiveM Resources สามารถประกอบด้วย Streaming Assets ซึ่ง Client ต้องโหลดเพื่อนำไปใช้งานในเกม

ดังนั้นรถหนึ่งคันที่มี Asset หนักมากอาจสร้างผลกระทบมากกว่ารถ Optimize ดีหลายคันรวมกัน

③ YFT คืออะไรในการ Optimize รถ

ไฟล์ .yft เป็น Vehicle Fragment Asset ที่เกี่ยวข้องกับ Model รถ

ในเชิงการ Optimize สิ่งที่ต้องสนใจคือความซับซ้อนของ Model และชิ้นส่วนที่รถมี

ตัวอย่างรถอาจมี

supercar.yft
supercar_hi.yft

อย่าดูเพียงขนาดไฟล์จาก Windows แล้วตัดสินว่ารถดีหรือไม่

ควรตรวจ Geometry และโครงสร้าง Asset จริงด้วยเครื่องมือสำหรับ GTA V Asset Workflow

Cfx.re มี Assets Manual ที่สอน Workflow ผ่าน CodeWalker, Blender และ Sollumz สำหรับการ Import, แก้ และ Export GTAV Assets

④ Polygon เยอะเกินไปมีผลอย่างไร

Model ที่มี Geometry ซับซ้อนกว่าจำเป็นเพิ่มภาระในการ Render

โดยเฉพาะเมื่อไม่ได้แสดงเพียงรถคันเดียว แต่มีรถจำนวนมากอยู่ใน Scene เดียวกัน

ตัวอย่างเช่น

1 รถละเอียดมาก → อาจยังลื่น
20 รถละเอียดมาก → ภาระเพิ่มอย่างชัดเจน

ดังนั้นอย่าทดสอบ Performance ด้วยการ Spawn รถเพียงหนึ่งคันแล้วสรุปว่า Asset เบา

ควรทดสอบในสถานการณ์ใกล้เคียงการเล่นจริง

⑤ อย่าถามแค่ว่า “รถกี่ Polygon ถึงดี”

ไม่มีตัวเลขเดียวที่เหมาะกับ Custom Vehicle ทุกประเภท

เพราะต้องดูด้วยว่า

  • รถมี Interior หรือไม่

  • Engine Bay ละเอียดแค่ไหน

  • มี Mod Parts กี่ชิ้น

  • มี Custom Wheels หรือไม่

  • มี LOD หรือไม่

  • รถถูกใช้พร้อมกันกี่คัน

เป้าหมายควรเป็นการลบ Geometry ที่ผู้เล่นแทบไม่เห็น โดยไม่ทำลายรูปร่างสำคัญของ Vehicle

⑥ ชิ้นส่วนที่มองไม่เห็นควรลดหรือไม่

ควรตรวจ

รถที่ Convert จากเกมหรือ 3D Model อื่นอาจมี Geometry ภายในจำนวนมาก เช่น

  • ชิ้นส่วนใต้รถละเอียดเกินไป

  • Engine Detail ที่มองไม่เห็น

  • Geometry ซ้อนกัน

  • Interior Detail จุดเล็กมาก

  • Parts ที่ไม่ได้ใช้

ถ้า Geometry ไม่มีผลกับภาพที่ผู้เล่นเห็นจริง การลดความซับซ้อนสามารถช่วยทำ Asset ให้มีประสิทธิภาพขึ้น

แต่ต้องตรวจ Bone, Material, Collision และ Vehicle Functions หลังแก้ทุกครั้ง

⑦ LOD สำคัญมากแค่ไหน

LOD ย่อมาจาก Level of Detail

แนวคิดคือใช้ Model ที่มีรายละเอียดแตกต่างกันตามระยะการมอง

Cfx.re Assets Manual อธิบายการสร้าง LOD โดยใช้ Model รายละเอียดเต็มสำหรับระยะใกล้ และ Model Geometry/Materials ที่ง่ายลงสำหรับระยะไกล

แนวคิดคือ

ใกล้ → รายละเอียดสูง
ไกล → รายละเอียดลดลง

ทำให้ไม่จำเป็นต้อง Render รายละเอียดสูงสุดตลอดเวลา

⑧ รถไม่มี LOD มีปัญหาอย่างไร

ถ้า Asset ไม่มี Level of Detail ที่เหมาะสม ระบบอาจต้องจัดการ Model ที่มีรายละเอียดสูงกว่าที่จำเป็นแม้ผู้เล่นอยู่ห่างออกไป

ผลกระทบจะชัดขึ้นเมื่อมี Vehicle จำนวนมาก

เช่น

Car Meet
Police Chase
Racing Event
Vehicle Showroom
Parking Area

จึงควรตรวจ LOD เป็นส่วนหนึ่งของ Asset Optimization ไม่ใช่ดูแต่ Texture

Cfx.re แนะนำหลักการสร้าง HD และ LOD Models แยกกัน โดย LOD ใช้ Geometry และ Materials ที่ง่ายกว่า

⑨ อย่าลด Polygon ของ Model หลักจนเสียรูป

Optimization ไม่ได้หมายถึง

500,000 polygons
↓
10,000 polygons

โดยไม่สนคุณภาพ

ควรลดส่วนที่ไม่จำเป็นและรักษา Silhouette สำคัญของรถ

เช่น

  • เส้นตัวถัง

  • ไฟ

  • กระจังหน้า

  • ล้อ

  • Interior ที่ผู้เล่นมองเห็น

เอาไว้

จากนั้นใช้ LOD เพื่อจัดการรายละเอียดตามระยะ

⑩ YTD สำคัญต่อ Performance อย่างไร

YTD คือ Texture Dictionary ซึ่งอาจเก็บ Texture จำนวนมากของ Vehicle

เช่น

  • Body

  • Interior

  • Dashboard

  • Wheels

  • Badge

  • Glass

  • Lights

  • Livery

Cfx.re Assets Manual แนะนำ Workflow สำหรับ Texture และระบุการใช้งาน Texture แบบ DDS ในการสร้าง GTAV Assets

ดังนั้น Vehicle Optimization ต้องตรวจ Texture ควบคู่กับ Model

⑪ Texture 4K ทุกไฟล์จำเป็นไหม

ไม่จำเป็น

สมมติรถมี

Body 4096×4096
Interior 4096×4096
Wheel 4096×4096
Badge 4096×4096
Livery 4096×4096

ถ้าทุก Asset ใช้ Resolution สูงโดยไม่มีเหตุผล Memory Requirement ก็สูงขึ้น

FiveM มีคำสั่ง str_maxVehicleTextureRes สำหรับจำกัด Maximum Vehicle Texture Resolution และเอกสารระบุชัดว่าคำสั่งนี้สามารถช่วยลดโอกาสที่ Physical Memory จะหมด โดยแลกกับคุณภาพภาพที่ลดลง

นี่เป็นหลักฐานชัดว่าความละเอียดของ Vehicle Textures มีความสัมพันธ์กับ Memory Pressure ฝั่ง Client

⑫ str_maxVehicleTextureRes คืออะไร

FiveM มี Client Console Setting

str_maxVehicleTextureRes

เอกสาร Cfx.re ระบุว่าใช้จำกัด Maximum Resolution ของ Vehicle Textures เพื่อช่วยลดปัญหา Physical Memory ไม่เพียงพอ โดยค่า Default ที่เอกสารปัจจุบันระบุคือ 1024

อย่างไรก็ตาม การใช้คำสั่งนี้ควรมองเป็นเครื่องมือฝั่ง Client หรือ Diagnostic Aid

ไม่ใช่ข้ออ้างให้ Server ใส่ Texture ขนาดใหญ่มากโดยไม่ Optimize Asset ต้นทาง

⑬ ควรลด Texture อะไรก่อน

ให้ดูจากความสำคัญของภาพจริง

ตัวอย่าง

Body Texture

ผู้เล่นมองเห็นชัด ควรรักษาคุณภาพให้เหมาะสม

Badge เล็กมาก

อาจไม่ต้องใช้ Resolution สูงมาก

Interior Detail เล็ก

ควรพิจารณาตามระยะมองจริง

Livery

ดูตามขนาดตัวหนังสือและ Logo

Texture ที่ไม่ใช้

ควรตรวจ Reference และเอาออกเมื่อยืนยันแล้วว่าไม่ถูกใช้งาน

อย่าลดทุก Texture เหลือขนาดเดียวกัน

⑭ Texture ซ้ำควรตรวจหรือไม่

ควร

Car Pack ที่รวมรถจากหลาย Developer อาจมี Texture หรือ Shared Assets หลายชุด

ก่อนลบต้องตรวจ Reference ให้ชัด

เพราะรถบางคันอาจใช้ Shared Texture ร่วมกัน

การลบเพียงเพราะเห็นชื่อคล้ายกันอาจทำให้

  • รถขาว

  • Interior หาย

  • Wheels ไม่มี Texture

  • Livery หาย

ดังนั้น Optimize ต้องมี Backup เสมอ

⑮ DDS Compression สำคัญหรือไม่

สำคัญใน Asset Pipeline

Cfx.re Assets Manual ระบุการใช้ Texture ที่บีบอัดใน .dds และแนะนำ Nvidia Texture Tools เป็นหนึ่งในเครื่องมือสำหรับสร้าง DDS Textures ใน Workflow ตัวอย่าง

การเลือก Compression ต้องสัมพันธ์กับ Texture Type และ Alpha

อย่าใช้ Compression Setting เดียวกับ Texture ทุกประเภทโดยไม่ดูว่าเป็น

  • Diffuse

  • Normal

  • Specular

  • Alpha

เพราะคุณภาพและการแสดงผลอาจเสียได้

⑯ Mipmap ควรมีหรือไม่

สำหรับ Texture ที่ต้องแสดงผลหลายระยะ Mipmap เป็นส่วนสำคัญของ Texture Workflow โดยทั่วไป

เป้าหมายคือให้ระบบสามารถใช้รายละเอียดที่เหมาะสมตามระยะ แทนการใช้ภาพความละเอียดสูงสุดตลอด

อย่างไรก็ตาม ต้อง Export ตาม Asset Workflow ที่ถูกต้อง

ถ้า Mipmap หรือ Texture ถูกสร้างผิด อาจเห็นอาการ

  • ลายเบลอผิดปกติ

  • Texture กระพริบ

  • ระยะใกล้/ไกลเปลี่ยนแปลก

ดังนั้นหลัง Optimize Texture ต้องทดสอบในเกมจริง

⑰ Livery จำนวนมากเพิ่มภาระหรือไม่

Livery ก็คือ Texture Asset

รถตำรวจหนึ่ง Model อาจมี

10 Liveries

รถอีก 20 Model ก็มีหลาย Livery เช่นกัน

เมื่อ Content Library โตขึ้น ปริมาณ Resource ที่ Client ต้องเข้าถึงก็เพิ่มขึ้นตาม Asset ที่ Server ใช้

ดังนั้นควร

  • ลดลายที่ไม่ใช้

  • เลือก Resolution เหมาะสม

  • หลีกเลี่ยง Texture ซ้ำ

  • ตรวจ Alpha/Compression

แทนการเก็บทุกไฟล์ที่เคยสร้างไว้ใน Production Pack

⑱ Custom Wheels ต้อง Optimize ด้วยหรือไม่

ต้อง

รถบางคัน Model หลักไม่ได้หนักมาก แต่ Custom Wheels มีรายละเอียดสูงมาก

และรถหนึ่งคันมี 4 ล้อ

เมื่อมีรถจำนวนมากใน Scene ภาระ Geometry จาก Wheels สามารถสะสมได้

ควรตรวจ

  • Wheel Geometry

  • Wheel Texture

  • LOD

  • Parts ที่ซ้ำ

  • Custom Wheel Pack

ร่วมกับตัวรถ

⑲ Interior ต้องละเอียดที่สุดหรือไม่

ขึ้นอยู่กับ Gameplay

ถ้า Server เน้น

  • First Person

  • Racing Cockpit

  • Car Photography

Interior Detail มีความสำคัญ

แต่ถ้าผู้เล่นส่วนใหญ่ขับ Third Person รายละเอียดเล็กมากภายในรถอาจไม่ต้องสูงสุดทุกส่วน

Optimization ที่ดีต้องดู สิ่งที่ผู้เล่นเห็นจริง

ไม่ใช่รักษา Geometry ทุก Polygon จาก Source Model

⑳ Engine Bay ต้องละเอียดมากไหม

หลักเดียวกัน

ถ้ารถมี

  • Hood Opening

  • Mechanic Inspection

  • Car Show

  • Engine Customization

Engine Bay มีความสำคัญ

แต่ถ้า Hood ไม่เคยเปิดและผู้เล่นไม่เห็น Engine Model ส่วนใหญ่ การเก็บ Geometry ละเอียดมากอาจไม่คุ้มกับทรัพยากร

ควร Optimize ตาม Gameplay ของ Server

㉑ Collision ต้อง Optimize หรือไม่

ต้องพิจารณาเช่นกัน

Cfx.re Assets Manual อธิบายการสร้าง Collision ผ่าน Bound Geometry และ Primitive Shapes โดยแยก Collision Geometry ออกจาก Visual Drawable Workflow

หลักสำคัญคือ Collision ไม่ควรซับซ้อนกว่าที่ Gameplay ต้องการ

แต่การลดผิดอาจทำให้

  • รถชนทะลุ

  • Collision ไม่ตรง Body

  • Vehicle Physics แปลก

ดังนั้นควรทดสอบหลังแก้

㉒ ไม่ควรใช้ Visual Mesh ทั้งหมดเป็น Collision แบบไม่ตรวจ

Visual Model อาจมีรายละเอียดมากกว่าที่ Collision ต้องใช้มาก

แนวคิดของ Asset Workflow คือ Collision สามารถสร้างจาก Mesh หรือ Primitive ที่เหมาะสมแยกจาก Drawable ได้

จึงควรใช้ Collision ที่มีรายละเอียดพอสำหรับ Gameplay แทนการพยายามจำลองรายละเอียดเล็กทุกจุดของ Body

㉓ Car Pack ใหญ่ทำให้ FPS ตกเสมอไหม

ไม่เสมอ

Car Pack 200 คันที่จัด Asset ดีอาจทำงานดีกว่า Pack 50 คันที่มี Texture และ Model หนักมาก

สิ่งที่ต้องดูคือ

  • Asset ที่กำลังถูกโหลด

  • รถที่อยู่ใน Scene

  • Texture Memory

  • Geometry

  • Scripts

  • จำนวน Entity

ไม่ใช่ดูจำนวน Folder รถเพียงอย่างเดียว

㉔ รวมรถทั้งหมด Resource เดียวดีที่สุดไหม

ไม่จำเป็น

FiveM Server ทำงานจาก Resources ซึ่งสามารถ Start, Stop และ Restart แยกกัน และ Resource สามารถประกอบด้วยทั้ง Scripts และ Streaming Assets

สำหรับ Server ใหญ่สามารถแบ่ง เช่น

[cars]/
├── civilian_pack_01/
├── civilian_pack_02/
├── police_pack/
├── ems_pack/
├── jdm_pack/
└── supercar_pack/

ข้อดีคือ

  • Debug ง่าย

  • Update ง่าย

  • ปิด Pack ทดสอบง่าย

  • หา Asset เสียง่าย

  • ลดความเสี่ยงจากการ Merge Meta ทั้งหมดเข้าก้อนเดียว

㉕ Resource เยอะทำให้ Lag เสมอไหม

จำนวน Resource เพียงอย่างเดียวไม่เพียงพอที่จะตัดสิน Performance

ต้องดูว่า Resource เหล่านั้นทำอะไร

Resource ที่มีเฉพาะ Data/Streaming Asset ต่างจาก Resource ที่มี Script Loop ทำงานตลอดเวลา

Cfx.re Resource Monitor สามารถแสดง CPU usage และ Memory ของแต่ละ Resource ฝั่ง Client จึงควรใช้ข้อมูลจริงก่อนสรุปว่า Resource ใด “หนัก”

㉖ ใช้ resmon ตรวจรถได้ไหม

resmon เหมาะสำหรับตรวจ Resource Runtime Performance มากกว่าใช้วัดจำนวน Polygon ของรถ

Resource Monitor สามารถช่วยดูได้ว่า Resource ใดใช้ CPU time และ Memory มากผิดปกติ

ถ้าเพิ่ม Car Pack แล้ว FPS ตก แต่ resmon แสดง Script Resource หนึ่งใช้ CPU สูงมาก ปัญหาอาจไม่ใช่ Model รถเลย

ดังนั้นต้องแยก

Asset Performance

กับ

Script Performance

ออกจากกัน

㉗ FiveM Profiler ใช้ทำอะไร

FiveM มี Profiler สำหรับ Capture Performance Profile ของ Client หรือ Server Resource

Cfx.re มีคู่มือการใช้ Profiler โดยตรงสำหรับวิเคราะห์ Performance และ Resource Code

เหมาะเมื่อ Server มีอาการ

  • Script หน่วง

  • Resource ใช้เวลาประมวลผลสูง

  • ต้องการหาว่า Function ใดหนัก

แต่ Profiler ไม่ใช่เครื่องมือแทนการตรวจ Geometry/YTD ของ Vehicle Model

㉘ Asset กับ Script ต้อง Debug แยกกัน

ตัวอย่างรถหนึ่งคันอาจมาพร้อม Script เช่น

  • Engine Sound Controller

  • Vehicle Control

  • Extra Controller

  • Drift Script

  • Vehicle Damage Script

ถ้า FPS ลดหลังลง Pack อย่าลบ YTD ทันที

ลองปิด Script ที่เกี่ยวข้องแล้ว Test Asset ก่อน

จากนั้นจึงแยกได้ว่า

Model/Texture หนัก

หรือ

Script หนัก

Resource Monitor และ Profiler ของ FiveM ถูกสร้างมาเพื่อช่วยวิเคราะห์ Resource Runtime ในสถานการณ์ลักษณะนี้

㉙ รถคันเดียวลื่น แต่ Spawn 20 คันแล้วกระตุก

นี่เป็น Test ที่มีประโยชน์มาก

หนึ่ง Asset อาจดูไม่มีปัญหาเมื่ออยู่คนเดียว

แต่ Server จริงอาจมี

Police 10 คัน
Civilian 30 คัน
NPC Vehicles
Map
MLO
Clothes
Props
HUD

อยู่พร้อมกัน

ดังนั้นควรทดสอบ Stress Scenario เช่น

  • 10 คัน

  • 20 คัน

  • หลาย Model

  • หลาย Livery

แล้วดู FPS และ Memory

㉚ Car Meet เป็นจุดทดสอบที่ดี

สร้างพื้นที่ Test ที่ Spawn Custom Vehicles หลายรุ่นพร้อมกัน

จากนั้นลอง

  • เดินเข้าใกล้

  • ขับผ่าน

  • หมุนกล้อง

  • เข้า First Person

  • ขึ้นรถ

  • ออกห่าง

  • กลับเข้าพื้นที่

ดูว่าเกิด

  • FPS Drop

  • Texture Loss

  • Stutter

  • Model Pop-in

  • Memory Pressure

หรือไม่

Test แบบนี้สะท้อนสถานการณ์ Server จริงได้ดีกว่า Spawn รถหนึ่งคันหน้า Garage

㉛ Texture หายเมื่อรถเยอะคือสัญญาณอะไร

ถ้ารถหนึ่งคัน Texture ปกติ แต่เมื่อมีรถ Custom จำนวนมากแล้วเริ่มเห็น

  • Texture ขาว

  • Texture เบลอ

  • Map โหลดช้า

  • Asset โผล่ช้า

ให้ตรวจ Streaming/Memory ภาพรวม

FiveM มี str_maxVehicleTextureRes โดยระบุว่าการลด Maximum Vehicle Texture Resolution สามารถช่วยลดปัญหา Physical Memory หมดได้ จึงเป็นเครื่องมือหนึ่งที่ช่วยยืนยันว่าความละเอียด Texture และ Memory Pressure มีความสัมพันธ์กัน

㉜ อย่าให้ผู้เล่นแก้ str_maxVehicleTextureRes เพื่อชดเชย Asset ที่แย่

คำสั่งดังกล่าวมีประโยชน์สำหรับ Client Configuration และการวิเคราะห์ปัญหา

แต่ Server Owner ควร Optimize Asset ต้นทางด้วย

แนวคิดที่ดีกว่าคือ

Asset ดี
+
Texture เหมาะสม
+
LOD
+
Client Settings เหมาะสม

ไม่ใช่

Asset หนักมาก
+
บังคับผู้เล่นลดคุณภาพ

㉝ รถบางคันหนักมากควรลบออกเลยไหม

ไม่จำเป็นต้องลบทันที

ให้ทดสอบก่อนว่า Optimize ได้หรือไม่

ลำดับที่ควรทำ เช่น

  1. Backup

  2. ตรวจ Model

  3. ตรวจ Texture

  4. ตรวจ LOD

  5. ตรวจ Livery

  6. ตรวจ Custom Wheels

  7. ตรวจไฟล์ไม่ได้ใช้

  8. Optimize

  9. Test เปรียบเทียบ

ถ้าใช้เวลาแก้มากเกินไปเมื่อเทียบกับคุณค่าของรถ จึงค่อยพิจารณาเปลี่ยน Asset

㉞ อย่าลด Texture ทั้ง Pack อัตโนมัติแบบไม่ตรวจ

การ Batch Resize ทุก YTD ลงครึ่งหนึ่งอาจเร็ว แต่ไม่ใช่ Optimization ที่ดีที่สุดเสมอ

เพราะ Texture มีหน้าที่ต่างกัน

บางไฟล์ต้องการรายละเอียด

บางไฟล์ไม่ต้องการมาก

บางไฟล์มี Alpha

บางไฟล์เป็น Normal Map

บางไฟล์เป็น Specular

Cfx.re Assets Manual แสดงให้เห็นว่า Asset Workflow สามารถมี Diffuse, Normal และ Specular Textures ที่ถูกนำไปใช้กับ Shader ต่างกัน

ดังนั้นควรตรวจ Texture Type ก่อนแก้

㉟ ลบไฟล์ที่ไม่ใช้ได้ไหม

ได้เมื่อยืนยันแล้วว่าไม่มี Reference

ตัวอย่าง Resource ที่ผ่านการแก้หลายครั้งอาจมี

old_livery.ytd
backup.ytd
test_model.yft
unused_texture.ytd

ถ้าไฟล์ถูก Streaming โดยไม่จำเป็นก็ควรจัด Production Resource ให้สะอาด

แต่ต้อง Backup ก่อน

และไม่ควรลบ Shared Asset เพียงเพราะชื่อดูเหมือนไม่เกี่ยวกับ Vehicle Model

㊱ ไฟล์ Backup ควรอยู่ใน Resource Production ไหม

ไม่ควรเก็บไฟล์สำรองแบบที่อาจถูกระบบ Resource/Streaming มองเป็น Content ที่ใช้งานอยู่โดยไม่จำเป็น

ควรแยก Backup ออกจาก Production Resource เช่น

backup/
development/
source/

ไว้นอก Folder ที่ Server ใช้งานจริงตาม Workflow ของทีม

Production Resource ควรมีเฉพาะไฟล์ที่ต้องใช้งาน

㊲ Custom Sound ต้อง Optimize ด้วยหรือไม่

ควรจัดการเช่นกัน

รถที่มี Custom Sound จำนวนมากจะมี Audio Assets เพิ่ม

แม้เสียงไม่ได้ใช้ทรัพยากรในรูปแบบเดียวกับ Model/Texture แต่ควร

  • ลบ Sound ที่ไม่ได้ใช้

  • ไม่ Duplicate Pack โดยไม่จำเป็น

  • รวม/แยก Resource อย่างมีระบบ

  • ตรวจ Dependency

  • ตรวจไฟล์ซ้ำ

เพื่อไม่ให้ Resource Library เติบโตแบบควบคุมไม่ได้

㊳ Meta Files ทำให้ FPS ตกมากไหม

ไฟล์เช่น

handling.meta
vehicles.meta
carcols.meta
carvariations.meta

ไม่ใช่ Visual Asset แบบ YFT/YTD

ดังนั้นถ้าปัญหาหลักคือ FPS ตกเมื่อมองรถ ให้เริ่มตรวจ

Model
Texture
LOD
จำนวนรถ
Script

ก่อน

Meta File ควรตรวจเมื่อพฤติกรรมหรือ Configuration ของรถผิด

㊴ handling.meta ทำให้ Server Lag ไหม

Base Handling Data ไม่ควรถูกมองเป็นตัวการหลักของ Server Performance

แต่ถ้ามี Script เรียก Native ปรับ Handling ของรถจำนวนมากทุก Frame โดยไม่จำเป็น ปัญหานั้นเป็น Script Runtime Problem

จึงควรตรวจ Resource ด้วย resmon หรือ Profiler แทนการลดขนาด handling.meta

㊵ Car Script ที่ Loop ทุก Frame ต้องระวัง

Script ตัวอย่างแนวคิด

while true do
    Wait(0)

    -- ค้นหารถจำนวนมาก
    -- ตรวจค่าจำนวนมาก
    -- เปลี่ยนค่าทุก Frame
end

ไม่ควรถูกถือว่า Optimize เพียงเพราะไฟล์ .lua มีขนาดไม่กี่ KB

Performance ของ Script ขึ้นกับสิ่งที่มันทำตอน Runtime

FiveM Profiler และ Resource Monitor จึงมีประโยชน์กว่าการดู File Size ของ Script

㊶ รถ Enhanced ต้องตรวจ Compatibility ด้วย

FiveM มีเครื่องมือ Alchemist สำหรับ Convert Assets เดิมจาก GTAV Legacy ไปยัง GTAV Enhanced และ Refine Legacy Assets ที่อาจมี Format หรือ Compatibility Issues จากเครื่องมือรุ่นเก่า

Alchemist รองรับไฟล์หลายประเภท รวมถึง YFT และ YTD ซึ่งเกี่ยวข้องโดยตรงกับ Vehicle Assets

ดังนั้นใน Server ที่รองรับ Asset Workflow ใหม่ ควรแยก

ปัญหา Optimization

ออกจาก

ปัญหา Asset Compatibility

ด้วย

㊷ Alchemist ใช้ลด Polygon รถหรือไม่

ไม่ควรมองว่า Alchemist เป็นปุ่ม Optimize รถทุกอย่างอัตโนมัติ

เอกสาร Cfx.re ระบุจุดประสงค์หลักว่าใช้ Convert Legacy Assets ให้เข้ากับ GTAV Enhanced และ Refine Formatting/Compatibility Issues ของ Legacy Assets โดยรองรับ YDR, YTD, YFT, YPT และ YDD

ถ้าต้องการแก้ Geometry, LOD หรือ Texture จริง ยังต้องใช้ Asset Editing Workflow ที่เหมาะสม

㊸ วิธีหา “รถตัวปัญหา” ใน Car Pack

อย่า Optimize 200 คันพร้อมกัน

ใช้วิธีแบ่งกลุ่ม

ตัวอย่างมี 100 คัน

Pack A = 1–25
Pack B = 26–50
Pack C = 51–75
Pack D = 76–100

ทดสอบทีละกลุ่ม

ถ้า Pack C มีปัญหาชัด ให้แบ่ง Pack C ต่อ

51–62
63–75

จนหารุ่นที่สร้างปัญหาได้

นี่ช่วยลดขอบเขตการ Debug ได้มาก

㊹ จัดอันดับรถก่อน Optimize

สามารถสร้างรายการง่าย ๆ เช่น

Vehicle
YFT Size
YTD Size
Livery Count
Custom Sound
LOD
Status

จากนั้นเรียงรถที่มี Asset ใหญ่ผิดปกติขึ้นมาตรวจก่อน

อย่าตัดสินจาก File Size เพียงตัวเดียว แต่ใช้เป็นจุดเริ่มต้นสำหรับหา Outlier ได้

㊺ ทดสอบก่อนและหลัง Optimize

ควรมี Baseline

ตัวอย่าง

ก่อน Optimize
FPS = ...
Memory = ...
Texture Load = ...
จำนวนรถ = 20

จากนั้นทดสอบสภาพเดียวกันหลังแก้

หลัง Optimize
FPS = ...
Memory = ...
Texture Load = ...
จำนวนรถ = 20

ถ้าปรับ Asset แล้วไม่มีความแตกต่าง อย่าสรุปทันทีว่า Optimize สำเร็จ

ต้องดูว่าปัญหาจริงอาจมาจาก Resource อื่น

㊻ อย่าทดสอบคนละสถานที่

Performance Test ควรควบคุมตัวแปรให้ใกล้เคียงกัน

ใช้

  • จุดเดียวกัน

  • เวลาใกล้เคียงกัน

  • จำนวนรถเท่ากัน

  • รถชุดเดียวกัน

  • Graphic Settings เดิม

  • Client เครื่องเดิม

เพื่อลด Noise ของผลทดสอบ

ไม่เช่นนั้นอาจคิดว่า Optimize ดีขึ้นเพียงเพราะทดสอบในพื้นที่ที่ Map เบากว่า

㊼ ควรทดสอบกับคอมสเปกกลาง

Developer มักใช้เครื่องแรง

ถ้าทดสอบเฉพาะ

  • GPU ระดับสูง

  • RAM เยอะ

  • VRAM สูง

  • SSD เร็ว

Asset ที่หนักอาจไม่แสดงปัญหาชัด

แต่ผู้เล่นส่วนใหญ่ไม่ได้ใช้เครื่องระดับเดียวกัน

จึงควรมี Test Client ระดับกลางด้วย โดยเฉพาะ Server ที่ต้องการรองรับผู้เล่นจำนวนมาก

㊽ อย่า Optimize จนรถเสีย Feature

หลังแก้ทุกคันต้องทดสอบ

  • Spawn

  • Texture

  • Interior

  • Lights

  • Doors

  • Windows

  • Wheels

  • Livery

  • Mods

  • Extras

  • Collision

  • Damage

  • Sound

  • Driving

รถที่ FPS ดีขึ้นแต่

ประตูเปิดไม่ได้
Livery หาย
ล้อหาย
Collision พัง

ถือว่า Optimize ไม่สำเร็จ

㊾ Checklist Optimize รถ FiveM

ใช้ Checklist นี้ได้

Model

  • Geometry เหมาะสม

  • ไม่มีรายละเอียดเกินจำเป็น

  • Parts ที่ไม่ใช้ถูกตรวจแล้ว

  • LOD เหมาะสม

Texture

  • Resolution เหมาะกับขนาดที่มองเห็น

  • ไม่มี 4K โดยไม่มีเหตุผล

  • Compression ถูกต้อง

  • Mipmap เหมาะสม

  • ไม่มี Texture ซ้ำที่ไม่จำเป็น

Livery

  • เก็บเฉพาะลายที่ใช้

  • Resolution ไม่สูงเกิน

  • Alpha ถูก

  • ไม่มี Duplicate

Collision

  • ไม่ซับซ้อนเกิน Gameplay

  • Collision ยังตรงกับรถ

Resources

  • ไม่มี Test Files

  • ไม่มี Backup Files ปน Production

  • ไม่มีรถซ้ำ

  • Resource แบ่งเป็นระบบ

Scripts

  • ตรวจ resmon

  • ตรวจ Profiler หากจำเป็น

  • หลีกเลี่ยง Runtime Loop ที่ไม่จำเป็น

Cfx.re มีทั้ง Resource Monitor และ Profiler สำหรับช่วยแยกปัญหา Script Performance ออกจาก Asset Performance

㊿ วิธี Optimize Car Pack FiveM แบบเป็นขั้นตอน

ถ้ามี Car Pack ใหญ่ ให้ใช้ Workflow นี้

ขั้นที่ 1 — Backup

เก็บ Original Pack ก่อนแก้

ขั้นที่ 2 — ตรวจรถทีละกลุ่ม

อย่าเริ่ม 200 คันพร้อมกัน

ขั้นที่ 3 — ตรวจ YFT

หา Model ที่ซับซ้อนผิดปกติ

ขั้นที่ 4 — ตรวจ YTD

หา Texture ความละเอียดสูงหรือ Dictionary ที่ใหญ่ผิดปกติ

ขั้นที่ 5 — ตรวจ Livery

เอาลายที่ไม่ใช้และ Duplicate ออกจาก Production เมื่อยืนยัน Reference แล้ว

ขั้นที่ 6 — ตรวจ LOD

หลักการ LOD คือใช้ Geometry/Materials ที่ง่ายลงเมื่อไม่ต้องแสดงรายละเอียดเต็ม ซึ่ง Cfx.re มี Workflow สำหรับ HD/LOD Assets โดยตรง

ขั้นที่ 7 — ตรวจ Collision

ให้เหมาะสมกับ Vehicle

ขั้นที่ 8 — ตรวจ Resource

ลบ Development Files ออกจาก Production

ขั้นที่ 9 — ตรวจ Script

ใช้ Resource Monitor

ขั้นที่ 10 — ใช้ Profiler เมื่อปัญหามาจาก Runtime

FiveM มี Profiler สำหรับ Capture และวิเคราะห์ Resource Performance โดยตรง

ขั้นที่ 11 — Stress Test

Spawn รถหลายคัน

ขั้นที่ 12 — Compare ก่อน/หลัง

เก็บผลจริง

ตารางสรุปปัญหารถ FiveM กับจุดที่ควร Optimize

อาการจุดที่ควรตรวจ
มองรถแล้ว FPS ตกModel / Texture
รถเยอะแล้ว FPS ตกGeometry / LOD / Texture
Texture รถหายYTD / Streaming / Memory
รถกลายเป็นขาวเมื่อรถเยอะStreaming / Vehicle Texture Memory
เข้า Car Meet แล้วกระตุกจำนวน Asset ใน Scene
รถคันเดียวหนักมากYFT / YTD / Mods
Livery เยอะมากTexture/Livery
Model ไกล ๆ ยังหนักLOD
รถชนแล้ว Physics แปลกCollision / Handling
Resource CPU สูงScript / resmon
Server Runtime หน่วงScript / Profiler
Enhanced แล้ว Asset ผิดCompatibility / Alchemist
Pack เดี่ยวดี รวมแล้วหนักAsset Aggregate / Conflict
เครื่องแรงลื่น เครื่องกลางกระตุกClient Resource Budget

Optimize รถหรือเพิ่มสเปก Server ก่อน

ต้องดูต้นเหตุ

ถ้าอาการคือ

GPU/VRAM Client เต็ม + FPS ลดเมื่อมองรถ

เพิ่ม CPU/RAM ของ Dedicated Server อาจไม่แก้ปัญหาหลัก

แต่ถ้าอาการคือ

Server Script ใช้ CPU สูง

ลด Texture รถก็ไม่แก้ Script Loop เช่นกัน

จึงต้องแยก

Rendering
Streaming
Client Script
Server Script
Network

ก่อนใช้เงิน Upgrade Hardware

Resource Monitor และ Profiler ของ FiveM มีไว้ช่วยวิเคราะห์ส่วนของ Resource Runtime แทนการคาดเดา

รถ FiveM ที่ Optimize ดีควรเป็นอย่างไร

รถที่ดีไม่จำเป็นต้องเป็นรถที่ File Size เล็กที่สุด

แต่ควรมีลักษณะประมาณนี้

  • ภาพสวยในระยะใช้งานจริง

  • Texture ไม่ใหญ่เกินเหตุ

  • Geometry สมเหตุสมผล

  • มี LOD ตามความเหมาะสม

  • Collision ถูกต้อง

  • ไม่มีไฟล์ซ้ำโดยไม่จำเป็น

  • Livery ถูกจัดการดี

  • Function รถยังครบ

  • ใช้ร่วมกับรถหลายคันแล้ว FPS ไม่ตกผิดปกติ
    -ไม่มี Script หนักโดยไม่จำเป็น

ควร Optimize รถก่อนเพิ่มเข้า Production หรือไม่

ควร

Workflow ที่ปลอดภัยคือ

Download/ซื้อ Asset
↓
License Check
↓
Test Resource
↓
ตรวจ Model
↓
ตรวจ Texture
↓
ตรวจ LOD
↓
ตรวจ Meta
↓
Performance Test
↓
Optimize
↓
Stress Test
↓
Production

ไม่ควรนำรถทุกคันเข้า Production ก่อนแล้วค่อย Optimize เมื่อผู้เล่นเริ่มแจ้งว่า Texture หาย

สรุป วิธี Optimize รถ FiveM ลด Server Lag และ FPS ตก

ถ้าต้องการ Optimize รถ FiveM ให้ได้ผลจริง อย่าเริ่มจากลด Texture ทุกไฟล์หรือรวมรถทั้งหมดเป็น Resource เดียว

ให้แยกก่อนว่าเป็น

Client FPS/Streaming Problem

หรือ

Server/Script Performance Problem

ถ้าเป็นปัญหาฝั่ง Asset ให้ตรวจตามลำดับ

YFT → Geometry → LOD → YTD → Texture Resolution → Livery → Wheels → Collision → จำนวนรถที่อยู่ใน Scene

Cfx.re มีเอกสารเกี่ยวกับ LOD ที่แนะนำการใช้ Model รายละเอียดลดลงสำหรับระยะไกล และ FiveM ยังมี str_maxVehicleTextureRes ซึ่งถูกออกแบบมาเพื่อจำกัด Vehicle Texture Resolution และช่วยลดโอกาส Physical Memory หมดฝั่ง Client

ถ้าสงสัย Script ให้ใช้

Resource Monitor → Profiler

เพราะ Cfx.re มีเครื่องมือทั้งสองสำหรับตรวจ CPU/Memory และ Performance ของ Resources โดยตรง

แนวทางของ comsiam คืออย่าตัดสินคุณภาพ Car Pack จากจำนวนรถหรือขนาด ZIP เพียงอย่างเดียว แต่ให้ทดสอบรถหลายคันพร้อมกันในสถานการณ์จริง เพราะเป้าหมายของการ Optimize ที่ดีคือ รถยังสวย Feature ครบ แต่ใช้ทรัพยากรเท่าที่จำเป็นและไม่ทำลายประสบการณ์ของผู้เล่นเมื่อ Server มี Custom Assets จำนวนมาก

Comments

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด