在决定编写新游戏时,有 3 个主要决定将推动您的整个开发过程
1) 弄清楚你想做什么。
首先,您必须想出一个好的游戏创意。这可能非常困难,也可能非常容易,这取决于您的创造力以及灵感是否来袭。一个典型的答案是:“我想写一个像
其次,您必须决定项目的范围。想大做强、志存高远是极其常见的。然而,在编程中,这通常恰恰是错误的想法,因为很可能在开发六个月后,您会因为进展缓慢而感到厌倦和沮丧,并决定放弃。目标应该是非常简单和模块化的东西,然后分层增加复杂性。您的目标应该是在几周内实现一个最低限度可玩的东西,即使它没有您想要的大部分功能,即使它完全不平衡。
2) 选择您的语言和平台。
C++ 真的适合您的项目吗?如果您有兴趣开发一款可以通过网络访问的轻量级游戏,那么 Flash 或 Java 可能更合适的选择。C++ 适用于将下载到用户机器上的游戏、需要快速运行的游戏以及需要执行复杂操作(如渲染 3D 场景)的游戏。
假设 C++ 确实是适合您的语言,那么您的目标平台是什么?您的游戏会是仅限 Windows 吗?仅限 Linux 吗?仅限 Mac 吗?如果您只为一个平台开发,您的开发工作会更容易,因为您可以使用特定于平台的工具和库,并且不必担心跨平台问题。然而,您也限制了您的受众。许多 Windows 程序员不屑 Linux 和 Mac 用户,因为他们数量不多——然而,这些平台上的用户可选择的软件也较少,这意味着您的游戏移植到这些平台可能会在那里获得更多关注。如果您正在编写一个 Roguelike 游戏,您会支持没有 GUI 的老式纯控制台工作站吗?幸运的是,现在许多流行的库都是跨平台的,如果您编写其余代码使其也跨平台,这将使您的开发工作更容易。
3) 您将使用哪些库?
核心 C++ 语言被故意设计得简洁且最小化——因此,它不包含创建大多数游戏所需的工具。为了处理图形、字体、鼠标操作、声音、音乐以及现代游戏需要的其他东西,您将不得不使用为此目的开发的附加库。
如果您的游戏是一款图形密集的 3D 游戏,最流行的选择是 OpenGL(非常适合跨平台使用)或 DirectX(Windows 专用)。或者可能是在其中一个之上的一层,例如 Ogre 3D。
如果你想制作一个 2D 游戏,SDL 或 Allegro 都能满足要求。SDL 还可以与 OpenGL 结合使用,这样你就可以混合 2D 和 3D。(Allegro 也可以,但我对 Allegro 不太熟悉)。
如果您有兴趣编写一个控制台 Roguelike 游戏,Ncurses 或 PDCurses 将允许您制作 ASCII 图形游戏。许多现代 Roguelike 游戏使用 SDL 或 Allegro 模拟控制台——这为您提供了控制台机器上没有的优势,例如能够访问更多颜色、使用不同的字体以及交换图形图块。
值得注意的是,可能可以使用多个库。例如,如果您的代码模块化程度足够高,您可以让它在旧的 Unix 控制台上使用 Ncurses,在 DOS 控制台上使用 PDCurses,并在 Windows 和 X-Windows 上通过 SDL 使用模拟控制台。通过这种方式,您可以覆盖具有不同功能的大量机器。
现在怎么办?
一旦你有了你的想法、你的平台目标和你的目标库,最简单的部分就完成了。;) 从这里开始,你所要做的就是设计你的游戏,并学习如何使用你手中的工具来实现它!
做两件事是值得的
- 在尝试实施之前,尽可能多地在纸上设计你的游戏。想法是你想在编码时尽可能地减少修改——因此在开始编码之前你固化的越多越好。在开发过程中越深入才进行修改,修改会产生的影响越大,实施所需的时间也越长。尽早做出主要决定,除非必要,否则尽量不要更改它们。
- 第一次实现一项新技术时,通常最好在一个单独的程序中(称为原型)测试您的想法。这个原型的目的是快速让一些东西运行起来,即使编码很糟糕,并且允许您在不必担心搞砸游戏的情况下进行尝试。一旦您熟悉该功能的工作原理,您就可以在游戏中正确/模块化地实现它。因为在开发原型时您会犯很多学习曲线错误,所以您将更好地了解如何在游戏中成功实现它而不会破坏任何其他东西。