如何制作FPS游戏?

时间:2008-11-13 20:20:59

标签: frame-rate

我想知道如何使用SDL lib创建fps游戏?

是否有任何书籍可以用例子解释?

6 个答案:

答案 0 :(得分:21)

这赢得了大多数开放式问题。你可以写一本书。但让我们决定指向正确的方向......

第一步,你需要这样一个项目的良好调试技巧。选择史蒂夫麦康奈尔的代码完成。阅读整个事情。投入的时间比你能阅读/试验的任何东西都要多。

获取某些游戏的一些源代码。任何游戏。确保在看到大而复杂的东西之前看到一些简单的东西,并且当你看到他们可能拥有的任何游戏代码时,请记住,他们可以让你有更多的时间进入它。这一点就是看代码结构。

获取3D数学的参考,不必深入了解,但你需要知道像点产品前后的东西,能够弄清楚如何在世界上为你的相机创建矩阵等等(即使你写0%的渲染代码)

(编辑)这是一本关于3D数学的好书Mathematics for 3D Game Programming and Computer Graphics, Second Edition (Game Development Series)这不是你在大学里学到的那种,它更像是三角形和更先进的实用概念之间的交叉:如何为自己创建一个简单物理,高效碰撞检测等工具箱。

您需要了解有关渲染和管道的信息。 SDL为您提供了支持,但请确保您了解它正在做什么的概念。

阅读有关实际系统设计的内容。您的各种系统必须互锁。好好想想。你的系统在C或C ++中可能只是一个很好的系统,它是你的数据/控制将如何计算的思想,而不是你如何完美地模拟设计模式(尽管这些非常有用) / p>

AI的基础知识,不是“真正的”AI,而是功能AI;有一个很大的不同。状态机很好开始,并且足以用于简单的FPS。

了解有关估算和规划的一些信息。您没有时间做任何您想要做的事情来正确制作FPS。你将不得不进行分类并学习如何分类;它们是两个不同的东西,后者很难。经验是这里最好的老师。 (虽然传说中的麦康奈尔也有关于此的书)

有一个系统可以将您的游戏玩法插入到关卡中。如果只是你作为程序员,那么最好的办法就是为现有的编辑程序(如3DS Max)编写一个插件。我强烈推荐Max over Maya为程序员。 Maya脚本很不错,但它更适合聪明的非程序员。我发现3DS Max更多地考虑程序员如何创建和编辑你的世界。

您可以花费YEARS制作工具来让您正确行事,因此您希望以可以快速准确编辑的方式执行操作 如果您制作自己的编辑器,请将其合并到您的游戏世界中。 如果你的世界不是真正的3D并且你想要快速提高水平,你可以将你的关卡数据保存为这样的东西,这将为你节省大量的时间 其中X是墙,其他字母是游戏对象,污垢简单的解析器可以转化为游戏对象和世界坐标

 xxxxxxxxxxxxxxxxxxxxxxxx
 xx..........P..........x
 xxxxxxx...........I....x
 xR....xxx...........E..x
 xx.................0xxxx
 xxxxxxxxxxxxxxxxxxxxxxxx

但这一切都取决于你的比赛。我的观点是,您将需要求助于“贫民窟编码”,如何将您的游戏数据输入您的世界是非常重要的,您需要考虑一些既快速实施又快速与您合作的东西。 / p>

归结为什么是你的目标?如果要学会以绝对正确的方式编写代码,期望花费大部分时间来迭代一个月前看起来不错的代码,但现在你已经意识到你的要求是什么,它真的可以使用另一个传递。不要害怕重写,你通过这样做了解很多,但如果你的目标是功能,你可能需要弄清楚在哪里破解某些东西(比如将游戏玩法数据和坐标嵌入到代码文件中)它只要您知道自己被黑客攻击的地方,并且已经小心地将它与您的优秀代码分开,那么就可以进行攻击,这样您就可以在有机会的时候返回并正确编写代码。

最重要的是,您需要确定您的目标是什么,学习或功能,并找到介于两者之间的快乐媒体。

答案 1 :(得分:5)

fileshack下载地震3来源并向他们学习。

答案 2 :(得分:3)

虽然从长远来看长篇文章很有价值,但我觉得它并没有给出在屏幕上获取内容的适当即时动机。这是一些事实,以及我的意见

-SDL是一个2D图形库,你不能在2D中编写FPS,因此你必须使用3D库,DirectX或openGL

-SDL具有与openGL“同步”的能力,将其用于图形,但是对于该主题没有大量的在线帮助

我建议你去Lazyfoo.net,这是一个绝对令人惊讶的初学者用SDL游戏编程的资源,它向你展示如何绘制到屏幕,但也教你如何将其应用于编程游戏。完成此操作后,您将能够制作俄罗斯方块克隆或大多数其他2D类型游戏

在此之后,你将为3D做好准备(它要复杂得多,需要更好地掌握数学,并且需要更多代码来做更简单的事情)如果你使用openGL,请查看NeHe的教程,他们'目前正在开发一个新的集合,使用SDL与openGL,因为较旧的教程虽然有价值,但编码相当糟糕,并使用windows(win32)API

请记住,游戏开发是您遇到的最苛刻,最有价值的编程之一,祝您好运

答案 3 :(得分:1)

虽然不是特定于SDL,但NeHe OpenGL教程是开始学习如何进行3D的好地方。

如果这是你的第一场比赛,你可能希望瞄准低于FPS。使用SDL编写一个简单的2D俄罗斯方块游戏将教会您有关该库的所有信息。

答案 4 :(得分:0)

在游戏编程大师的“技巧”中,几乎所有人都会向你展示如何制作FPS游戏。 LeMothe喜欢他们。

编辑:忘了这些标题。

答案 5 :(得分:0)

我发现这个网站已经有一段时间了,当我在玩SDL时,您会找到可以下载的示例程序here