我可以在C#中使用的快速预先存在的可嵌入脚本语言

时间:2011-02-06 17:01:33

标签: c# scripting

我正在进行“建筑游戏”(与MineCraft,Roboblox和Dwarf Fortress一样)。显然,这个游戏将完全充满彼此互动的物体。我想使用脚本语言来描述对象及其行为。由于这些脚本将快速连续执行,我需要找到一种脚本语言,如lua,python等,它既快速又易于集成到C#程序中。关于如何实施的具体信息的奖励积分。

3 个答案:

答案 0 :(得分:3)

IronPython http://ironpython.codeplex.com/很容易与您的应用程序互操作,您甚至可以通过编程方式编译它以加快游戏速度。 可在此处找到快速入门示例:http://www.codeproject.com/KB/cs/C_Sharp_and_Iron_Python.aspx 一旦yoiu读到你肯定会得到如何开始的想法。 另外,由于IronPython基于DLR动态语言运行时MS库,因此在不改变主要程序基础架构的情况下更改引擎应该很容易。 为了完整起见,我也会引用http://boo.codehaus.org/嘘。这种语言肯定比其他语言更早,并且有一本关于从中编写DSL的书(在网上查看用于DSL语言的网络,我不想在这里做广告),我认为你可以从想法中获取你的游戏脚本看起来更好。

答案 1 :(得分:2)

您可以使用C#:P可以在运行时编译和加载.cs文件。

由于C#是静态类型的,因此脚本会相当快(与其他任何(非 ngen -ed)C#代码一样快。当然,编译器已包含在.net中。

请参阅CSharpCodeProvider

C#作为脚本语言的主要缺点是它需要一次编译整个程序集。所以它不太适合交互式命令提示符。

答案 2 :(得分:0)

IronPython和IronRuby因为是.net语言而脱颖而出,因为它们显而易见。唯一的缺点是他们不再是微软的积极开发者。这可能无关紧要,因为它们不会停止工作,但它们可能不会过快地转移到新的.net版本。