⚙️ Optimization (Tối ưu hóa Máy tính/Đồ họa)
Optimization (Tối ưu hóa) trong ngành công nghiệp làm game là quá trình tinh chỉnh mã nguồn (Code), bộ nhớ (Memory), hoặc các mô hình đồ họa (3D Models, Texture) sao cho game chạy mượt mà nhất có thể trên một cấu hình phần cứng nhất định mà không làm suy giảm chất lượng trải nghiệm của người chơi.
Tối ưu hóa là ranh giới tuyệt đối phân tách một studio chuyên nghiệp và một nhóm nghiệp dư.
Tại sao Tối ưu hóa lại đẫm máu đến vậy?
Khác với làm video YouTube rendered 1 lần, Video Game phải Render toàn bộ hình ảnh dưới thời gian thực (Real-time). Nếu một cảnh game yêu cầu CPU và GPU xử lý một khối lượng quá ngưỡng 16 mili-giây (Ms), khung hình sẽ bị rớt xuống dưới mức chuẩn 60 FPS, gây giật lag (Stuttering), và văng game do tràn RAM (Crash memory).
Các hình thức Tối ưu kỹ nghệ cơ bản
Mọi Technical Artist và Engine Programmer đều sống còn nhờ các kỹ thuật này:
- LOD (Level of Detail): Bộ quần áo của nhân vật khi đứng gần màn hình thì sẽ được dùng tới 50.000 Đa giác Polygon để trông nhẵn nhụi. Tuy nhiên, khi nhân vật đó chạy ra xa xăm còn bằng hạt tiêu, máy tự động bị tráo bằng một phiên bản xấu xí chỉ có 500 Polygon để đỡ ngốn GPU tính toán.
- Culling (Kỹ thuật cắt góc mù): Trái đất trong game không hề tròn hay được tải hết một lần. Phía sau lưng của nhân vật (Góc Camera không nhìn tới) thì mọi vật thể, ánh sáng, ngọn cỏ sẽ bị Engine xóa sạch hoàn toàn khỏi bộ nhớ, và chúng chỉ được tải lại khi người chơi quay lưng nhìn lại. Đây gọi là Frustum Culling / Occlusion Culling.
- Draw Calls Batching (Gom gói lệnh Giao tiếp đồ họa): Thay vì ra lệnh cho màn hình vẽ 1.000 cái lá rụng bằng 1.000 dòng mệnh lệnh xé lẻ gây tắc nghẽn giao thông ở trạm BOT (CPU/GPU Bottleneck). Kỹ sư code một đoạn mã gom (Batch) cả 1.000 cái lá đó tống qua 1 dòng lệnh duy nhất.
- Baking (Nướng kết cấu Ánh sáng): Ray-Tracing tính đường đi của ánh nắng theo thời gian thực rất năng nề tốn tài nguyên. Vậy nên người ta “Baking” (Tính toán sẵn một lần trên máy chủ ảo, rồi dán cứng lớp bóng râm đen ngòm đó dính luôn vào tảng đá như sơn vẽ vĩnh viễn không tẩy được). Rất nhẹ, nhưng nó cũng là điểm yếu nếu ánh sáng động xuất hiện nó sẽ vô tình vô lý.
Tối ưu hóa luôn là vấn đề muôn thuở ở cuối các dự án và thường là nguyên do chính để dời ngày phát hành của game vì “Bugs và Trễ khung”.