2009-12-02 3 views
11

Đây là một câu hỏi hơi lạ.C# Ngôn ngữ lập trình

Tôi muốn cung cấp ngôn ngữ kịch bản cho việc sửa đổi trò chơi mà tôi xây dựng cho XNA. Nếu tôi đang sử dụng các trò chơi này cho PC thì tôi có thể sử dụng các tệp C#, được biên dịch tại thời gian chạy (Sử dụng reflection.emit) dưới dạng tập lệnh và điều đó sẽ tốt - một cách đơn giản để sửa đổi trò chơi. Tuy nhiên, khung công tác compact .net (đó là những gì xbox cung cấp) không hỗ trợ reflection.emit, vậy làm thế nào tôi có thể viết một ngôn ngữ kịch bản để tính đến điều này?

  1. Có bất kỳ dự án đã làm điều này
  2. Có bất kỳ nguồn lực tốt để bắt đầu dự án của riêng tôi để làm điều này
  3. Điều gì sẽ là ngôn ngữ tốt nhất để lựa chọn? Điều này là dành cho kịch bản trò chơi để nó có thể là một ngôn ngữ khá nhỏ miễn là nó khá hiệu quả và dễ dàng để thực hiện một thông dịch viên cho
+2

Thực ra, Reflection.Emit không cho phép bạn biên dịch ** mã C#. Bạn đang nói về CodeDOM? –

+0

Dường như tôi làm vậy. CodeDom có ​​sẵn trên khung nhỏ gọn không? – Martin

Trả lời

5

Tôi biết đây là câu hỏi cũ nhưng tôi có các yêu cầu tương tự trước đó và tôi đã tìm hiểu về Managed Scripting. Dường như nó được phát triển ban đầu để giải quyết vấn đề của kịch bản trong các trò chơi XNA vì vậy điều này thậm chí còn tốt hơn.

Từ trang web:

Managed Scripting Engine

Scripting Managed cung cấp một giải pháp nhanh chóng và dễ dàng cho các nhà phát triển cần phải thực hiện một đoạn mã script vào giải pháp của họ. Script được quản lý đi kèm với một công cụ kịch bản lệnh thẳng có thể biên dịch & các kịch bản lệnh trên máy bay, tạo các assembly trong bộ nhớ hoặc cục bộ trên ổ cứng và cho phép tự động gọi các phương thức và truy cập các thuộc tính trong suốt thời gian chạy. ManagedScripting chạy trên Windows Vista, XP, Linux, XBox 360 và Microsofts Zune Player với các tập lệnh đã viết bằng Visual Basic hoặc C# làm ngôn ngữ có kế hoạch thêm hỗ trợ cho Ruby, Python và JScript.

Tôi chưa tự tìm hiểu sâu hơn nhưng nó nghe giống như những gì chúng tôi muốn.

+0

Cách tiếp cận javascript là tìm kiếm thần, nhưng các vấn đề kỹ thuật với an toàn loại đã đánh chìm nó, vì vậy đây là cách tiếp cận mới mà tôi sẽ thử: D – Martin

+0

Rất vui được biết. Bạn có một blog mà bạn thường xuyên cập nhật hoặc một cái gì đó? Tôi rất muốn giữ một tab về tiến trình của bạn với thư viện này. – Dan7

+0

Vâng, tôi có một blog tại martindevans.appspot.com/blog nhưng tôi sẽ không chính xác gọi nó là cập nhật thường xuyên. Nó trông thực sự xấu vào lúc này bởi vì tôi thường viết các bài đăng trên blog trên chuyến tàu đi đến uni, vì vậy ngày lễ giáng sinh đã để lại khoảng cách lớn hơn nhiều so với thông thường giữa các mục! – Martin

6

Lua thường được sử dụng cho kịch bản trò chơi. World of Warcraft chẳng hạn cung cấp cho tất cả các nhà sản xuất mod.

Ngoài ra hãy xem tại các trang web này:

  1. C++
  2. C#
+1

Có, nhưng có thông dịch viên C# thuần túy cho LUA không? không xa như tôi biết: ( – Martin

+0

http://www.gamedev.net/reference/articles/article2275.asp – Carra

+0

Ooh có vẻ tích cực, bạn có thể chỉnh sửa nó vào câu trả lời để tôi có thể upvote bạn? – Martin

2

Tôi muốn để trỏ đến this related SO question, thêm javascript như một tùy chọn. Đối với một số người, Javascript sẽ quen thuộc hơn Lua.

+0

Đó thực sự là một điểm tốt, tôi chưa bao giờ xem xét rằng – Martin

+0

Đây là con đường chúng tôi đang đi. Cảm ơn sự giúp đỡ của bạn: D – Martin

+0

Điều đó thật tuyệt. Hân hạnh! –

0

Bạn có thể muốn xem xét VSTA, nó cung cấp C# hoặc VB.Net. Tôi không biết về biên dịch thời gian chạy.

+1

VSTA cái gì? Vui lòng cung cấp một số liên kết hoặc ngữ cảnh khác. Ngoài ra, nó hoạt động trên Xbox? –

+0

mmk prolly có nghĩa là Công cụ cho ứng dụng Visual Studio (http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Applications) – Zano

+2

Thôi nào. Google -> VSTA. Mất 2 giây – tjmoore