2010-03-27 36 views
12

Riêng đối với trò chơi 2ngày và đặc biệt là trò chơi bạc/wpf.MVVM sẽ như thế nào đối với trò chơi?

Nếu bạn nghĩ về nó, bạn có thể chia đối tượng trò chơi vào dạng xem (đồ họa trên màn hình) và kiểu xem/mô hình (trạng thái, ai và dữ liệu khác cho đối tượng). Trong Silverlight, có vẻ như phổ biến để làm cho mỗi đối tượng một điều khiển người dùng, đưa mô hình và xem vào một đối tượng duy nhất. Tôi cho rằng lợi thế của điều này là đơn giản. Nhưng, có lẽ nó ít sạch hơn hoặc có một số nhược điểm về "công cụ trò chơi" cơ bản.

Suy nghĩ của bạn về vấn đề này là gì? Một số ưu điểm và nhược điểm của việc sử dụng mẫu MVVM để phát triển game là gì? Làm thế nào về hiệu suất? Tất cả những suy nghĩ đều được chào đón.

Trả lời

11

Nói cách - tuyệt vời!

Thực ra, Josh Smith vừa xuất bản một cuốn sách về MVVM bằng cách sử dụng trò chơi làm ứng dụng giải thích của mình. Đề nghị bạn nên đọc bài viết tuyệt vời (và miễn phí) của công ty Josh's trước tiên (và miễn phí) critique.

11

Bạn có thể gặp phải sự cố về hiệu suất, vì MVVM thường dẫn đến nhiều chức năng Ràng buộc dữ liệu trong WPF để thực hiện tách riêng. Tuy nhiên, nó vẫn là một ý tưởng tuyệt vời và đáng để theo đuổi; bạn luôn có thể cấu hình ứng dụng sau này và tối ưu hóa các yếu tố nhất định, nếu bạn cần. Nhiều khả năng nó sẽ là AI đang gating chứ không phải là tích hợp UI.

Theo như tìm ra nơi để chia Mô hình | Xem mô hình | Xem, tôi muốn thực hiện theo phương pháp sau:

  1. Mô hình là mọi thứ không có gì hoặc rất ít liên quan trực tiếp đến người dùng. Điều này sẽ bao gồm công cụ quy tắc trò chơi, AI, v.v. Mô hình Xem tương tác với Mô hình theo các cách được xác định rõ nơi người dùng có quyền kiểm soát hoặc nhận phản hồi về những gì đang xảy ra trong Mô hình trò chơi.

  2. Tôi cố gắng tạo Kiểu xem cho từng thành phần chính của giao diện. Ví dụ, nếu bạn đang xây dựng một game nhập vai, bạn có thể có một InventoryViewModel, CharacterStatsViewModel, WorldMapViewModel, v.v. Tôi thường không tạo chúng cho các điều khiển/widget riêng lẻ (như chỉ báo sức khỏe, dấu hiệu mục hoặc dấu '+' để tăng cấp) trừ khi họ có một giao diện phức tạp hợp lý.

  3. Chế độ xem dĩ nhiên là cách người dùng cuối cùng tương tác và quan sát, điều này khá đơn giản để hiểu. Một điều thú vị là bạn có thể tạo nhiều Chế độ xem cho một ViewModel nhất định, vì vậy bạn có thể có chế độ xem lớn cho Khoảng không quảng cáo và cũng là chế độ xem nhỏ hơn để truy cập nhanh vào các mục quan trọng, ví dụ, nếu cách bạn tương tác với chúng tương tự.

+3

Tốt. Âm thanh số 3 đặc biệt hữu ích. –

Các vấn đề liên quan