“API”,“框架”,“IDE”和“引擎”之间有什么区别?

我刚开始尝试学习开发游戏。 起初我认为C ++和OpenGL是初学者开始制作游戏的工具,但很快发现OpenGL只是一个graphicsAPI。 然后我认为C ++和SFML是我学习制作游戏所需要的,但是发现SFML是一个可以用来制作游戏但不是游戏引擎的媒体框架。

我不想使用一个为我做的所有工作的软件,我想编写我自己的游戏,就像游戏程序员那样。 我不明白IDE,框架,API和引擎之间的区别。 什么把他们分开? 有些游戏程序员使用SFML框架,而其他程序员使用游戏引擎?

API(应用程序编程接口)是一个接口; 一组用于与对象或对象集进行交互的方法。 例如:OpenGL,用于3Dgraphics。

框架是一个加强; 它不仅是一套API,而且是思考和解决问题的一种方法。 例如:SFML,用于媒体。 它给你的graphics,但也input处理和其他辅助API。

游戏引擎比框架更专业, 这是一个专门针对制作游戏的框架,通常只有某种types的游戏。 它通常包含许多编辑工具,如模型编辑器或导入器等。示例:虚幻引擎。 让你制作3D射手。 虽然您可以使用SFML制作3D射击,但您也可以使用它制作video播放器。 使用虚幻引擎,您可以制作3D射击游戏。

一个IDE与所有这些无关。 这意味着集成开发环境,它是从纯文本编辑器的一步。 它生成的源代码文件是文本文件,但通常它与编译器有某种集成,提供向导以自动化编写代码的各个部分,等等。 示例:Visual Studio,Eclipse。

关于“编码你的游戏”,除非你有经验,我会从一个游戏引擎开始。 你可以编写代码来定制它的工作原理和function,但是这将为你节省很多“第一次游戏”的工作量。 稍后,您可能需要尝试编写自己的游戏引擎,可能是在框架之上构建的。 如果你真的喜欢它,你可以建立自己的框架基于系统级的API(OpenGL,Direct3D)。 它可以是令人难以置信的奖励和一个伟大的学习经验。 FWIW,当我开始我的游戏引擎时,我作为程序员非常有经验,但是我在SDL之上构建了它; 后来我用自己的框架replace了SDL层。