这个问题已经困扰我很长时间了。我一直在想,游戏开发人员是如何解决在某些类型中很常见的某些问题或情况的。
例如,如何实现典型角色扮演游戏(例如BG或TES)的任务?或者,你将如何在第一人称射击游戏中实现具有多种堆叠效果的武器(例如,DN3D的收缩枪或冰柜)?如何使用可能复杂的决策树实现多项选择选项,从而导致几种不同的结果(例如WC中的任务树)?
发布于 2010-05-13 11:49:58
访客。
观察者。
命令。
代理(用于网络游戏)。
几乎所有的创作模式。
想想“场景图”
游戏与其他类型的应用程序并没有那么大的不同,至少没有达到人们认为的程度。我说这是因为我是一个专业的游戏开发人员,也是一个专业的非游戏开发人员:)
发布于 2010-05-13 18:44:55
请记住,这些不是通常的“设计模式”所要解决的典型软件架构问题--它们是游戏设计问题。终端软件的一组要求。因此,典型的软件模式并不真正适用。出于这个原因,对于你所描述的东西类型,并没有真正的软件模式,因为在大多数情况下,没有跨多个游戏的一组商定的规范和需求。这些功能通常在很大程度上依赖于游戏设计和程序结构。当然,在各种书籍中都有例子--例如。强烈推荐使用Game Programming Gems系列--但它们只是一个起点,您必须根据自己的特定需求进行自定义。
例如:任务--它们能重复吗?一个任务可以是“失败的”吗?还是它们仍然不完整?它们是否包含多个阶段?在提供任务之前,有没有必须满足的标准?是否有需要更新的日志?最后会有自动奖励吗?完成的条件是什么,以及如何和何时检查它们?某些事件是由接受任务触发的,还是由任务完成触发的?在一次任务中,有没有一个玩家进步的概念?有些任务是强制性的吗?任务是以某种方式排序的吗?根据设计的不同,不同的游戏会有很大的不同。
现在,有一些技术和方法,游戏程序员发现他们自己使用了相当多,例如。嵌入脚本语言,使用2D散列或分区的空间数据库,有限状态机等,但这些实际上只是通用工具,恰好很好地映射了游戏开发人员面临的问题。
发布于 2010-05-13 11:27:33
如果你读过“四人组”,那么整个创作模式部分就是为了创造一个迷宫。
https://stackoverflow.com/questions/2824243
复制相似问题