Answers:
根据我的经验,C ++游戏开发人员的标准起点是SDL。与XNA相比,这样做必须使您的手更脏一点。
如果您想尝试更高级别的东西,那么我建议使用SFML。它可以为您处理一些更艰巨的任务,但您仍需要注意内存使用情况等。
我个人会选择 出于以下原因 Allegro 5:
它具有基于CMake的构建系统。这比大多数在多个平台上工作的构建系统要容易得多。这似乎是一件小事,但总体而言非常重要。它使构建库变得更加简单。
SFML仍在不断变化。2.0是一个相当大的变化。Allegro在版本5中已经进行了重大更改,而现在所有内容都与稳定性有关。
它以与SFML不同的方式介绍了模块化。使用SFML,您需要特定的组件,但要获得所有组件。如果要求图形组件,则可以获取所有图形组件。使用Allegro 5,您始终可以获得图形组件。但是,如果您不想使用Allegro的位图加载器,则不必使用;您可以使用自己的。
它有很好的文档。SFML使用Doxygen样式的文档,但是即使如此,它也是相当漂亮的Spartan。而Allegro 5更全面,其功能根据其涵盖的特定系统分组在一起。这不是完美的,但总体而言更好。
他们足够聪明,不会尝试执行线程。随着C ++ 11 / Boost.Threads广泛可用或指日可待,使用另一个线程包装器可能不仅会带来问题,而且可能会导致代码正常工作。
考虑到OpenGL如今已加快了2D方面的发展,访问Allegro和SDL(或在较早版本中)拥有的快速软件渲染器并不重要。但是,当我选择一个库时,我将重点放在项目的成熟度,用户群和文档上,而不是速度(只要速度合理),我会说SDL和Allegro在这些方面胜出。SDL还一直在发布三重AAA称号,例如Civ:Call to Power。