Có vẻ như bạn đã có ít nhất hai luồng thực hiện, với kết xuất của bạn trên luồng của chính nó. Nếu đó là trường hợp, thì bạn thực sự có hai tốc độ khung hình để lo lắng. Bạn sẽ muốn cả hai nhanh nhất có thể. Tuy nhiên, nó cũng phụ thuộc vào loại trò chơi bạn đang xây dựng.
Bạn đang xây dựng một game bắn súng góc nhìn thứ nhất, trong đó tốc độ khung hình nhỏ có thể mang lại lợi thế cho đối thủ? Nếu vậy, bạn sẽ muốn đảm bảo rằng khung hình / giây trung bình của bạn đủ cao, nhưng cũng lo lắng về thời gian khung hình xấu nhất của bạn. Bạn đang xây dựng một trò chơi hội đồng quản trị? Nếu vậy, việc tăng đột biến khung thời gian không thường xuyên sẽ không giết chết trải nghiệm người dùng.
Trong các trò chơi của riêng tôi, quy trình của tôi thường giống như thế này:
- Chạy một hồ sơ trên mã
- Nhìn vào tốc độ khung hình trung bình. Nếu trung bình quá thấp, hãy tăng số khung hình trung bình lên bằng cách tối ưu hóa các công cụ chậm.
- Khi khung hình / giây trung bình đủ cao, hãy tìm thời gian khung hình xấu nhất (khung hình mà bạn thấy các xung đột lớn trong thời gian tính toán hoặc kết xuất). Cố gắng tối ưu hóa các tình huống xấu nhất để cải thiện thời gian khung hình xấu nhất.
Nếu bạn ở tốc độ 30 khung hình / giây hầu hết thời gian, nhưng bạn tăng vọt lên 200ms cứ sau 10 giây, điều đó sẽ gây ra vấn đề. Nhưng nếu bạn đạt trung bình 15 khung hình / giây, hãy đưa khung hình trung bình của bạn lên trước.
Vì vậy, câu trả lời ngắn có lẽ sẽ là: tối ưu hóa bất cứ điều gì tạo ra sự cải thiện lớn nhất cho trải nghiệm người dùng trước tiên.