Làm cách nào tôi có thể tạo một bộ trò chơi mini trong XNA nơi người dùng có thể tải xuống các gói minigame và .exe chính có thể chạy chúng mà không bị thay đổi?


12

Tôi hiện đang làm một trò chơi trên PC trong XNA. Đây thực sự là một bộ sưu tập các trò chơi nhỏ (có 3 trò chơi nhỏ vào lúc này) tuy nhiên tôi dự định thực hiện và bổ sung thêm, trong các 'gói' có thể tải xuống.

Câu hỏi của tôi là, cách tốt nhất để đạt được điều này là gì?

Hiện tại suy nghĩ của tôi là:

  • Tạo giao diện 'trò chơi'
  • Xây dựng trò chơi theo giao diện này nhưng tạo chúng dưới dạng dll
  • Có tệp .exe chính quét một thư mục và tải trong các tệp dll khi chạy.

Tôi đã không loay hoay với ý tưởng này nhiều, nhưng tôi biết ít nhất có những ứng dụng sử dụng phương pháp bổ trợ này (dường như Notepad ++), nhưng tôi không chắc chắn về bất kỳ trò chơi nào (mặc dù tôi chắc chắn họ phải tồn tại). Tuy nhiên, có vẻ như đây là một vấn đề đã được giải quyết trước đây, vì vậy tôi tự hỏi liệu có bất kỳ hình thức thực hành tốt nhất nào được thiết lập hay không.

Câu trả lời:


5

Trên các cửa sổ, bạn có thể chỉ cần mở một cụm (dll) và nhập các loại và thực hiện các phương thức. Xem tài liệu Lớp hội .

Trên Xbox 360, bạn không có quyền truy cập vào System.Reflection. Ở đây bạn nên dựa vào API cửa hàng XBLA. Tôi không chắc có bao nhiêu chức năng này có sẵn cho các ứng dụng XBLIG.


Vâng, tôi biết tôi chỉ có thể tải các dll (vì đây là một trò chơi trên PC) tuy nhiên tôi tự hỏi liệu đây có phải là cách tốt nhất để làm điều đó hay không, nếu điều này đi ngược lại với thực tiễn tốt nhất đã được thiết lập
Andrew Thorpe

+1 Đây là cách tải plugin chuẩn. Tra cứu kiến ​​trúc plugin; FYI, đây là một giải pháp rất tốt.
tro999

1

Vì bạn đang xây dựng một trò chơi cho Windows, bạn có thể truy cập vào khung đầy đủ như @Ranieri đã nêu. Kiến trúc của bạn nghe có vẻ vững chắc; tuy nhiên, bạn có thể muốn kiểm tra MEF , Khung mở rộng được quản lý. Nó có thể làm cho quy trình công việc mà bạn phác thảo hợp lý hơn. Tôi đã không sử dụng nó cho mình, nhưng tôi đã đọc những điều tốt về nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.