我有一个C游戏引擎,目前支持
Windows,
Linux和
Android(NDK).它建立在SDL之上,并使用OpenGL进行渲染.
这个游戏引擎的一个设计限制是开发成本必须是$0.00 – 构建引擎不需要花费我(除了小时),我必须允许自由地重新分配引擎的代码和二进制文件,用户应该能够销售使用引擎创建的游戏,不受任何限制.
现在,我使用非常缓慢的游戏逻辑解释脚本语言 – 它实际上适用于编写胶合代码和对UI事件的简单响应,但不是很多.
我想用C#解决方案来替换这个系统 – 让用户编译一个包含其游戏逻辑的C#类库(DLL),并让C端消耗这个DLL并调用相应的钩子.
找到关于如何以跨平台方式实现这一点的信息是相当困难的.每个平台都有不同的方式来托管所需的运行时.此外,我发现的大多数文章都提示使用完整的框架,提供在我的引擎中已经实现的平台抽象.
目前有没有办法从基于Android NDK的C应用程序的C#DLL中运行代码,而不使用完全不同的SDK,而不需要花费数百美元的许可证?
特别是,我正在关注微软最近的一些开源的.net计划 – 我可以使用什么?
编辑:为了澄清,Windows和Linux有明确的运行.net代码“免费”的方式 – 这个问题专门用于从Android NDK应用程序调用托管代码,而不向Xamarin或另一个供应商支付许可费用.