2D Linux 游戏编程入门/简介
本书涵盖了从头到尾在 Linux 上编写 2D 游戏的步骤。从为各种发行版设置构建环境开始,到将游戏打包以供分发结束。它还包括创建工具来简化游戏创建。例如,精灵和关卡编辑器。游戏本身将使用 SDL 1.2 编写,并使用 ALSA 进行音频处理。我们将主要介绍 SDL 1.2,这可能是目前最常用的 SDL 版本,并简要介绍其后续版本 SDL 1.3。(如果 SDL 1.3 变得更普遍,我们可能会完全切换到该库。)关卡编辑器和其他辅助工具主要使用 Qt4 编写。示例算法可能会简单地在适用时通过打印到 stdout 来演示,以方便起见。
Linux 可用于多种环境,因此本书还将介绍将代码从原始环境(在本例中为基于 AMD64 的 PC)移植到其他环境。两个主要目标环境将是 F-200 和 Pandora。两者都是基于 ARM 的手持设备,但功能、输入方案和屏幕分辨率却大不相同。我们将介绍从一个环境移植到另一个环境的各个方面,包括控制方案、屏幕分辨率和纵横比,以及编程注意事项。
它还将简要介绍关卡设计方面的考虑因素,包括处理纵横比时以及从街机环境过渡到 PC 和主机时的考虑因素。
这是一本编程书籍,一本关于创建 2D Linux 游戏的代码和关卡的入门指南。它不涵盖管理您的编程团队,也不建议除本书中创建的游戏以外的其他游戏创意。它不会深入探讨游戏的营销。
本书中的代码是用 C++ 编写的。它使用 SDL、Qt4 和 ALSA 库。
本书的目标读者是那些想要在 Linux 上享受编程游戏乐趣的人!它并不假设您拥有 C++ 编程的丰富背景,但需要对 C++ 语言有一定的了解。在对游戏进行编程时,语言基础知识将随着主题的进展而进行回顾,但作为 C++ 的基础入门,这将以不完整和杂乱无章的方式呈现语言。有许多优秀的 C++ 入门教程以连贯和全面的方式介绍语言,更适合教学生 C++。
本书中介绍的一些概念很复杂。在这种情况下,本书将逐步介绍概念。它旨在指导那些已经接触过 C++ 但可能没有太多经验,并且可能没有任何游戏编程经验的人。有经验的程序员可能会发现本书对其他书籍很少涵盖的主题有参考价值,尽管他们可能会发现本书中的细节很详尽。
本书的目标是引导学生完成编程和打包一个完整的 2D 平台和横向卷轴游戏。超级马里奥兄弟通常被认为是这种类型的典范。我们的游戏,“一个流浪汉的命运”将遵循那些和其他优秀平台游戏的理念,同时也会加入我们自己的创意。这个最初游戏的全部精灵都将是低分辨率的。大多数概念应该能很好地移植到更高分辨率的 2D 游戏中。