【问题标题】:How to Compile Games within my Game Engine in C++如何在我的游戏引擎中用 C++ 编译游戏
【发布时间】:2022-01-12 21:09:18
【问题描述】:

我正在使用 Visual Studio 开发 C++ 游戏引擎。

在Unity等游戏引擎中,可以通过引擎玩游戏,然后可以通过引擎编译成可执行文件(如.exe.apk等)。

我想实现这样的系统,但是我对游戏引擎如何能够在引擎中编译游戏感到困惑。由于实际引擎将针对特定平台(例如 Windows)进行编译,因此引擎必须包含自己的编译器才能为其他平台(Linux、Android 等)构建游戏。

我想知道的是,我将如何在我自己的游戏引擎中实现这样的系统,我可以在其中编译引擎,然后在引擎中我将能够编译游戏?

【问题讨论】:

  • 引擎将提供脚本语言。这种语言将被解释。可执行文件很可能只是与解释器捆绑在一起并配置为自动加载和运行脚本的脚本文件。

标签: c++ compilation architecture game-engine


【解决方案1】:

您不必让最终用户为每个目标编译您的引擎。您必须让他们cross-compile 他们的游戏代码并将预先提供的引擎库链接到每个目标的可执行文件中。

【讨论】:

  • 感谢您的回复,但我还是有点困惑。如果您有一个游戏引擎,它通过界面、关卡编辑器等提供给最终用户,这将作为可执行文件提供。但是当用户想要构建他们的游戏时,引擎会链接为一个库,并且会删除很多功能。我的想法是对的吗?你将如何实现这样的东西?
  • 你甚至不会尝试编译用户的游戏。您将所有游戏资源、描述游戏的脚本和游戏引擎针对目标平台的预编译脚本解释器捆绑到一个不错的可执行包中。然后可执行文件通过解释器运行脚本,脚本完成它的工作。
  • “游戏引擎”可能是您的开发主机的库。 IDE、编辑器等可能是为使用您的游戏引擎库和其他一些库而编写的应用程序。当您将游戏编译并链接到独立的可执行文件中时,它将从游戏引擎中为目标链接到适当的库。至少,Unreal、Unity、Source 和 Godot 等流行的游戏引擎就是这样工作的。其他引擎的工作方式更像 Java、JavaScript 或 Python,您只需将脚本语言由需要捆绑的单独应用程序解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 2011-03-22
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
相关资源
最近更新 更多