Các thiết kế trò chơi truyền thống , như tôi biết điều đó, sử dụng đa hình và chức năng ảo để cập nhật trò chơi đối tượng tiểu bang. Nói cách khác, cùng một tập hợp các hàm ảo được gọi theo các khoảng thông thường (ví dụ: mỗi khung hình) trên mọi đối tượng trong trò chơi.
Gần đây, tôi phát hiện ra rằng có một hệ thống nhắn tin hướng sự kiện khác có sẵn để cập nhật trạng thái của các đối tượng trò chơi. Ở đây, các đối tượng thường không được cập nhật trên cơ sở mỗi khung hình. Thay vào đó, một hệ thống nhắn tin sự kiện hiệu quả cao được xây dựng và các đối tượng trò chơi chỉ được cập nhật sau khi nhận được thông báo sự kiện hợp lệ.
Kiến trúc trò chơi hướng sự kiện được mô tả tốt trong: Hoàn thành mã hóa trò chơi của Mike McShaffry .
Tôi có thể vui lòng yêu cầu giúp đỡ với các câu hỏi sau đây:
- Những lợi thế và bất lợi của cả hai phương pháp là gì?
- Đâu là cái tốt hơn cái kia?
- Là thiết kế trò chơi hướng sự kiện phổ quát và tốt hơn trong tất cả các lĩnh vực? Do đó, nó có được khuyến khích sử dụng ngay cả trong các nền tảng mombile không?
- Cái nào hiệu quả hơn và cái nào khó phát triển hơn?
Để làm rõ, câu hỏi của tôi không phải là loại bỏ hoàn toàn đa hình khỏi thiết kế trò chơi. Tôi chỉ đơn giản muốn hiểu sự khác biệt và lợi ích từ việc sử dụng tin nhắn hướng sự kiện so với các cuộc gọi thông thường (theo khung) đến các chức năng ảo để cập nhật trạng thái trò chơi.
Ví dụ: Câu hỏi này gây ra một chút tranh cãi ở đây, vì vậy hãy để tôi cung cấp cho bạn ví dụ: Theo MVC, công cụ trò chơi được chia thành ba phần chính:
- Lớp ứng dụng (Giao tiếp phần cứng và hệ điều hành)
- Logic trò chơi
- Chế độ xem trò chơi
Trong một trò chơi đua xe, Game View chịu trách nhiệm hiển thị màn hình nhanh nhất có thể, ít nhất là 30 khung hình / giây. Chế độ xem trò chơi cũng lắng nghe ý kiến của người chơi. Bây giờ điều này xảy ra:
- Người chơi nhấn bàn đạp nhiên liệu đến 80%
- GameView xây dựng một thông báo "Bàn đạp nhiên liệu trên xe hơi được nhấn tới 80%" và gửi nó đến Game Logic.
- Game Logic nhận được thông báo, đánh giá, tính toán vị trí và hành vi của xe mới và tạo các thông báo sau cho GameView: "Draw Car 2 Fuel Đạp ép 80%", "Tăng tốc âm thanh trên xe 2", "Xe 2 tọa độ X, Y" .. .
- GameView nhận được tin nhắn và xử lý chúng phù hợp
update
cho họ). Thứ hai bạn có thể làm với nhắn tin vì nhiều lý do.