开发3D游戏时使用的一些比较常见的设计模式是什么?是否有常用的高级架构设计模式?那么架构中的一般软件模式呢?
答案 0 :(得分:5)
这就是我现在能想到的一切。
答案 1 :(得分:1)
我认为没有特别针对游戏的软件设计模式。游戏使用与其他人相同的语言,库和平台,并且在软件级别面临几乎完全相同的问题。
某些方法或方法似乎很受欢迎,但在代码级别上并没有像经典设计模式那样正式化。一个例子是基于组件的参与者,通常甚至不在同一对象中聚合,而是通过共享ID,通过信号/插槽类型机制进行通信。另一种是为脚本目的嵌入第二种语言,例如Lua,Python或Javascript。
答案 2 :(得分:1)
我发现this PDF详细介绍了可能的游戏架构。虽然,对于那些更倾向于在面向对象设计方面进行思考的读者来说,这可能是“不合适的。”
答案 3 :(得分:0)
状态模式的变化对于建模游戏状态很有用。 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或类似框架处理的。