【发布时间】:2010-10-26 08:33:33
【问题描述】:
开发 3D 游戏时使用的一些更常见的设计模式有哪些?有没有常用的高级架构设计模式?架构中的一般软件模式呢?
【问题讨论】:
标签: design-patterns architecture
开发 3D 游戏时使用的一些更常见的设计模式有哪些?有没有常用的高级架构设计模式?架构中的一般软件模式呢?
【问题讨论】:
标签: design-patterns architecture
状态模式的变化对于建模游戏状态很有用。 Enginuity series of articles 很好地概述了游戏引擎设计的一些低级方面。它不完整,但很好。 Guff 框架的设计者outlined the use of state hierarchies 用于处理游戏状态。层次概念很好,尽管他们对游戏状态的看法是有限的(它包含整个游戏循环而不仅仅是状态)。他们还有一个paper on real-time game loops。
在实现脚本时,使用支持某种协作多线程的脚本语言非常非常有用和强大。 Stackless Python 提供了这一点。从 Mono 2.6 开始,您 can do this in C# using continuations,但仅限于 Mono 平台(不是 .NET),因为它需要更改 VM。
对于 2D 和 3D 图形、动画、输入等有通用的解决方案。其中许多由 DirectX、SDL 或类似框架处理。
【讨论】:
我现在能想到的就这些了。
【讨论】:
我认为没有任何特别针对游戏的软件设计模式。游戏使用与其他游戏相同的语言、库、平台,并且在软件级别面临几乎完全相同的问题。
有些方法或方法似乎很流行,但在代码级别并没有像经典设计模式那样形式化。一个例子是基于组件的参与者,通常甚至不聚合在同一个对象中,而是通过共享 ID,通过信号/插槽类型机制进行通信。另一种是嵌入用于脚本目的的第二种语言,例如 Lua、Python 或 Javascript。
【讨论】:
我发现this PDF 详细介绍了可能的游戏架构。虽然,它可能“让那些更倾向于从面向对象设计方面思考的读者不同意。”
【讨论】: