我想知道如何使用 SDL lib 创建 fps 游戏?
有没有用例子解释的书?
这赢得了大多数开放式问题。你可以从字面上写一本书。但让我们满足于指向正确的方向......
第一步,对于这样的项目,您将需要良好的调试技能。拿起史蒂夫麦康奈尔的代码完成。阅读全文。投入的时间将比您可以阅读/实验的任何其他东西更能收回成本。
获取一些游戏的源代码。任何游戏。确保在看到大而复杂的东西之前先看到简单的东西,并记住,当您查看任何游戏代码时,他们可能有一个联合团队投入的时间比您以往任何时候都多。这里的重点是查看代码结构。
获取 3D 数学的参考资料,不一定要那么深入,但您需要了解诸如前后点积之类的知识,能够弄清楚如何为世界上的相机创建矩阵等。(即使你写了 0% 的渲染代码)
(编辑)这是一本关于3D 游戏编程和计算机图形学的 3D 数学数学的好书,第二版(游戏开发系列)这不是你在大学里学习的那种,它更像是三角和更高级实用概念的交叉:如何为自己创建一个简单物理、高效碰撞检测等的工具箱。
您将需要了解有关渲染和管道的知识。SDL 助您一臂之力,但请确保您了解其工作的概念。
阅读有关实用系统设计的信息。您的各种系统必须互锁。好好想想吧。您的系统可能只是 C 或 C++ 中的一个好系统,重要的是您的数据/控制将如何流动的想法,而不是您模拟设计模式的完美程度(尽管这些非常有用以及粗略)
人工智能的基础,不是“真正的”人工智能,而是功能性人工智能;有一个很大的不同。状态机一开始就很好,对于简单的 FPS 来说已经足够了。
了解一些关于估算和规划的知识。你将没有时间去做你想做的所有事情来正确地制作一个 FPS。您将必须进行分类并学习如何分类;它们是两件不同的事情,后者很难。经验是这里粗略的最好老师。(虽然传奇的麦康奈尔也有这方面的书)
有一个系统可以将您的游戏玩法插入您的关卡。如果只是您作为程序员,那么您最好的选择是为现有的编辑程序(例如 3DS Max)编写插件。对于程序员,我强烈推荐 Max 而不是 Maya。Maya 脚本很好,但它更适合聪明的非程序员。我发现 3DS Max 更多地考虑了程序员如何创建和编辑你的世界。
您可以花费数年时间制作工具来让您正确地做到这一点,因此您希望以一种可以快速准确地编辑的方式来做事。如果您制作自己的编辑器,请将其整合到您的游戏世界中。如果您的世界不是真正的 3D,并且您想快速制作大量关卡,您可以将关卡数据保存为类似这样的内容,这将为您节省大量时间 X 是墙,其他字母是游戏对象简单的解析器可以翻译成游戏对象和世界坐标
xxxxxxxxxxxxxxxxxxxxxxxx
xx..........P..........x
xxxxxxx...........I....x
xR....xxx...........E..x
xx.................0xxxx
xxxxxxxxxxxxxxxxxxxxxxxx
但这一切都取决于你的游戏。我的观点是,您将需要诉诸“贫民窟编码”,如何将游戏数据带入您的世界非常重要,您需要考虑一些既能快速实施又能快速与您合作的东西。
归根结底,您的目标是什么?如果要学习以绝对正确的方式编写代码,请期望将大部分时间花在一个月前看起来不错的代码上,但现在您意识到自己的需求是什么,它真的可以使用另一遍。不要害怕重写,这样做你会学到很多东西,但如果你的目标是功能,你可能需要弄清楚在哪里破解一些东西(比如将游戏数据和坐标嵌入到代码文件中)只要你知道你在哪里被黑客入侵,并且小心地将它与你的好代码分开,这样你就可以在有机会时返回并正确编写代码。
底线是,您需要确定您的目标是什么,学习或功能,并找到两者之间的快乐媒介。
在fileshack下载 quake 3 源并从中学习。
尽管从长远来看,很长的帖子很有价值,但我觉得它并不能提供适当的即时动力,让他们在屏幕上显示内容。以下是一些事实,以及我的观点
-SDL 是一个 2D 图形库,您不能在 2D 中编写 FPS,因此您必须使用 3D 库,无论是 DirectX 还是 openGL
-SDL 能够与 openGL“同步”,将其用于图形,但该主题的在线帮助并不多
我建议你去 Lazyfoo.net,这是一个绝对令人惊叹的 SDL 游戏编程初学者资源,它向你展示了如何在屏幕上绘图,还教你如何将其应用于编程游戏。完成此操作后,您将能够制作俄罗斯方块克隆或大多数其他 2D 类型游戏
在此之后,您将为 3D 做好准备(它要复杂得多,需要更好地掌握数学,并且需要更多代码来做更简单的事情)如果您使用 openGL,请查看 NeHe 的教程,他们目前使用 SDL 和 openGL 开发新的集合,因为较旧的教程虽然很有价值,但编码相当糟糕并且使用 windows(win32) API
请记住,游戏开发是您会遇到的最苛刻、最有价值的编程之一,祝您好运
虽然不特定于 SDL,但NeHe OpenGL 教程是学习如何进行 3D 的绝佳起点。
如果这是您的第一款游戏,您可能希望瞄准低于 FPS 的目标。使用 SDL 编写一个简单的 2D 俄罗斯方块游戏将教会您需要了解的有关该库的所有信息。
几乎所有在标题中提到的“游戏编程大师的技巧”都会向您展示如何制作 FPS 游戏。LeMothe 爱他们。
编辑:忘记了那些标题。