是否有任何设计模式对游戏开发特别有用?

时间:2010-05-13 03:23:22

标签: design-patterns

这个问题长期困扰着我。我一直想知道游戏开发者如何解决在某些类型中非常常见的某些问题或情况。

例如,如何实现典型角色扮演游戏(例如BG或TES)的任务?或者你如何在第一人称射击游戏中实施具有多重叠加效果的武器(例如DN3D的收缩枪或冷冻机)?您如何使用可能错综复杂的决策树实现多项选择,从而导致几种不同的结果(例如WC中的任务树)?

5 个答案:

答案 0 :(得分:5)

访问者。

观察。

命令。

代理(用于网络游戏)。

几乎任何创作模式。

想想,“场景图”。

游戏并非 与其他类型的应用程序不同,至少不是人们认为的那样。我说这是一个专业的游戏开发者以及一个专业的非游戏开发者:)

答案 1 :(得分:4)

请记住,这些并不是通常的“设计模式”要解决的典型软件架构问题 - 它们是游戏设计问题,即。最终软件的一组要求。因此,典型的软件模式并不真正适用。因此,对于您描述的类型,并不存在真正的软件模式,因为在大多数情况下,多个游戏中没有一致的规范和要求。这些功能通常在很大程度上取决于游戏设计,程序结构也是从那里开始的。在各种书籍中肯定有例子 - 例如。强烈建议使用Game Programming Gems系列 - 但它们只是您必须根据具体要求进行定制的起点。

例如。任务 - 他们可以重复吗?任务可能“失败”还是不完整?它们包含多个阶段吗?在提出任务之前是否有必须满足的标准?是否有需要更新的期刊?最后会有自动奖励吗?完成的条件是什么,以及检查方式和时间?某些事件是通过接受任务还是完成来触发的?在任务中是否存在玩家进步的概念?一些任务是强制性的吗?是否以某种方式命令任务?根据设计,所有这些都会因游戏而大不相同。

现在,游戏程序员发现自己使用了很多技巧和方法,例如。嵌入脚本语言,使用2D散列或分区的空间数据库,有限状态机等,但这些只是通用工具,恰好可以很好地映射到游戏开发人员面临的问题。

答案 2 :(得分:0)

如果您阅读“四人帮”,整个创作模式部分都是为了创造一个迷宫。

答案 3 :(得分:0)

我想说大多数都可以大量使用,这取决于游戏类型,有些可能比ohers更有用。

如果我必须选择游戏设计中最有影响力的一些:

  • 观察者:大部分逻辑都是基于事件和反应。
  • ChainOfResponsibility:在运行时改变行为(通电等)。
  • 状态:显而易见的原因。
  • 复合:库存管理或场景图,例如。

答案 4 :(得分:0)

我的拙见是,所有模式都可以在游戏中发挥作用,但一般来说,最强大的模式使用是从开发中产生的,而不是预先针对特定目标。

换句话说,模式对于来说是一种很好的用语。然而,它们很难用作实现策略,因为它们以这种方式使用通常会导致复杂,臃肿和缓慢的代码。