使用 Allegro / SDL 与 OpenGL / DirectX 制作游戏时,我会遇到哪些限制?

Posted

技术标签:

【中文标题】使用 Allegro / SDL 与 OpenGL / DirectX 制作游戏时,我会遇到哪些限制?【英文标题】:What limitations will I run into making a game with Allegro / SDL vs. OpenGL / DirectX? 【发布时间】:2015-03-18 07:47:06 【问题描述】:

所以我在 C++ 和 Win32 编程方面拥有丰富的经验,我希望与我的几个朋友一起创建一个 2D 游戏。我也曾涉足 DirectX 和 OpenGL,但在开发这款游戏时,我更愿意使用尽可能简单的库/API,以减少学习曲线并使开发过程更容易/更快。但是,我不想根据我在这里的选择来限制自己在游戏中能做什么和不能做什么。可以说,使用 Allegro 或 SDL 之类的东西与直接跳入 OpenGL 相比,我会失去哪些功能/特性。我知道除了使用 Allegro 等图形之外,您还可以做其他事情,但是我能否使用 Allegro 之类的东西构建功能齐全的游戏?

【问题讨论】:

【参考方案1】:

是的,可以使用 Allegro 等库创建出色的游戏。他们的depot 中有一些不错的游戏可以证明这一点。我还记得一些使用 Allegro 创建的共享软件游戏。这完全取决于您要创建什么样的游戏。

但 AFAIK Allegro 和 SDL 是 C 库,如果您熟悉 C++,您可以尝试 SFML 或 Cinder,这可以进一步简化流程。

如果您只是想轻松地创建游戏并且不关心所使用的技术,则可以使用 Unity3D 或 Unreal 引擎等完整的引擎,在您从游戏中获得可观的利润之前,这些引擎都是免费的。

【讨论】:

【参考方案2】:

您将错过通常在片段着色器中执行的照明部分。除此之外,使用纯 2D api 可以显着减少代码量,因为您不需要编写自己的着色器,也不需要着色器和 c++ 代码之间的接口,这通常比着色器本身需要更多的工作和维护。由于现代 OpenGL 中必须使用着色器代码,因此我的推荐是 SDL2。

【讨论】:

以上是关于使用 Allegro / SDL 与 OpenGL / DirectX 制作游戏时,我会遇到哪些限制?的主要内容,如果未能解决你的问题,请参考以下文章

SDL_Renderer opengl 冲突

SDL ttf 与 opengl,字体大小问题

将 SDL 示例移植到 OpenGL 和 C++

Linux 上的 SDL OpenGL 新手,这有啥问题?

是否可以在 Web 浏览器上运行与 SDL+OpenGL 代码绑定的 C++?

使用 SDL_CreateWindow 时出现 SDL OpenGL 分段错误