Có hai điều khác biệt cần xem xét khi đo lường và tối ưu hóa hiệu suất của một hệ thống các thực thể quy mô lớn như vậy.
Ở mức độ thấp, bạn có đại diện vật lý cho các thực thể của mình có xu hướng sử dụng các bố cục lưu trữ hiệu quả như SoA (cấu trúc của mảng) để giảm chi phí lặp và cập nhật tất cả các thực thể hoạt động.
Ở cấp độ cao hơn, bạn có logic đưa ra quyết định, logic trò chơi chung, AI và tìm đường. Đây là tất cả các tác vụ có điểm chung là chúng không phải chạy ở cùng tốc độ cập nhật như kết xuất của bạn.
Vì bạn sẽ có thời gian khung hình không đồng đều nếu bạn thực hiện phương pháp ngây thơ khi chỉ thực hiện các tác vụ đó trên mỗi khung hình N, có xu hướng có lợi khi khấu hao chi phí qua nhiều khung hình.
Nếu bản chất nhiệm vụ là tăng dần, bạn có thể chạy một phần của thuật toán mỗi khung và sử dụng một phần kết quả trong các bản cập nhật của bạn.
Nếu tác vụ phần lớn là nguyên khối nhưng có thể tách rời cho mỗi thực thể, bạn có thể thực hiện tác vụ đó cho một tập hợp con của các thực thể trò chơi của mình trên mỗi khung, xoay vòng giữa chúng theo kiểu vòng tròn. Điều này có lợi ích là giảm sự phức tạp của những thứ như tìm đường và AI, vì bạn không có ai cố gắng hành động cùng một lúc.
Trong RTS chiến thuật quy mô lớn mà tôi đã làm việc, chúng tôi tập trung vào việc có các cấu trúc dữ liệu mạnh mẽ để truy vấn biểu diễn cấp thấp trong các thuật toán cấp cao, để tìm hàng xóm của các thực thể trò chơi. Quá trình cập nhật cấp thấp đã hành động theo ý định được cung cấp bởi mô phỏng cấp cao cập nhật chậm, và cuối cùng đã biến thành một mô phỏng hạt giá rẻ, mở rộng ra hàng ngàn.