c++ - 游戏 vs 游戏引擎?

标签 c++

<分区>

我想知道是否有人可以告诉我游戏和游戏引擎如何适应游戏开发。具体我的意思是,游戏引擎实际上并没有游戏。所以我基本上不清楚的地方是,游戏开发人员是否构建引擎,然后创建一个继承自引擎的新类成为游戏?

例如:

class ShooterGame : public Engine
{
};

所以基本上我不清楚游戏代码在引擎中的位置。

最佳答案

游戏和实际游戏引擎之间的区别是架构上的。游戏逻辑是特定于一款游戏的,而游戏引擎是可以重复使用的。就像操作系统为应用程序提供实用程序一样,游戏引擎为游戏代码提供相同的功能。

游戏引擎通常具有不同的 API:

  • 加载音频、纹理、3d 模型等多媒体数据
  • 提供游戏循环并触发由用户输入引起的各种事件
  • 网络
  • 图形渲染和各种技术,使用光照、粒子效果或凹凸贴图使游戏看起来更漂亮
  • 音频
  • 人工智能
  • 允许定义游戏规则、游戏玩法和游戏逻辑的 API

大多数游戏开发者并不编写自己的游戏引擎。这将是太多的工作。相反,他们将重复使用他们公司拥有的游戏引擎或获得许可。对于第一人称射击游戏,id Software 和 Unreal 是两个流行的选择。

一旦他们有了引擎,他们就必须开始编写代码来制作他们的游戏。这是使用游戏引擎提供的 API 完成的。例如,Valve 让开发人员使用 C++。如果您想要一个怪物,您将扩展实体类并定义该怪物在该基类中的行为方式。

我建议您通读各种游戏引擎提供商提供的文档和教程。请记住,有些游戏被归类为“模组”,有些被归类为“总转化”。通常,模组不会更改游戏引擎,并且总转换可能会为游戏引擎添加或删除重要功能。

以下是我推荐的一些资源:

关于c++ - 游戏 vs 游戏引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981370/

相关文章:

c++ - 如何在Crypto++中将两个Source组合成一个新Source?

c++ - 友元和嵌套类

c++ - 链接 operator= 用于只写对象 - 可以返回 rhs 而不是 *this?

c++ - Eclipse:项目 "<project_name>"的事件配置中存在错误

c++ - 如何在eclipse调用层次结构 View 中显示调用函数的文件名

c++ - 使用套接字编程的奇怪 HTTP 响应

c++ - 在 C++ 中自动实例化一堆类型

c++ - `using namespace std::placeholders;` 是否不符合标准?

c++ - 自旋锁与 std::mutex::try_lock

c++ - 为什么我会从此合并排序中收到堆栈溢出错误? (C++)