Nó phụ thuộc gần như hoàn toàn vào nhu cầu trò chơi cụ thể của bạn . Nó có thể hoạt động hoàn hảo cho một trò chơi đơn giản, nhưng thất bại trên một hệ thống phức tạp hơn. Nếu nó hoạt động cho trò chơi của bạn, đừng lo lắng về nó hoặc cố gắng thiết kế nó cho đến khi có nhu cầu.
Về lý do tại sao cách tiếp cận đơn giản có thể thất bại trong một số tình huống, thật khó để tóm tắt rằng trong một bài viết, vì khả năng là vô tận và phụ thuộc hoàn toàn vào chính các trò chơi. Ví dụ, các câu trả lời khác đã đề cập rằng bạn có thể muốn nhóm các đối tượng chia sẻ trách nhiệm với nhau thành một danh sách riêng.
Đó là một trong những thay đổi phổ biến nhất bạn có thể thực hiện tùy thuộc vào thiết kế trò chơi của bạn. Tôi sẽ có cơ hội mô tả một vài ví dụ khác (phức tạp hơn), nhưng hãy nhớ rằng vẫn còn nhiều lý do và giải pháp khả thi khác.
Để bắt đầu, tôi sẽ chỉ ra rằng việc cập nhật các đối tượng trò chơi của bạn và hiển thị chúng có thể có các yêu cầu khác nhau trong một số trò chơi và do đó cần phải được xử lý riêng. Một số vấn đề có thể xảy ra với việc cập nhật và kết xuất các đối tượng trò chơi:
Cập nhật đối tượng trò chơi
Đây là một đoạn trích từ Game Engine Architecture mà tôi khuyên bạn nên đọc:
Với sự hiện diện của các phụ thuộc giữa các đối tượng, kỹ thuật cập nhật theo giai đoạn được mô tả ở trên phải được điều chỉnh một chút. Điều này là do sự phụ thuộc giữa các đối tượng có thể dẫn đến các quy tắc xung đột chi phối thứ tự cập nhật.
Nói cách khác, trong một số trò chơi, các đối tượng có thể phụ thuộc lẫn nhau và yêu cầu một thứ tự cập nhật cụ thể. Trong kịch bản này, bạn có thể cần phải tạo ra một cấu trúc phức tạp hơn một danh sách để lưu trữ các đối tượng và các phụ thuộc lẫn nhau của chúng.
Kết xuất đối tượng trò chơi
Trong một số trò chơi, cảnh và đối tượng tạo ra một hệ thống các nút cha-con và phải được hiển thị theo đúng thứ tự và với các biến đổi liên quan đến cha mẹ của chúng. Trong những trường hợp đó, bạn có thể cần một cấu trúc phức tạp hơn như biểu đồ cảnh (cấu trúc cây) thay vì một danh sách:
Ví dụ, các lý do khác có thể là sử dụng cấu trúc dữ liệu phân vùng không gian để sắp xếp các đối tượng của bạn theo cách cải thiện hiệu quả của việc thực hiện loại bỏ chế độ xem.