MonoGame移植到linux

时间:2015-12-11 13:20:18

标签: c# linux cross-platform virtual-machine monogame

我在Visual Studio 2015中使用C#语言和MonoGame框架在Windows 7(64位)上开发了一款游戏。该游戏在Windows上运行良好,但我也想让游戏在Linux上可玩。因此我在我的Windows PC上安装了VirtualBox和Ubuntu 15.10(64bit),以测试我是否可以在Ubuntu上运行我的游戏。 在尝试以不同的方式编译游戏后,没有解决方案,我得出结论,在这里提出一些关于将MonoGame部署到Linux的问题:

  1. 是否可以在Windows for Linux上的VisualStudio 2015中编译MonoGame游戏...

    1.1。 MonoGame Linux项目?

    1.2。 MonoGame Windows OpenGL项目?

    1.3。 MonoGame Windows项目? (我的游戏目前是)

  2. 如果[1.]有哪些要求以及需要在Linux上安装哪些程序才能运行此[1.x]版本?

  3. 是否可以(并推荐)在虚拟 Ubuntu机器上使用MonoDevelop编译游戏?

  4. 甚至可以在虚拟 Ubuntu机器上运行MonoGame游戏吗?

  5. Linux上游戏的正确可执行文件扩展名是什么? (因为Windows上的Linux项目只构建.exe)

  6. 我几乎没有使用Linux的经验,所以我希望有人可以回答我这些问题,也许是有将MonoGame游戏移植到linux的经验的人。

    感谢。

2 个答案:

答案 0 :(得分:0)

尽管这个问题已有数年之久,但值得一试。我通过Mono的mkbundle设法为MonoGame内置的游戏制作了跨平台的版本。 Here是在Windows上执行此操作的出色教程。

您将要下载最新的Mono版本,并将“ exe”扩展名附加到位于 C:\ Program Files(x86)\ mono \ bin \ mono 的文件中。接下来,为要部署到的平台下载适当的runtime,为其提供一个“ zip”扩展名,并将其解压缩到以下路径: C:\ Users \ youruserhere \ Documents.mono \ targets < / strong>

在那之后,您应该准备好进行构建;打开命令提示符,然后输入mkbundle --local-targets。如果一切顺利,则应该显示您已安装的运行时。之后,只需在目标平台上构建一个exe。

以下是在Ubuntu上构建应用程序的示例:mkbundle HelloWorldConsole.exe --simple -o HelloWorldBundleUbuntu --cross mono-5.10.0-ubuntu-16.04-x64

请记住,某些未在Mono中实现的类,例如WebBrowser,将导致构建失败。在这种情况下,您可能需要找到一种解决方法。

通过此操作,您可以通过在终端中输入./HelloWorldBundleUbuntu在Linux中运行文件。我在虚拟机上以这种方式运行游戏没有问题。

最后,如果您想使用.NET Core,MonoGame可以使用WIP core fork,尽管我不确定它的工作原理。

答案 1 :(得分:0)

要添加Kimimaru已经很久的答案,还可以使用MonoKickstart在Mac和Linux上启动Monogame可执行文件并运行,而无需捆绑任何东西。如果您的项目由于第三方库或其他原因而难以捆绑,则这尤其方便。

您只需解压缩Kickstart存档并将Windows可执行文件粘贴到顶部。通过编辑.kick文件以指向适当的可执行文件,它们将充当中介来使用mono运行程序(该程序也已提供,也无需在目标计算机上安装)。

https://github.com/mrhelmut/MonoKickstart