gpt4 book ai didi

c# - 如何为游戏编译 C# 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:37 25 4
gpt4 key购买 nike

我用 C# 制作了一个简单的游戏引擎(在 VB 2008 中,主要是为了我自己)。有一个主要的应用程序可以处理图形和其他东西,实际游戏中的大部分数据将在一个 dll 中,该 dll 是使用我提供给游戏设计师的工具生成的。

我听说过很多关于 C# 非常适合编写脚本的信息(看起来它比其他任何方式都更适合我的需求),但我无法真正找到它究竟是如何完成的答案。我遇到了这个问题:

我显然不想给出主 exe 的源代码,但它将包含编写脚本所需的所有主要方法(因为它们作用于主 exe)。

如果没有定义将在父 exe 中调用的方法,那么如何生成 dll?主 exe 将把 dll 作为依赖项来使用它。这意味着 dll 不能依赖于会导致循环的 exe。

我可以创建另一个 dll,exe 和库都可以使用,但是其中的方法将无法直接作用于使用它的主 exe。

我想到的唯一合乎逻辑的解决方案是:

  • 一个包含我需要的类的基本框架的 dll。
  • 包含游戏数据的 dll。这将有一个继承自 dll A 的类。
  • Exe 依赖于 A 和 B。它将重写 B 中的 A 方法以按照它应有的方式运行。

虽然这看起来不太优雅。

我在研究中看到了很多单词(MAF、MEF、Roslyn 等),直到我厌倦了无法继续阅读。仅此一项我就花了好几个小时。

在您看来,我应该怎么做呢?我忽略了什么吗?

最佳答案

我不知道您从哪里听说 C# 非常适合脚本编写。 Rosyln 的半生不熟的尝试并不是真正的“脚本”。

为什么不尝试其中一种 DLR 语言 - 例如 IronPython 和 IronRuby?

还有用于 .NET 的 Lua 绑定(bind)。如今,大多数游戏开发人员都在 Lua 中编写脚本。因此,如果您打算将其封闭源代码,模组制作者社区肯定会喜欢您的游戏引擎。

关于c# - 如何为游戏编译 C# 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com