2009-12-02 130 views
11

這是一個有點奇怪的問題。C#腳本語言

我想爲我爲XNA構建的遊戲提供一種腳本語言。如果我在這些遊戲中使用PC,那麼我將只能使用在運行時編譯的C#文件(使用reflection.emit)作爲腳本,這很好 - 一種很好的簡單方法來修改遊戲。然而,.net壓縮框架(這是xbox提供的)不支持reflection.emit,所以我怎麼才能編寫腳本語言來考慮這一點呢?

  1. 是否有任何項目已經這樣做了
  2. 是否有良好的資源來開始自己的項目做這個
  3. 什麼是最好的語言選擇?這是用於遊戲腳本編寫的,所以它可以是相當小的語言,只要它相當高效且易於實現解釋器
+2

其實,Reflection.Emit不允許你編譯** C#代碼。你在談論CodeDOM嗎? – 2009-12-02 11:27:37

+0

看來我是這樣做的。 codeDom是否在緊湊框架上可用? – Martin 2009-12-02 11:30:48

回答

5

我知道這是一個老問題,但我有類似的要求,我發現了約Managed Scripting。看起來它最初是爲了解決XNA遊戲中的腳本問題而開發的,所以這更好。

從網站:

管理腳本引擎

管理腳本提供了開發人員需要實現一個腳本引擎到他們的解決方案的快速和簡單的解決方案。託管腳本隨附一個直接轉發的腳本引擎,可以實時編譯實例腳本,在內存中生成程序集或在硬盤上本地生成程序集,並允許在運行時動態調用方法和訪問屬性。 ManagedScripting在Windows Vista,XP,Linux,XBox 360和Microsofts上運行帶腳本的Zune Player使用Visual Basic或C#語言編寫,並計劃添加對Ruby,Python和JScript的支持。

我還沒有更深入地研究它,但它聽起來像我們想要的。

+0

javascript方法看起來很神,但是類型安全方面的技術問題讓它沉沒了,所以這是我要嘗試的新方法:D – Martin 2009-12-21 02:36:52

+0

很高興知道。你有定期更新的博客嗎?我很樂意爲您在這個圖書館的進度保留一個標籤。 – Dan7 2009-12-21 16:42:08

+0

好吧,我在martindevans.appspot.com/blog有一個博客,但我不會完全稱之爲定期更新。目前看起來確實很糟糕,因爲我通常會在通往uni的火車上寫博客帖子,所以聖誕節假期在參賽作品間留下了比平常更大的差距! – Martin 2010-01-02 02:21:11

6

Lua通常用於遊戲腳本編寫。例如魔獸世界爲它的所有模組製造商提供了它。

而且看看這些網站:

  1. C++
  2. C#
+1

是的,但有沒有一個純粹的C#解釋器LUA?沒有據我所知:( – Martin 2009-12-02 11:31:26

+0

http://www.gamedev.net/reference/articles/article2275。asp – Carra 2009-12-02 11:36:19

+0

哦,看起來是積極的,你可以編輯它的答案,所以我可以upvote你? – Martin 2009-12-02 11:43:25

2

我想指出this related SO question,添加JavaScript作爲一種選擇。對一些人來說,Javascript比Lua更爲熟悉。

+0

這實際上是一個很好的觀點,我從來沒有考慮過這個 – Martin 2009-12-03 16:36:24

+0

這是我們要走的路。感謝您的幫助:D – Martin 2009-12-04 14:16:55

+0

這太棒了。我的榮幸! – 2009-12-04 14:20:50

0

你可能想看看VSTA,它提供了C#或VB.Net。我不知道運行時編譯。

+1

VSTA是什麼?請提供一些鏈接或更多的上下文。另外,它在Xbox上工作嗎? – 2009-12-03 18:49:31

+0

mmk prolly表示Visual Studio應用程序工具(http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Applications) – Zano 2009-12-31 17:03:09

+2

來吧。 Google - > VSTA。花費2秒 – tjmoore 2011-01-25 10:43:18